embOS是 SEGGER 的實(shí)時(shí)操作系統(tǒng),SEGGER是ST 合作伙伴計(jì)劃的成員,可在所有STM32 微控制器上運(yùn)行,目前在數(shù)十億臺(tái)設(shè)備中,所有微架構(gòu)組合在一起。除此之外,它特別高效,因?yàn)樗膬?nèi)核 ROM 大小約為 1,700 字節(jié),其 RAM 大小僅為 71 字節(jié),而上下文切換在 Cortex-M4 STM32F407IG上僅需要 320 個(gè)時(shí)鐘周期。相比之下,羅馬尼亞蘇恰瓦大學(xué)學(xué)者的一篇論文據(jù)估計(jì),在完全相同的 MCU 上,替代方案可能需要多達(dá) 1,340 個(gè)周期,而其基準(zhǔn)測(cè)試中最快的替代方案最多可降至 462 個(gè)周期。embOS 也很受歡迎,因?yàn)樗陀^可靠,因?yàn)樵?a target="_blank">公司提出了 IEC 61508 SIL 3 和 IEC 62304 C 類認(rèn)證,使操作系統(tǒng)能夠用于醫(yī)療、汽車(chē)或航空電子應(yīng)用等。
與其他競(jìng)爭(zhēng)解決方案不同,embOS 在最少的重寫(xiě)(如果有的話)后獲得了這些認(rèn)證,因?yàn)樗鼜囊婚_(kāi)始就考慮到了穩(wěn)健性和可靠性,這要?dú)w功于其非常模塊化的方法。內(nèi)核有兩部分:通用組件和硬件相關(guān)方面。前者約占整個(gè)操作系統(tǒng)的 80%,并解釋了為什么 embOS 可以在內(nèi)存非常少的 8 位和 32 位 MCU 上運(yùn)行,同時(shí)提供出色的性能。硬件相關(guān)部分通過(guò)利用特定架構(gòu)的某些方面來(lái)進(jìn)一步推動(dòng)這些優(yōu)化。SEGGER 還超越了其 RTOS,提供了可利用某些功能的附加工具。例如,它的emCrypt使用 STM32 硬件加速來(lái)優(yōu)化加密操作。這些工具獨(dú)立于 embOS 工作,但也有助于吸引更多開(kāi)發(fā)人員加入 SEGGER 的生態(tài)系統(tǒng)。
embOS:超過(guò) 50 個(gè) STM32 開(kāi)發(fā)板和免費(fèi)評(píng)估軟件的軟件包
STM32 微控制器用戶開(kāi)始試用 embOS 的最佳方式是前往SEGGER 的選擇器頁(yè)面,在那里他們將能夠下載 RTOS 和與其 ST 開(kāi)發(fā)板相關(guān)的工具。我們與 SEGGER 密切合作的原因之一是他們?yōu)槲覀兊慕M件提供的解決方案可以免費(fèi)用于評(píng)估和教育目的,沒(méi)有任何技術(shù)限制。任何人都可以安裝 embOS 和其他“em”產(chǎn)品并將它們用于非商業(yè)目的,使其成為一個(gè)很好的原型平臺(tái),同時(shí)評(píng)估特定項(xiàng)目的需求。
STM32 用戶可以相信,SEGGER 中的絕大多數(shù)測(cè)試過(guò)程都在 STM8 和 STM32 微控制器上運(yùn)行,這使得我們與該公司的合作獨(dú)一無(wú)二,因?yàn)樗膱F(tuán)隊(duì)依賴于使他們與競(jìng)爭(zhēng)對(duì)手區(qū)分開(kāi)來(lái)的優(yōu)化。多年來(lái),我們一直與 SEGGER 密切合作,以確保他們能夠在我們的平臺(tái)上提供最佳解決方案。因此,他們?cè)?ST 合作伙伴計(jì)劃中的出現(xiàn)在他們的選擇器頁(yè)面上大放異彩,以確保我們的社區(qū)享受我們合作的成果,輕松訪問(wèn)可靠和強(qiáng)大的軟件。
Tickless 支持:使用 STM32 定時(shí)器實(shí)現(xiàn)節(jié)能
embOS中tickless支持的示例實(shí)現(xiàn)
開(kāi)發(fā)人員經(jīng)常錯(cuò)過(guò)但關(guān)鍵地突出了 embOS 中存在的優(yōu)化的一項(xiàng)功能是它的無(wú)滴答支持。Cortex-M 架構(gòu)包括一個(gè) 24 位系統(tǒng)定時(shí)器 (SysTick),它以計(jì)數(shù)器的形式遞減并在每個(gè)滴答時(shí)引發(fā)中斷。不幸的是,當(dāng)試圖讓微控制器進(jìn)入深度睡眠時(shí),這個(gè)系統(tǒng)遠(yuǎn)非最佳,因?yàn)樗泻芏嘀袛?。通過(guò)提供無(wú)滴答支持,SEGGER 可以完全繞過(guò) SysTick 并使用 STM32 MCU 上可用的硬件定時(shí)器 TIM2 來(lái)顯著減少中斷數(shù)量,從而使組件保持更長(zhǎng)時(shí)間處于深度低功耗模式,從而提供更顯著的節(jié)能效果。
很簡(jiǎn)單,開(kāi)發(fā)人員需要更改OS_Idle()函數(shù)以使用無(wú)滴答模式并設(shè)置其 STM32 硬件定時(shí)器提供的最大計(jì)數(shù)時(shí)間。應(yīng)用程序?qū)⒉榭吹凸哪J降某掷m(xù)時(shí)間,并且僅在 TIM2 達(dá)到其最大計(jì)數(shù)時(shí)間時(shí)才引發(fā)中斷,而不是在每個(gè)滴答聲中發(fā)送一個(gè)中斷。例如,在SEGGER 的應(yīng)用筆記中,一個(gè)程序?qū)⒌凸哪J皆O(shè)置為 200 個(gè)空閑滴答,由于 STM32F103 的硬件定時(shí)器提供的最大計(jì)數(shù)時(shí)間為 58 個(gè)滴答,因此使用無(wú)滴答模式意味著系統(tǒng)只會(huì)拋出 4 個(gè)中斷(一個(gè)在 58 個(gè)滴答聲之后)在達(dá)到 200 之前。如果開(kāi)發(fā)人員使用 SysTick,他們會(huì)收到 200 次中斷,這極大地限制了在這種深度睡眠模式下可能實(shí)現(xiàn)的節(jié)能。
embOS:更高效的 RTOS 意味著更多資源可用于應(yīng)用程序
Tickless 支持是 embOS 可以為產(chǎn)品帶來(lái)優(yōu)勢(shì)的一個(gè)很好的例子。它還解釋了為什么越來(lái)越多的公司正在遠(yuǎn)離 Linux 并采用實(shí)時(shí)操作系統(tǒng)來(lái)滿足其計(jì)算要求高的應(yīng)用程序。下圖顯示了 embOS 與 Linux 和其他 RTOS 相比的內(nèi)存占用。當(dāng)我們將這些收益與諸如無(wú)滴答支持等優(yōu)化結(jié)合起來(lái)時(shí),我們看到開(kāi)發(fā)人員正在遷移到這些系統(tǒng),因?yàn)樗麄兛梢韵硎芤郧盁o(wú)法獲得的額外資源,同時(shí)由于內(nèi)核的硬件依賴模塊或 SEGGER 的獨(dú)立模塊而促進(jìn)高級(jí)功能的使用工具。
審核編輯:郭婷
-
Linux
+關(guān)注
關(guān)注
87文章
11336瀏覽量
210098 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6875瀏覽量
123577 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3255瀏覽量
115158
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論