VisionFive2 板子教程
VisionFive2 开发板使用教程¶
我们会发以下材料,请核对清单:
- VisionFive 2 开发板
- nanoDAP 调试器
- 杜邦线若干(10根以上)
- 一张 32G SD卡
- 一个读卡器
请你自行准备一个手机充电器头,和 Type-C 线。
拆开包装后,请你将一下内容物交还到讲台:
- 写有 “昉·星光 VisionFive 2” 的纸壳
- 黑色静电袋
- 一包装有塑料螺丝脚垫的袋子
- (如有)一个用袋子装着的 USB 网卡
其余垃圾请课后自行处理。
安装工具¶
在 VM 中:sudo apt install minicom
安装串口工具 minicom。
连接 UART 接口¶
使用 三根 杜邦线连接板子上的 GND, UART TX, UART RX 端口。
用右上角的 Pin 6, 8, 10。 注意不要连接到 5V Power 上面!!
实拍图:
将板子上的 GND, UART TX, UART RX 分别连接到调试器上的 GND, U_RX, U_TX 上面,注意 UART 的 RX 和 TX 是交叉的,调试器正反面都有端口提示。
不要接调试器上面的 5V 和 3V3 !!!! 也不要试图通过调试器给 VisionFive2 板子供电!!
连接到 VM¶
启动 VMware 中的虚拟机。
将调试器插入电脑USB口(macOS 用户请自备 Type-C 到 USB-A 转接器),你应该会收到以下提示。
选择 Conenct to a virtual machine
。将调试器连接至虚拟机中。如果你没有看到这个窗口或错过了,你可以在菜单栏中选择 VM -> Removable Devices -> NXP DAPLink CMSIS-DAP -> Connect (Disconnect from Host)
。
在虚拟机的终端中,执行 lsusb
,你应该能看到一项 "NXP ARM mbed" 的项目,如果看不到,请报告助教。
在终端中执行:ls /dev/tty*
你应该能看到一项为 /dev/ttyACM0
,这就是串口设备。如果看不到,请报告助教。
在终端中执行:sudo usermod -aG dialout oslab
,输入密码确认后重启虚拟机。
重启后,在终端中执行:id
,你应该会看到 gid 后面有一项 dialout。
在终端中执行 sudo minicom -s
设置 minicom 工具,你会进入如下界面,使用上下左右、ESC、Enter进行移动。
进入 Serial port setup
,按 A 编辑 Serial Device
这一项,将其改为 /dev/ttyACM0
回车确认两次,回到 configuration
界面,选择 Save setup as dfl
回车确认,你应该能看到 Configuration Saved
提示。
选择 Exit 退出配置页面,进入 minicom 终端,使用 Ctrl A + X 退出 minicom。
使用普通用户 oslab 执行 minicom,你应该能正常打开串口。
板子上电¶
在打开 minicom 的情况下,用 Type-C 口给板子供电。
你应该能看到板子 Type-C 接口旁边有一个红色 LED 亮起,同时串口界面有显示、调试器上闪烁绿灯:
U-Boot SPL 2025.01-dirty (Feb 21 2025 - 21:15:06 +0800)
DDR version: dc2e84f0.
Trying to boot from SPI
OpenSBI v1.5.1
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : StarFive VisionFive 2 v1.3B
Platform Features : medeleg
...
U-Boot 2025.01-dirty (Feb 21 2025 - 21:15:06 +0800)
CPU: sifive,u74-mc
Model: StarFive VisionFive 2 v1.3B
DRAM: 4 GiB
Core: 136 devices, 26 uclasses, devicetree: board
WDT: Not starting watchdog@13070000
MMC: mmc@16010000: 0, mmc@16020000: 1
StarFive EEPROM format v2
--------EEPROM INFO--------
Vendor : StarFive Technology Co., Ltd.
Product full SN: VF7110B1-2253-D004E000-40000798
data version: 0x2
PCB revision: 0xb2
BOM revision: A
Ethernet MAC0 address: 6c:cf:39:00:6c:bc
Ethernet MAC1 address: 6c:cf:39:00:6c:bd
--------EEPROM INFO--------
..
StarFive #
可以看到 OpenSBI 加载和 U-Boot 加载,最后有一个 StarFive #
的命令提示符,我们将其称为 uboot 终端。
.
运行 xv6 内核¶
在 minicom 下,板子启动完成后,出现 uboot 终端
使用另一个终端窗口,cd 到内核代码目录下,make
编译内核,然后 cd 到 build
目录下:
执行 pwd 以获取当前目录的完整路径,右键拷贝。
在 uboot 终端下执行:loadx
:
按 Ctrl A + S,打开 [Upload]
提示框,
选择 xmodem
,切换到 [Goto]
,然后回车,在 Goto directory
下面粘贴我们之前复制的 build 目录的完整路径,回车确认。
左右移动光标到 [Okay]
,上下移动光标到 kernel
这一项,然后空格选中,
然后回车确认,开始上传。
上传结束后,[xmodem upload]
窗口消失,uboot终端下会提示 ##Total Size
和 ## Start Addr
。
执行命令 bootelf -p
,然后执行 go 0x80200000
uboot 终端应该会提示 ## Starting application at 0x80200000 ...
,然后跳转到我们的内核,最终 sh 启动成功。