*-nuttx-elf
层级:3
面向 Apache NuttX 的目标。
Apache NuttX 是一个实时操作系统 (RTOS),它强调标准合规性和小巧的体积。它可从 8 位扩展到 64 位微控制器环境。NuttX 中的主要管理标准是 POSIX 和 ANSI 标准。
NuttX 采用了来自 Unix 和其他常见 RTOS(如 VxWorks)的附加标准 API。这些 API 用于 POSIX 和 ANSI 标准下不可用的功能。然而,一些 API,如 fork(),不适用于深度嵌入式环境,并且未在 NuttX 中实现。
为简洁起见,文档的许多部分将 Apache NuttX 简称为 NuttX。
目标维护者
- Qi Huang @no1wudi
要求
目标名称遵循以下格式:ARCH[-VENDOR]-nuttx-ABI
,其中 ARCH
是目标架构,VENDOR
是供应商名称,ABI
是使用的 ABI。
定义了以下目标名称
thumbv6m-nuttx-eal
thumbv7m-nuttx-eal
thumbv7em-nuttx-eabi
thumbv7em-nuttx-eabihf
thumbv8m.base-nuttx-eabi
thumbv8m.main-nuttx-eabi
thumbv8m.main-nuttx-eabihf
riscv32imc-unknown-nuttx-elf
riscv32imac-unknown-nuttx-elf
riscv32imafc-unknown-nuttx-elf
riscv64imac-unknown-nuttx-elf
riscv64gc-unknown-nuttx-elf
构建目标
可以通过在 rustc
构建中启用它来构建目标
[build]
target = "riscv32imc-unknown-nuttx-elf"
[target.'riscv32imc-unknown-nuttx-elf']
linker = "riscv-none-elf-gcc"
可以在NuttX 的快速入门指南中找到该目标的工具链。
测试
这是一个交叉编译的 no-std
目标,必须在模拟器中运行或通过编程将其烧录到合适的硬件上。无法在此目标上运行 Rust 测试套件。
交叉编译工具链和 C 代码
此目标支持 C 代码。如果与 C 或 C++ 互链接,则可能需要使用 riscv-none-elf-gcc
或 arm-none-eabi-gcc
作为链接器,而不是 rust-lld
。