【平头哥Sipeed LicheeRV 86 Panel测评】使用crosstool-ng构建riscv64的编译器
[复制链接]
使用crosstool-ng构建riscv64的编译器
crosstool-ng,全称是crosstool Next Generation,即下一代crosstool,即crosstool的升级版
可能有人会问,什么是crosstool?
crosstool,是个交叉编译器的制作工具。
Step-1: 安装crosstool-ng
1.1 下载crosstool-ng的源代码
git clone https://github.com/crosstool-ng/crosstool-ng.git
1.2 配置ct-ng的编译和安装选项
cd crosstool-ng
./bootstrap
mkdir build
cd build
../configure --prefix=/PATH/TO/INSTALL
1.3 编译和安装
make
make install
export PATH=/PATH/TO/INSTALL/bin:$PATH
Step-2: 配置并构建crosstool-ng的范例工具链
2.1 显示ct-ng已有的范例配置项
ct-ng list-samples
可以看到riscv有4个配置项,riscv32和riscv64各两种(分别对应编译无操作系统(裸奔单片机代码)的elf和带linux系统支持的linux-gnu)
[G..X] riscv32-hifive1-elf
[G..X] riscv32-unknown-elf
[G..X] riscv64-unknown-elf
[G..X] riscv64-unknown-linux-gnu
ct-ng show-xxx
可以显示配置项的各个组件及其版本,如图。
ct-ng xxx 用于配置对应的工具链,本次编译分别配置为riscv64-unknown-elf 和 riscv64-unknown-linux-gnu
ct-ng menuconfig
采用与linux kernel同样的menuconfig配置方式,如图,
一切都配置好以后,采用ct-ng build,经过一段时间的编译,即可完成工具链的构建。默认安装在$HOME/x-tools 目录下。
3 测试工具链
采用riscv64-unknown-elf工具链,编译无操作系统裸奔代码,
export PATH=/home/mars4zhu/x-tools/riscv64-unknown-elf/bin:$PATH
cd lcd-backlight
make clean
make CROSS_COMPILE=riscv64-unknown-elf
使用xfel工具将生成的裸奔bin文件传到Lichee RV板,可见运行正常,与平头哥提供的工具链的编译出来的功能一致。
xfel version
xfel write 0x00020000 lcd-backlight.bin
xfel exec 0x00020000
|