visionfive 开发板通过 gpio 控制 led 灯

visionfive 是赛昉科技推出的一款开发板,使用的处理器是他们自家研发的【惊鸿 7100】(JH7100),这是一颗 risc-v 架构的处理器,双核 U74,U74 对标的是 ARM 的 Cortex-A55 。

visionfive1

写入镜像

这块板子的系统运行和树莓派一样,需要先将系统镜像写入内存卡,再插到板子上来运行。目前官方提供的只有 Fedora 这个发行版,可以在 GitHub 上找到下载链接。

https://github.com/starfive-tech/Fedora_on_StarFive

下载完是一个特殊的压缩格式,zst,我搜了一下

当前这种 ZST 格式是一种 压缩文件 ,是由 ZStandard 研发,作为一种 ZStandard压缩文件使用,此文件流行程度是 50 分(0-100满分)。

还得使用专门的工具才能解压,稍微麻烦了点。工具在这里有提供

https://rvspace.org/en/Product/VisionFive/Technical_Documents/VisionFive_Single_Board_Computer_Quick_Start_Guide

点击网页左侧的 Flashing Fedora OS to a Micro-SD Card 可以快速达到。

Snipaste_22-04-11_09-21-44

我是在 win10 进行操作的,将下载好的解压工具,从压缩包里解压出来,和 zst 文件放在一起。

2022-04-11_09-57-19

此时在这个文件夹里的空白处,一只手按住键盘上的 shift 键,另一只手按一下鼠标的右键,在此处打开 powershell,就可以快速在当前文件夹打开一个命令行窗口。(此处我的 powershell 是自己升级过的,系统自带的是没有带 preview 的。)

2022-04-11_09-58-00

执行这条命令就可以解压了

./zstd.exe -d Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw\.zst -o Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw

解压出来的文件差不多 13G,可以使用写盘工具将它写入内存卡中,例如 etcher。

开机

之后将内存卡插入开发板,使用 HDMI 线连接显示器,通电开机,便可进入 Fedora 了。

默认的用户名是 riscv

密码是 starfive

这台设备的桌面体验,我感觉还是比较差的,毕竟没有 GPU,而已本身也只是双核而已,所以桌面体验会有一些卡顿。很快我就放弃用鼠标来控制它了,而是选择在电脑上通过 ssh 来控制它。

visionfive-neofetch

如何通过 gpio 控制 LED 灯?

通过这个网页,我们可以了解到这块板子的 GPIO 信息

https://rvspace.org/en/Product/General/StarFive_40-Pin_GPIO_Header_User_Guide

img

准备一颗 LED 灯,一头连接 34 号的 GND,一头连接 40 号的 GPIO0

LED-off

在终端里进行如下的操作(需要 root 身份来执行)

cd /sys/class/gpio
echo 448 > export
cd gpio448
echo out > direction
echo 1 > value

这样便可以点亮 LED 灯

LED-on

如果想熄灭它,只需执行

echo 0 > value

官方文档里的这个表格非常重要,刚才我们控制 GPIO0,操作的是 448,如果现在我们想控制 GPIO4,从表格可以查到是 452,那么只需将刚才的 448 换成 452 即可让 GPIO4 输出高电平。

gpio

对此我写了一个 Python 脚本,作用是监控哔哩哔哩上面是否有人给我发私信,也就是我是否有未读消息,如果有的话,则点亮 LED 灯。而当我看完消息后,脚本检测到目前没有未读消息了,则会将 LED 灯熄灭。

脚本已放在 GitHub 上面,有兴趣的朋友可以参考一下。

https://github.com/powersee/bilibili_unread/blob/master/bili-for-visionfive.py