一、概况
昉·星光 2是全球首款集成了GPU的高性能RISC-V单板计算机。与昉·星光相比,昉·星光 2全面升级,在处理器速度、多媒体处理能力、可扩展性等方面均有显著提升。性能卓越,价格亲民,昉·星光 2将成为迄今为止性价比最高的RISC-V开发平台。
昉·星光 2搭载四核64位RV64GC ISA的芯片平台(SoC),工作频率最高可达1.5GHz,集成IMG BXE-4-32,支持OpenCL 3.0,OpenGL ES 3.2和Vulkan 1.2。昉·星光 2提供2/4/8GB LPDDR4 RAM选项,外设I/O接口丰富,包括M.2接口、eMMC插座、USB 3.0接口、40-pin GPIO header、千兆以太网接口、TF卡插槽等。昉·星光 2不仅配有板载音频处理和视频处理能力,还具有多媒体外设接口MIPI-CSI和MIPI-DSI。开源的昉·星光 2具有强大的软件适配性,官方适配Debian操作系统,同时通过社区合作适配各种Linux发行版,包括Ubuntu、OpenSUSE、OpenKylin、OpenEuler、Deepin等,及在这些操作系统上运行的各类软件。
二、开箱
拿到开发板有段时间,前段时间在调试其它板子,遇到点阻碍,因此耽搁发贴了。昉·星光 2外包装精美,可根据纸盒上提供的网址快速获取相关资源。


拆开密封膜,开发板盛放在透明胶盒里。

开发板的正面与背面实物展示如下:


三、硬件接口与技术指标
由上述实物图可知,板卡硬件资源丰富,如果搭载BT/WiFi功能模块就更完美了。


开发板技术指标:

四、资料获取与系统烧录
根据开发板外包装纸盒https://RVspace.org/可获取软件资源。包括昉·星光 2 Debian用户指南、Debian系统镜像下载。根据用户指南网页文档,该开发板支持四种引导模式,通过拨码开关设置。

因此,使用准备好的TF卡烧录Debian系统,需要将拨码开关设置成SDIO模式即可。通过百度网盘下的202409系统镜像获取关于SD卡部分的系统镜像文件,将内存大于8GB的TF卡格式化,使用“balenaEtcher”软件烧录系统镜像。


五、上电与联网测试
开发板的Boot模式设置成SDIO后,将TF卡插入卡槽,连接鼠标、键盘,HDMI接口连接LCD屏。为了方便后续调试,可连接USB转串口调试工具, 值得注意的是,连接时不需要连接VCC ,由于是开发板在运行时接入,否则开发板会自动掉电保护。再者由于开发板并没有BT/WiFi功能模块,因此连接网络需连接RJ45网口,然而由于笔者的笔记本电脑并不带RJ45有线网口,因此使用了一个USB转RJ45通信的网络模块。硬件连接好后,上电测试系统运行状态。


系统跑起来后,串口波特率115200,输出log如下图所示。

可根据用户名:user 密码:starfive登录系统。接下来需要构建基本网络通讯。
笔记本电脑端安装USB转RJ45接口的驱动。

由于笔者没有使用路由器,笔记本电脑联网是通过手机热点连接,因此需要构建“开发板或者电脑开dhcpd+win端共享网络”,方法如下:
(1)笔记本电脑需要先连上外网,可以连上家里的WIFI,或者手机开热点。
(2)打开网络共享中心-更改适配器设置-无线网络连接-属性-共享-允许其他网络用户通过此计算机连接-选择本地连接网络名称-确定。
(3)完成第2步后系统会自动分配一个ip给本地连接,我们需要的就是这个本地连接的ip,这个ip也是开发板的网关ip。
(4)开发板通过网线连接笔记本电脑,开发板的ip地址设置成DHCP动态获取模式即可。当然手动静态设置也是可以,需要设置成与笔记本电脑本地连接在同一网段,网关地址同步才行。
通过上述步骤操作后,打开开发板中自带的Firefox浏览器,百度一下,验证能否正常联网。

这样说明通过eth0网口能正常联网了,接下来完成使用昉·星光 2的GPIO点亮LED实验。
六、环境搭建
根据官方提供的使用昉·星光 2的GPIO点亮LED网页文档指引来准备LED硬件与软件。笔者使用PuTTY工具通过SSH来远程连接到开发板。

(1)首先在Debian系统上安装pip,指令:
sudo apt-get install python3-pip

(2)在昉·星光 2Debian上执行pip命令,以安装VisionFive.gpio包:(由于pypi.org官网尚不支持上传RISC-V平台的whl安装包,不能直接使用pip install VisionFive.gpio命令在线安装)
a、执行以下命令,安装依赖包:
sudo apt-get install libxml2-dev libxslt-dev
sudo python3 -m pip install requests wget bs4
b、运行安装脚本
通过链接VisionFive.gpio获取最新版的脚本文件,该链接提供了三个版本的脚本,需要根据自己安装的python版本来选择对应的脚本。python -v查询到安装的版本为3.11,因此下载“
VisionFive.gpio-1.3.3-cp311-cp311-any.whl ”文件。
然后将文件更名为“VisionFive.gpio-1.3.3-cp311-cp311-linux_riscv64.whl”,并移动到/home/user/目录下。
*附件:VisionFive.gpio-1.3.3-cp311-cp311-linux_riscv64.zip
在user当前目录下,安装VisionFive.gpio脚本文件。
python3 -m pip install VisionFive.gpio-1.3.3-cp311-cp311-linux_riscv64.whl --break-system-packages
c、执行演示代码
<1>. 找到测试代码led.py所在的目录:
pip show VisionFive.gpio
然后进到该目录下,如下图中所示:

可查看到该路径下的参考python源码

使用vim命令打开led.py脚本文件,可根据自己实际情况更改连接LED的管脚,这里默认为22。

<2>. 运行脚本文件
sudo python3 led.py
注:在“sample-code”目录下root身份运行上面执行命令。
<3>. 输入周期(单位:秒)以配置LED点亮或熄灭的时间
下图所示,输入0.5,表示以500ms的间隔时间点亮或熄灭LED灯

七、点灯效果
实验现象见底下视频,外接LED指示灯以500ms的间隔时间闪烁。