首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防暴操作系统和多个可执行程序?

防暴操作系统和多个可执行程序?
EN

Software Engineering用户
提问于 2015-08-12 09:29:25
回答 1查看 336关注 0票数 0

我对嵌入式编程非常陌生,我想知道防暴操作系统是否具备我的小型项目所需的功能。

我有三个可执行文件,fizz,buzz和foo。它们都是分开但很重要的事情。我对实时OSes的理解是,您通常:

  1. 获取应用程序的源代码,并将其与RTOSes源代码合并/拼接;然后
  2. 您将这个聚合的源代码(同样是您的应用程序+ RTOS源代码)交叉编译成与您将在其上运行的最终平台/体系结构兼容的二进制代码;然后
  3. 您可以使用UART或SPI之类的方法将二进制文件闪烁到芯片上。

首先,如果这个理解是不正确的,有人能帮我纠正/澄清事情吗?

假设我或多或少地达到了目标,那么我想知道当芯片/OS启动时,RIOT是否支持运行“多个可执行文件”的概念?换句话说,暴暴操作系统是否可能与所有三个可执行文件(fizz、OS和foo)交叉编译,然后在运行时执行?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2015-08-12 09:49:16

阅读骚乱-OS游戏攻略暴动:一个操作系统在物联网中统治他们报告。

看起来,您将创建一个单独的应用程序(与防暴运行时链接);这可以是三个可执行文件的混合体,每个应用程序都运行自己的线程。

拥有一个支持多个可执行文件的操作系统似乎需要一些档案系统 (或者分离可执行文件的一些东西)和一些流程的概念,而这显然是没有的。

如果您可以完全访问可执行文件的C源代码(即您的三个程序),原则上可以很容易地将它们混合起来:您只需确保每个程序都有唯一的名称即可。例如,您可以编写一些脚本来获取每个公共函数中的名称(例如aaabfoo在程序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之间)。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/293489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档