我目前正在为我公司正在开发的消费电子产品开发操作系统。我已经决定将 freeRTOS 作为我们操作系统的主干,并且正在努力在操作系统中实现硬件功能。但是,我遇到了一个关于在 freeRTOS 中运行 3rd-party 应用程序的问题。
最初我认为一个任务是一个应用程序,基本上你有“myapplication.c”和“myapplication.h”包含你所有的应用程序必要的功能,代码将驻留在任务内的for(;;)循环中(充当一个主while循环)。然后,当用户决定运行该应用程序时,函数指针将传递给队列,然后我的 app_launcher 任务使用该队列使用 3rd 方任务或应用程序创建新任务。
然而,这种方法的问题是操作系统已经被编译并驻留在微控制器上,并且应用程序可以根据用户认为合适的方式安装和删除......所以显然应用程序需要从操作系统编译和执行。在标准的 unix 机器上,我会使用 fork 之类的东西来选择可执行文件并为其提供自己的进程。但是我在 freeRTOS 中找不到类似的功能。我的另一个想法是使用脚本语言进行应用程序开发,但我再次不确定如何启动这些应用程序...
所以问题是,我如何让 freeRTOS 运行来自 3rd 方开发人员的尚未融入操作系统的应用程序?