仅针对 RISC-V 目标
要为基于 RISC-V 架构的乐鑫芯片构建 Rust 应用程序,请执行以下步骤:
-
安装适当的工具链以及
rust-src组件:- 对于
no_std(裸机)应用,既可以使用stable,也可以使用nightly:
rustup toolchain install stable --component rust-src或
rustup toolchain install nightly --component rust-src- 对于
std应用,只能使用nightly:
rustup toolchain install nightly --component rust-src上面的命令下载了 rust 源码。
rust-src包含了 std 库、core 库和构建配置文件等。 下载rust-src的原因在于:- 确定性 - 你可以查看 core 和 std 库的内部结构。如果你正在编写需要较高确定性的软件,你可能需要检查正在使用的库。
- 构建自定义目标 -
rustc使用rust-src创建新的自定义目标的组件。如果你的目标是 rust 尚不支持的 triple-target,则必须下载rust-src。
关于自定义目标的更多信息,参见 Embedonomicon 的此章节。
- 对于
-
设置目标:
-
对于
no_std(裸机)应用,运行:rustup target add riscv32imc-unknown-none-elf # 针对 ESP32-C2 和 ESP32-C3 rustup target add riscv32imac-unknown-none-elf # 针对 ESP32-C6 和 ESP32-H2 -
对于
std应用:由于这些目标目前属于 Tier 3,所以不存在通过
rustup分发的预构建对象,并且与no_std目标不同,不需要安装任何东西。请参阅 rustc book 一书的 *-esp-idf 章节以找到适配具体设备的目标。riscv32imc-esp-espidf针对不支持原子指令(A)扩展的 SoC,例如 ESP32-C2 和 ESP32-C3riscv32imac-esp-espidf针对支持原子指令(A)扩展的 SoC,例如 ESP32-C6、ESP32-H2 和 ESP32-P4
-
-
为了构建
std项目,还需要安装:
现在你应该就能在乐鑫的 RISC-V 芯片上构建和运行一个项目了。