embOS是 SEGGER 的实时操作系统,SEGGER是ST 合作伙伴计划的成员,可在所有STM32 微控制器上运行,目前在数十亿台设备中,所有微架构组合在一起。除此之外,它特别高效,因为它的内核 ROM 大小约为 1,700 字节,其 RAM 大小仅为 71 字节,而上下文切换在 Cortex-M4 STM32F407IG上仅需要 320 个时钟周期。相比之下,罗马尼亚苏恰瓦大学学者的一篇论文据估计,在完全相同的 MCU 上,替代方案可能需要多达 1,340 个周期,而其基准测试中最快的替代方案最多可降至 462 个周期。embOS 也很受欢迎,因为它客观可靠,因为该公司提出了 IEC 61508 SIL 3 和 IEC 62304 C 类认证,使操作系统能够用于医疗、汽车或航空电子应用等。
与其他竞争解决方案不同,embOS 在最少的重写(如果有的话)后获得了这些认证,因为它从一开始就考虑到了稳健性和可靠性,这要归功于其非常模块化的方法。内核有两部分:通用组件和硬件相关方面。前者约占整个操作系统的 80%,并解释了为什么 embOS 可以在内存非常少的 8 位和 32 位 MCU 上运行,同时提供出色的性能。硬件相关部分通过利用特定架构的某些方面来进一步推动这些优化。SEGGER 还超越了其 RTOS,提供了可利用某些功能的附加工具。例如,它的emCrypt使用 STM32 硬件加速来优化加密操作。这些工具独立于 embOS 工作,但也有助于吸引更多开发人员加入 SEGGER 的生态系统。
embOS:超过 50 个 STM32 开发板和免费评估软件的软件包
STM32 微控制器用户开始试用 embOS 的最佳方式是前往SEGGER 的选择器页面,在那里他们将能够下载 RTOS 和与其 ST 开发板相关的工具。我们与 SEGGER 密切合作的原因之一是他们为我们的组件提供的解决方案可以免费用于评估和教育目的,没有任何技术限制。任何人都可以安装 embOS 和其他“em”产品并将它们用于非商业目的,使其成为一个很好的原型平台,同时评估特定项目的需求。
STM32 用户可以相信,SEGGER 中的绝大多数测试过程都在 STM8 和 STM32 微控制器上运行,这使得我们与该公司的合作独一无二,因为它的团队依赖于使他们与竞争对手区分开来的优化。多年来,我们一直与 SEGGER 密切合作,以确保他们能够在我们的平台上提供最佳解决方案。因此,他们在 ST 合作伙伴计划中的出现在他们的选择器页面上大放异彩,以确保我们的社区享受我们合作的成果,轻松访问可靠和强大的软件。
Tickless 支持:使用 STM32 定时器实现节能
embOS中tickless支持的示例实现
开发人员经常错过但关键地突出了 embOS 中存在的优化的一项功能是它的无滴答支持。Cortex-M 架构包括一个 24 位系统定时器 (SysTick),它以计数器的形式递减并在每个滴答时引发中断。不幸的是,当试图让微控制器进入深度睡眠时,这个系统远非最佳,因为它有很多中断。通过提供无滴答支持,SEGGER 可以完全绕过 SysTick 并使用 STM32 MCU 上可用的硬件定时器 TIM2 来显着减少中断数量,从而使组件保持更长时间处于深度低功耗模式,从而提供更显着的节能效果。
很简单,开发人员需要更改OS_Idle()函数以使用无滴答模式并设置其 STM32 硬件定时器提供的最大计数时间。应用程序将查看低功耗模式的持续时间,并且仅在 TIM2 达到其最大计数时间时才引发中断,而不是在每个滴答声中发送一个中断。例如,在SEGGER 的应用笔记中,一个程序将低功耗模式设置为 200 个空闲滴答,由于 STM32F103 的硬件定时器提供的最大计数时间为 58 个滴答,因此使用无滴答模式意味着系统只会抛出 4 个中断(一个在 58 个滴答声之后)在达到 200 之前。如果开发人员使用 SysTick,他们会收到 200 次中断,这极大地限制了在这种深度睡眠模式下可能实现的节能。
embOS:更高效的 RTOS 意味着更多资源可用于应用程序
Tickless 支持是 embOS 可以为产品带来优势的一个很好的例子。它还解释了为什么越来越多的公司正在远离 Linux 并采用实时操作系统来满足其计算要求高的应用程序。下图显示了 embOS 与 Linux 和其他 RTOS 相比的内存占用。当我们将这些收益与诸如无滴答支持等优化结合起来时,我们看到开发人员正在迁移到这些系统,因为他们可以享受以前无法获得的额外资源,同时由于内核的硬件依赖模块或 SEGGER 的独立模块而促进高级功能的使用工具。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !