1、支持操作系統(tǒng)的特性概述:
就拿M0核的單片機(jī)來(lái)說(shuō),就有一部分特性是針對(duì)嵌入式操作系統(tǒng)的(OS),包括:
l SysTick定時(shí)器,24位向下計(jì)數(shù),且周期產(chǎn)生SysTick異常。
l 棧指針,即進(jìn)程棧指針,兩個(gè)棧指針的結(jié)構(gòu)可以使得應(yīng)用棧和OS內(nèi)核棧相互獨(dú)立。
l SVC異常和SVC指令,通過(guò)異常機(jī)制,應(yīng)用程序可以使用SVC訪問(wèn)OS服務(wù)。
l PendSV異常,其可以被OS、設(shè)備驅(qū)動(dòng)或者應(yīng)用程序使用來(lái)產(chǎn)生可延遲的服務(wù)請(qǐng)求。
2、為什么要使用嵌入式操作系統(tǒng)?
當(dāng)提到操作系統(tǒng)的時(shí)候,大多數(shù)人首先會(huì)想到Windows和Linux之類的桌面操作系統(tǒng)。這些操作系統(tǒng)要想運(yùn)行起來(lái),需要強(qiáng)大的處理器、大量的存儲(chǔ)器以及其他硬件,而對(duì)于嵌入式設(shè)備,各種OS的差別很大。嵌入式操作系統(tǒng)可以運(yùn)行在低功耗的微控制器上,它們需要很少的存儲(chǔ)器(相對(duì)于桌面系統(tǒng)),并且運(yùn)行的時(shí)鐘頻率要低很多,比如Keil RTX只需要4KB的程序空間以及大約0.5KB的SRAM,一般情況下,這些操作系統(tǒng)設(shè)置不需要顯示或者鍵盤。當(dāng)然也可以增加一些顯示接口和輸入設(shè)備,并且通過(guò)運(yùn)行在OS上的應(yīng)用任務(wù)來(lái)訪問(wèn)這些輸入和輸出接口。
在嵌入式應(yīng)用程序中,OS一般用來(lái)管理多任務(wù)。在這種情況下,OS將處理器時(shí)間劃分多個(gè)時(shí)間片,并且在每個(gè)時(shí)間片上執(zhí)行不同的任務(wù)。當(dāng)一個(gè)時(shí)間片結(jié)束時(shí),OS任務(wù)調(diào)度器開(kāi)始執(zhí)行,這樣在下一個(gè)時(shí)間片開(kāi)始的時(shí)候,處理器已經(jīng)切換到其他任務(wù)執(zhí)行了。這種任務(wù)切換一般被稱作上下文切換。
每個(gè)時(shí)間片的長(zhǎng)度依賴于硬件以及操作系統(tǒng)的設(shè)計(jì),有些嵌入式操作系統(tǒng)每秒會(huì)進(jìn)行幾百次的任務(wù)切換。
有些嵌入式OS也為每個(gè)任務(wù)定義了優(yōu)先級(jí),這樣高優(yōu)先級(jí)的任務(wù)就能在低優(yōu)先級(jí)任務(wù)之前執(zhí)行。如果一個(gè)任務(wù)的優(yōu)先級(jí)比其他的都要高,在其到達(dá)空閑狀態(tài)前,OS可能會(huì)連續(xù)多個(gè)時(shí)間片都在執(zhí)行這個(gè)任務(wù)。應(yīng)該注意的是,OS的優(yōu)先級(jí)的定義與異常優(yōu)先級(jí)是完全獨(dú)立的(例如中斷的優(yōu)先級(jí))。任務(wù)的優(yōu)先級(jí)基于特定的OS,并且隨著OS的不同而有所區(qū)別。
除了支持多任務(wù)以外,嵌入式OS也提供了其他各種功能,包括資源管理、內(nèi)存管理、電源管理,以及應(yīng)用程序編程接口(API)用以訪問(wèn)外設(shè)、硬件和信道。
使用嵌入式OS并不總是有好處的,因?yàn)樗枰~外的程序空間來(lái)存放OS內(nèi)核,而且會(huì)增加執(zhí)行周期的開(kāi)銷。多數(shù)簡(jiǎn)單應(yīng)用并不需要嵌入式OS,不過(guò),有些復(fù)雜的嵌入式應(yīng)用需要并行執(zhí)行任務(wù),這時(shí)使用OS會(huì)使軟件開(kāi)發(fā)更加容易,并且降低出現(xiàn)錯(cuò)誤的概率。
目前,可以應(yīng)用在M0上的嵌入式OS有很多,例如,Keil 微控制器開(kāi)發(fā)套件提供的免費(fèi)且易于使用的RTX kernel,另外還有Micrium的uc/OS-II和uc/OS-III等都支持M0處理器。并且這個(gè)支持的操作系統(tǒng)在不斷的增加中。
由于很多微控制器是不具備存儲(chǔ)器管理單元(MMU),比如我們上面時(shí)候的M0核的處理器,所以它不能運(yùn)行需要虛擬地址的嵌入式OS,比如Windows CE或Symbian OS。平常使用的Linux OS也需要MMU,它也不能再M(fèi)0上工作。而uCLinux是Linux的特殊版,并且面向的是沒(méi)有MMU的嵌入式設(shè)備,所以要在微控制器上加入OS也要先看能不能支持,并且支持哪些,再結(jié)合自己的項(xiàng)目實(shí)際選取。
責(zé)任編輯:haq
-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45495瀏覽量
670313 -
控制器
+關(guān)注
關(guān)注
114文章
17790瀏覽量
193121 -
嵌入式
+關(guān)注
關(guān)注
5198文章
20446瀏覽量
334011
原文標(biāo)題:?jiǎn)纹瑱C(jī)支持操作系統(tǒng)的特性
文章出處:【微信號(hào):gh_e7f294a514ca,微信公眾號(hào):?jiǎn)纹瑱C(jī)匠人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
操作系統(tǒng)體系結(jié)構(gòu)
操作系統(tǒng)運(yùn)行機(jī)制
龍蜥操作系統(tǒng)裝機(jī)量突破1000萬(wàn)
EV10AS180A模數(shù)轉(zhuǎn)換器支持哪些操作系統(tǒng)
智能顯示模塊支持掉電保存數(shù)據(jù)嗎?智能模塊支持操作Flash嗎?
單片機(jī)的操作系統(tǒng)
嵌入式實(shí)時(shí)操作系統(tǒng)的特點(diǎn)
Jtti Linux操作系統(tǒng)最常見(jiàn)的10大優(yōu)勢(shì)
如何選擇合適的實(shí)時(shí)操作系統(tǒng)
樹(shù)莓派操作系統(tǒng):版本、特性及設(shè)置完整指南!
支持操作系統(tǒng)的特性概述
評(píng)論