实操课开始前试了Nuclei Studio,但折腾了几次上传代码到板子总是失败。而实操课上介绍了通过SDK和命令行的方法,通过该方法则很快成功了,所以下文只介绍该方法。
Toolchain可在官网下载,我已经把gcc和openocd上传到AUR了,所以我的安装过程: git clone https://aur.archlinux.org/openocd-nuclei-bin.git && cd openocd-nuclei-bin && makepkg -si
git clone https://aur.archlinux.org/gcc-nuclei-bin.git && cd gcc-nuclei-bin && makepkg -si
Arch官方库上openocd有新版本,但和RV-Star板不兼容。
官方文档建议是通过创建setup_config.sh来添加环境参数,我则直接在.bashrc
添加了
export NUCLEI_TOOL_ROOT=/opt/Nuclei-Toolchain
export PATH=$NUCLEI_TOOL_ROOT/openocd/bin:$PATH
source ~/.bashrc
一次,以后就不用理会了。
官方文档只有关于Ubuntu的,串口所用group是plugdev
,而Arch所需的group是uucp
, ArchWiki上建议是用
# gpasswd -a username uucp
来添加用户到uucp。
官方文档另外要求添加新rules到/etc/udev
,但我实试后发现Arch上可以不用,板子连上电脑后ls -la /dev/ttyUSB*
,group就是uucp了,上传代码也没问题。
课上用到的实例库有Nuclei SDK里的application和nuclei-board-labs,先通过git下载 git clone https://gitee.com/Nuclei-Software/nuclei-sdk && cd nuclei-sdk && git clone https://gitee.com/Nuclei-Software/nuclei-board-labs
进入相应的实例,如helloworld
cd application/baremetal/helloworld
再通过
make upload SOC=gd32vf103 BOARD=gd32vf103v_rvstar
就可以编译和上传了。另外我也在.bashrc
添加了alias rvstarmakeupload='make upload SOC=gd32vf103 BOARD=gd32vf103v_rvstar'
,可以少敲几下键盘。
Debug用的minicom通过# pacman -S minicom
安装后,可以minicom -s
更改默认配置,而我则通过添加alias来方便运行: alias minicom1='minicom -D /dev/ttyUSB1 -b 115200'
更新
[2021-04-23] gcc包的二进制文件现在改为添加symlink到/usr/bin,所以不用再添加至PATH。