riscv是当前比较火热的玩意,sifive的u740开发板是当前性能还不错的板子。
sifive官方提供了一个SDK,https://github.com/sifive/freedom-e-sdk
在SDK里提供了裸板和freeRTOS的测试程序。
但使用起来还是会有一点点问题。
在此列出:
一、开发环境
1.编译环境准备
操作系统选择ubuntu 一般20.04都可以吧。
需要下载安装gcc toolchain、openocd、qemu等,都可以从sifive官网提供的下载页面获取: Software - SiFive ,
将这些软件下载后,解压缩,添加到PATH路径中。
命令示例如下: 此处添加了RISCV_OPENOCD_PATH这个变量
cp openocd-<date>-<platform>.tar.gz /my/desired/location/
cp riscv64-unknown-elf-gcc-<date>-<platform>.tar.gz /my/desired/location
cd /my/desired/location
tar -xvf openocd-<date>-<platform>.tar.gz
tar -xvf riscv64-unknown-elf-gcc-<date>-<platform>.tar.gz
#export RISCV_PATH=/my/desired/location/riscv64-unknown-elf-gcc-<date>-<version>
export PATH=/my/openocd/bin:$PATH
最终的目的就是要实现直接运行openocd、riscv64-unknown-elf-gcc命令,bash能找到这些程序。
.
3+363
二、下载编译代码
git clone --recursive https://github.com/sifive/freedom-e-sdk.git
cd freedom-e-sdk
git submodule update --init --recursive
make PROGRAM=example-freertos-blinky \
TARGET=sifive-hifive-unleashed \
CONFIGURATION=debug software
TARGET 可能的选项还有:
- qemu-sifive-u54
- qemu-sifive-u54mc
- sifive-hifive-unleashed
- sifive-hifive-unmatched
CONFIGURATION选项
- debug
- release
make 的目标主要有:
- software
- debug
- upload
- simulate
三、运行
如果不用开发板,只是在模拟器上运行的话,make simulate 就可以,命令如下:
make PROGRAM=example-freertos-blinky\
TARGET=qemu-sifive-u54mc \
CONFIGURATION=release simulate
在U740开发板上运行需要进行如下设置:
1.设置MSEL
按这个图,设置U740上的开关。这是在README中提到的:
https://github.com/sifive/freedom-e-sdk/blob/master/bsp/sifive-hifive-unmatched/README.md
以下是CHIP_ID的解释:大意是启动的时候从tf