You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.2 KiB
1.2 KiB
RISCV 移植记录
开发环境
- riscv-rust/rust:使用官方发布的二进制版本+源码
- riscv-gnu-toolchain:使用OS2018腾讯云中使用的预编译版本
具体配置过程详见Dockerfile
Rust-RISCV
目标指令集:RISCV32IA
target: riscv32ia_unknown_none
由于工具链二进制版本尚未内置riscv32ia_unknown_none
的target,因此需提供配置文件:riscv32-blog_os.json
。
为什么要用原子指令扩展?
RustOS依赖的库中,大部分都使用了Rust核心库的原子操作(core::sync::atomic)。
如果目标指令集不支持原子操作,会导致无法编译。
BootLoader
参考bbl-ucore及后续的ucore_os_lab for RISCV32,使用bbl作为BootLoader。
然而官方版本和bbl-ucore中的fork版本都无法正常编译,使用的是ucore_os_lab中的修改版本。