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 文档。