11

我在一家使用 FreeRTOS 为多个设备创建固件的公司工作。最近我们对新功能的要求已经超过了我们的固件工程师的工作量,但我们现在也雇不起任何新人。即使是微小的更改,也需要固件人员在非常低的级别上进行修改。

我一直在为 FreeRTOS 寻找某种解释语言项目,它可以让我们在更高级别实现新功能。理想情况下,我希望最终得到一些东西,这样设备就更​​接近于我们编写驱动程序的通用计算机,而不是我们必须自己实现每个功能。

是否有任何解释 java、python 或类似字节码的 FreeRTOS 项目?

我在谷歌上看过,但由于我自己不是固件工程师,我不确定我是否正在寻找正确的关键字。

感谢大家

4

4 回答 4

6

如果代码是可移植的,我认为 RTOS 甚至操作系统在这里都不是很重要。根据您的输入和输出方案,您可能需要进行一些移植。

关于可嵌入脚本语言,我熟悉的 2 是LUAPAWN

我认为 Python 和其他此类语言的版本已移植到嵌入式系统,但它们往往是嵌入式 Linux 的变种。根据您的平台(不知道是带有 8K ROM 的小型 MCU 还是嵌入式 PC),这可能是一种选择。

于 2010-04-07T01:16:50.083 回答
2

没有“制造”以使用 FreeRTOS 或任何其他微控制器线程库(在 e2e 社区中松散地称为“RTOS”)的解释性语言。

但是,我在嵌入式系统中使用的第一手经验是(a)用 C 编写的,以及(b)小到可以嵌入到微控制器中的语言包括:

  • LUA(适用于几乎任何东西,甚至是一些图片)
  • Python(适用于大多数 ARM 架构,无论如何,内存超过 1mb)

我没有第一手的经验,但是 Ruby 可能和 Python 一样容易嵌入。

于 2010-06-21T18:36:31.813 回答
1

您可以尝试为您的特定微控制器或一般微控制器寻找任何解释器,而不是寻找特定于 FreeRTOS 的解释器。可以将它们与 FreeRTOS 连接起来,或者将解释器变成一个任务。

似乎有人试图在 FreeRTOS 上使用 Lua(图 32)。

于 2012-04-03T11:09:16.660 回答
0

我想您的问题最终归结为找到提高低级 RTOS 机制之上的抽象级别的方法。虽然解释型语言的抽象级别可能比 C 更高,但通过应用基于事件驱动框架和状态机的方法,您可以做得更好。这种事件驱动的框架已经存在了几十年,并且已经在各种领域的无数嵌入式系统中得到证明。今天,几乎每个能够生成代码的嵌入式系统建模工具(例如,Rational-Rose RT、Rhapsody 等)都包含这种状态机框架的变体。

但是事件驱动的状态机框架也可以在没有大工具的情况下使用。例如,QP 状态机框架 (state-machine.com) 可以做传统 RTOS 可以做的所有事情,而且效率更高,而且还可以做很多 RTOS 做不到的事情。

当您开始使用带有状态机的现代事件驱动编程范例时,您的问题将会改变。您将不再为 15 级复杂的 if-else 语句而苦恼,并且您将不再担心信号量或其他此类低级 RTOS 机制。相反,您将开始思考关于状态机和它们之间交换的事件的更高层次的抽象。在您体验了这种巨大的飞跃之后,您将永远不想回到原始 RTOS 和意大利面条代码。

于 2010-04-08T20:22:05.977 回答