armv7-rtems-eabihf

等级:3

使用 RTEMS gcc 交叉编译器,针对 RTEMS 实时操作系统的 ARM 目标,以便链接到指定板级支持包 (BSP) 的库。

目标维护者

要求

此目标不支持主机工具。只能进行交叉编译。可以通过遵循RTEMS 文档的安装说明来获取交叉编译器工具链。除了交叉编译器之外,主机上还需要有一个适合该架构的板子的已编译 BSP。目前测试使用的是 RTEMS 6 的 BSP xilinx_zynq_a9_qemu

std 支持可用,但尚未完全测试。请勿在飞行软件中使用!

此目标遵循 extern "C" 的 EABI 调用约定。

生成的二进制文件为 ELF 格式。

构建目标

此目标可以使用 Rust 的标准编译器构建。

构建 Rust 程序

Rust 尚未为此目标发布预编译的工件。要为此目标编译,您需要使用启用了该目标的 Rust 构建(请参阅上面的“构建目标”),或者使用 build-std 或类似方法构建您自己的 core 副本。

为了构建 RTEMS 可执行文件,还需要编译一个基本的 RTEMS 配置(用 C 编写)以进行链接,因为这会配置操作系统。可以在这个 rtems-sys crate 中找到一个示例,可以将其作为依赖项添加到您的应用程序中。

测试

生成的二进制文件可以在模拟目标上正常运行(也可能在真实的 Zedboard 或类似设备上运行)。例如,在 qemu 上,可以使用以下命令执行二进制文件

qemu-system-arm -no-reboot -serial null -serial mon:stdio -net none -nographic -M xilinx-zynq-a9 -m 512M -kernel <binary file>

虽然单元测试工具的基本执行似乎有效。但是,尚未在(模拟)硬件上测试运行 Rust 测试套件。

交叉编译工具链和 C 代码

可以使用 RTEMS 交叉编译器工具链 arm-rtems6-gcc 构建兼容的 C 代码。有关如何构建工具链、RTEMS 本身和 RTEMS 应用程序的更多信息,请参阅 RTEMS 文档