3

我很确定这是可能的,但我不知道该怎么做。一般来说,我对使用 GCC 构建非常陌生,而且我从未使用过 FreeRTOS,但我想尝试让操作系统在 TI ARM Cortex MCU 上启动并运行,但略有不同:我想得到它与 Pascal 一起运行。我很好奇:

  • 这甚至可能得到工作?如果不是,那么接下来的问题就是有争议的问题。
  • 在我的 Delphi 时代,我隐约记得访问 C 库中的函数的能力。我想知道我是否可以访问 FreeRTOS 中的 C 例程。
  • 如果我使用 GCC 版本(首选),我可以在目标上使用 OpenOCD 进行调试吗?我不太确定调试符号是如何工作的,以及它是否或多或少与语言无关(希望在这种情况下)。
  • 作为一个有点超出原始查询范围的附加问题,我可以在 x86 处理器(例如我的开发 PC)上模拟 FreeRTOS,以便在开发过程中更轻松地进行调试吗?(当然,使用 Pascal 程序..)

我还没有找到任何关于实现这一点的文档,所以希望这里的人能有所启发!任何资源都是最有帮助的。就像我说的,我对这种发展很陌生。如果您认为有更好的选择,我也愿意接受建议。

仅供参考,我首选的主机配置类似于:

  • Linux (Ubuntu/Debian)
  • Eclipse IDE 用于开发、单元测试和希望的模拟/调试
  • 用于目标调试的 OpenOCD
  • 目标上的 GNU Pascal + FreeRTOS
4

3 回答 3

3

FreeRTOS 是 C 源代码,所以就像你说的,你必须有一些机制来将 C 与你的 Pascal 程序链接起来。此外,FreeRTOS 依赖于某些寄存器用于将参数传递给任务(作为假设示例,任务可能总是期望参数位于寄存器 R0 中),因此您必须确保 C 编译器的 ABI并且 Pascal 编译器是相同的 - 或者在 C 中输入你的任务然后让它调用一个 Pascal 函数(非常讨厌)。然后是中断、调用内联宏等问题。我想说这很难实现。

于 2010-08-22T05:36:40.623 回答
2

GNU Pascal 和 Free Pascal 都支持链接到 C (gcc) 和 ARM,以及从 C 等调用 pascal 代码。编写头文件并使用 cdecl 声明原型就是它的全部内容。

宏是一个更大的问题。通常我只是将它们重写为内联函数(无论如何它们应该是什么)。除了宏/标头问题外,问题更多是编译器特定的功能(从一个 C 编译器移植到下一个时,您也会遇到问题)

如果你更喜欢 TP/Delphi 方言,Free Pascal 是更好的选择。

我在我的 sheevaplug 上运行我的旧 Delphi 代码很好。

于 2010-08-22T10:02:07.003 回答
2

TI Cortex-M3(以前是 Luminary Micro Cortex-M3)上已经有一个 FreeRTOS/GCC/OpenOCD 示例。请注意,尽管这是一个非常古老的示例,并且使用的 Eclipse 和 OpenOCD 版本都已过时。

尽管提供了一个 Eclipse 项目,但该项目被配置为标准 make(与托管 make 相对)项目,因此有一个标准 makefile 可以像在 Eclipse 中一样容易地从命令行执行。

http://www.freertos.org/portLM3Sxxxx_Eclipse.html

于 2011-02-20T10:01:57.087 回答