*-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。

目标维护者

要求

目标名称遵循以下格式: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-gccarm-none-eabi-gcc 作为链接器,而不是 rust-lld