FreeRTOS + GNAT Ada 编译库

mar*_*cho 2 ada freertos gnat

我有一个正在运行的带有 FreeRTOS 的 ARM CortexA9 板,我需要添加一个用 ADA 编写的旧的和大型的库。我已经成功生成了库并在代码中实现了它,但是我遇到了一些问题;

首先,FreeRTOS 允许以下哪些 RTS 配置文件?

  • zfp
  • Ravenscar_sfp
  • Ravenscar_full

Sim*_*ght 5

您提议使用 GNAT CE 2019 arm-elf 编译器来编译 Ada 源代码(-mcpu=cortex-a9可以)并将结果与​​您的非 ada 代码链接。

我认为您不能使用该编译器附带的 AdaCore Ravenscar 运行时,因为他们假设他们负责董事会并运行自己的任务/中断处理代码,而不是 FreeRTOS。

我一直在为一些低端 Cortex-M 板维护一个基于 FreeRTOS 的运行时,它确实支持 Ravenscar 配置文件,就像 AdaCoresfp运行时一样。我认为根据您的用例调整它不会是一项巨大的工作。

另一方面,如果您的 Ada 代码(以及它所依赖的 Ada 代码)不涉及任务处理或依赖终结或异常,您可能不需要太多运行时支持;在zfp运行时将作为基础。