我如何知道嵌入式系统项目是否使用嵌入式操作系统?

时间:2013-08-20 23:36:06

标签: c operating-system embedded

我关注these instructions并成功在GINA Mote上传输IEEE 802.15.4帧。我知道它有效,因为我有一个捕获传输数据包的数据包嗅探器。

以下是源代码:https://github.com/openwsn-berkeley/openwsn-fw/tree/d1ec9982fbc101061b4bc70bde239e54cd1367c4/firmware/openos/bsp/boards/gina

我有点困惑它是如何以及为什么它正在工作。这个代码是在Gina mote上加载操作系统(如RTOS)还是这个项目没有操作系统?

我正在寻找一种不需要OS / bootloader的解决方案。

如果社区中的一位专家对此有所了解,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

JTAG适配器将可执行映像限制在MSP430处理器的对接位置,设置MSP430以开始在映像的起始地址执行,然后让它们翻录。而已。没有操作系统,加载可执行映像所需的小处理器板上没有代码。你的程序是它所知道的唯一代码。 (并且JTAG适配器可能会将代码烧录到处理器的闪存中,因此即使移除了JTAG适配器它也会保持驻留状态....并且在处理器复位时再次开始执行。)

现在,您可能想知道......您可能认为可能存在与运行系统相关联的C运行时工具......可能是printf()malloc()new,这些是C运行时和运行时的一部分。 I / O子系统,当然可以在没有操作系统的自定义平台上实现。

更新:嗯。当我在2008年玩小型MSP430时,我上面提到的是真的。当时我只记得IAR,我不记得有mspgcc。我相信IAR解决方案就像我上面所描述的那样。根据{{​​3}},mspgcc解决方案似乎涉及“BSL”(引导加载程序)。或许BSL只是预装在MSP430上,甚至IAR使用它......我不知道。在任何情况下,使用IAR或mspgcc工具链,最终你应该能够将程序刻录到处理器的内置闪存中,一旦烧入它,就可以删除JTAG编程/调试适配器,从那时起,每次启动时,CPU都会自动运行程序。