0
点赞
收藏
分享

微信扫一扫

RT-Thread Smart Ubuntu 20.04.4 RISCV64 编译环境的搭建


前言

  • RT-Thread Smart 的BSP ​​rt-smart\bsp\d1-allwinner-nezha​​,也就是全志 D1s的哪吒开发板,基于RISCV64平台,需要RISCV64的交叉编译环境
  • RISCV64 不属于ARM平台,算是当前一个新的RISC架构的平台,rt-smart下使用:​​riscv64-unknown-linux-musl-​​ 系列的gcc 交叉编译工具链

步骤

  • 可以在ubuntu下载工具链,然后设置环境变量即可,我这里使用 python 脚本下载,这个脚本来自 ​​ART-Pi-smart\tools\get_toolchain.py​​,感觉挺好用的
  • 把 ​​ART-Pi-smart\tools\get_toolchain.py​​​ ​​ART-Pi-smart\tools\ci.py​​​ 两个脚本,拷贝到 rt-smart的tools目录下,shell 终端执行:​​# python get_toolchain.py riscv64​​​,即可自动把 riscv64的gcc 交叉工具链下载下来,目录地址为:​​rt-thread/tools/gnu_gcc/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin​​​,这里的rt-thread,我切换到了 ​​rt-smart​​分支
  • 设置环境变量:把 ​​ART-Pi-smart\smart-env.sh​​ 拷贝到 rt-smart目录下,执行如下的操作即可

/home/rtthread/rt-thread# source smart-env.sh riscv64
Arch => riscv64
CC => gcc
PREFIX => riscv64-unknown-linux-musl-
EXEC_PATH => /home/rtthread/rt-thread/tools/gnu_gcc/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin

  • 这样 ​​riscv64-unknown-linux-musl-​​ gcc 交叉编译环境就配置好了

验证

  • shell 命令行输入:​​riscv64-unknown-linux-musl-gcc -v​​,正常执行,说明 gcc 交叉编译工具正常配置了

root@pluto-os:/home/rtthread/rt-thread# riscv64-unknown-linux-musl-gcc -v
Using built-in specs.
COLLECT_GCC=riscv64-unknown-linux-musl-gcc
COLLECT_LTO_WRAPPER=/home/rtthread/rt-thread/tools/gnu_gcc/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../libexec/gcc/riscv64-unknown-linux-musl/10.1.0/lto-wrapper
Target: riscv64-unknown-linux-musl
Configured with: /builds/alliance/risc-v-toolchain/riscv-gcc/configure --target=riscv64-unknown-linux-musl --prefix=/builds/alliance/risc-v-toolchain/install-native/ --with-sysroot=/builds/alliance/risc-v-toolchain/install-native//riscv64-unknown-linux-musl --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++ --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=/builds/alliance/risc-v-toolchain/riscv-gcc --disable-multilib --with-abi=lp64 --with-arch=rv64imafdc --with-tune=rocket 'CFLAGS_FOR_TARGET=-O2 -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2 -mcmodel=medany'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.1.0 (GCC)

编译BSP d1-allwinner-nezha

  • 进入 ​​d1-allwinner-nezha​​​目录下,可以使用 ​​scons --clean​​ 清理工程
  • 可以使用:​​scons --menuconfig​​ 图形配置工程
  • 使用:​​scons​​ 编译BSP

编译产物

  • ​d1-allwinner-nezha​​ 当前编译,需要修复几个编译问题,编译通过,会生成产物如下

RT-Thread Smart Ubuntu 20.04.4 RISCV64 编译环境的搭建_linux

小结

  • 其实环境搭建就是 gcc 交叉编译工具链的下载与环境变量配置
  • 后面讲一下如何在windows下编译RISCV64平台的BSP


举报

相关推荐

0 条评论