ada - FreeRTOS + GNAT Ada 编译库

标签 ada freertos gnat

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

首先,FreeRTOS 允许使用以下哪种 RTS 配置文件?

  • zfp
  • Ravenscar_sfp
  • Ravenscar_full

最佳答案

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

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

我一直在维护FreeRTOS-based runtime for some lower-end Cortex-M boards ,它确实支持 Ravenscar 配置文件,与 AdaCore sfp 运行时非常相似。我认为根据您的用例进行调整并不需要大量工作。

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

关于ada - FreeRTOS + GNAT Ada 编译库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59714074/

相关文章:

stack-overflow - 在 FreeRTOS 中从 ISR 提供​​信号量后堆栈溢出

.net - 在 Ada 中使用 .net 命令

c++ - Ada Variant Record 能否与 C++ union 二进制兼容?

ada - 如何在 Ada 的数学运算中使用不同的固定点类型?

ada - 操作只能以一种类型进行调度

rtos - FreeRTOS 使用什么样的调度程序?

c - 在为arm进行交叉编译时,是否有特定的编译器标志来使用gcc同步内置函数?

ada - 检查变量的初始化

xcode - 如何在 Mac 上编译/构建 Ada?

compiler-errors - 使用软件包时出错