我对嵌入式编程非常陌生,我想知道防暴操作系统是否具备我的小型项目所需的功能。
我有三个可执行文件,fizz,buzz和foo。它们都是分开但很重要的事情。我对实时OSes的理解是,您通常:
首先,如果这个理解是不正确的,有人能帮我纠正/澄清事情吗?
假设我或多或少地达到了目标,那么我想知道当芯片/OS启动时,RIOT是否支持运行“多个可执行文件”的概念?换句话说,暴暴操作系统是否可能与所有三个可执行文件(fizz、OS和foo)交叉编译,然后在运行时执行?
发布于 2015-08-12 09:49:16
阅读骚乱-OS游戏攻略和暴动:一个操作系统在物联网中统治他们报告。
看起来,您将创建一个单独的应用程序(与防暴运行时链接);这可以是三个可执行文件的混合体,每个应用程序都运行自己的线程。
拥有一个支持多个可执行文件的操作系统似乎需要一些档案系统 (或者分离可执行文件的一些东西)和一些流程的概念,而这显然是没有的。
如果您可以完全访问可执行文件的C源代码(即您的三个程序),原则上可以很容易地将它们混合起来:您只需确保每个程序都有唯一的名称即可。例如,您可以编写一些脚本来获取每个公共函数中的名称(例如aa、ab、foo在程序fizz中),并使用#define aa fizz__aa、#define ab fizz__ab等生成标题fizznames.h .包括在fizz的每一个翻译单位,等等。这个标头可以通过nm提供一些简单的awk脚本(或者您的熔化自定义扩展到GCC.)来生成;然后编写一个粘合应用程序,它将在自己的线程中启动每个buzz、buzz、foo主函数。或者,您也可以使用自己的GNU ld脚本(也许使用可见性函数属性)来玩ld技巧(例如,ld -r),以便将三个程序混合到一个可执行文件中(您仍然需要自己的启动函数)。
您仍然需要关心通信和同步(在fizz、to、foo之间)。
https://softwareengineering.stackexchange.com/questions/293489
复制相似问题