1、支持操作系統的特性概述:
就拿M0核的單片機來說,就有一部分特性是針對嵌入式操作系統的(OS),包括:
l SysTick定時器,24位向下計數,且周期產生SysTick異常。
l 棧指針,即進程棧指針,兩個棧指針的結構可以使得應用棧和OS內核棧相互獨立。
l SVC異常和SVC指令,通過異常機制,應用程序可以使用SVC訪問OS服務。
l PendSV異常,其可以被OS、設備驅動或者應用程序使用來產生可延遲的服務請求。
2、為什么要使用嵌入式操作系統?
當提到操作系統的時候,大多數人首先會想到Windows和Linux之類的桌面操作系統。這些操作系統要想運行起來,需要強大的處理器、大量的存儲器以及其他硬件,而對于嵌入式設備,各種OS的差別很大。嵌入式操作系統可以運行在低功耗的微控制器上,它們需要很少的存儲器(相對于桌面系統),并且運行的時鐘頻率要低很多,比如Keil RTX只需要4KB的程序空間以及大約0.5KB的SRAM,一般情況下,這些操作系統設置不需要顯示或者鍵盤。當然也可以增加一些顯示接口和輸入設備,并且通過運行在OS上的應用任務來訪問這些輸入和輸出接口。
在嵌入式應用程序中,OS一般用來管理多任務。在這種情況下,OS將處理器時間劃分多個時間片,并且在每個時間片上執行不同的任務。當一個時間片結束時,OS任務調度器開始執行,這樣在下一個時間片開始的時候,處理器已經切換到其他任務執行了。這種任務切換一般被稱作上下文切換。
每個時間片的長度依賴于硬件以及操作系統的設計,有些嵌入式操作系統每秒會進行幾百次的任務切換。
有些嵌入式OS也為每個任務定義了優先級,這樣高優先級的任務就能在低優先級任務之前執行。如果一個任務的優先級比其他的都要高,在其到達空閑狀態前,OS可能會連續多個時間片都在執行這個任務。應該注意的是,OS的優先級的定義與異常優先級是完全獨立的(例如中斷的優先級)。任務的優先級基于特定的OS,并且隨著OS的不同而有所區別。
除了支持多任務以外,嵌入式OS也提供了其他各種功能,包括資源管理、內存管理、電源管理,以及應用程序編程接口(API)用以訪問外設、硬件和信道。
使用嵌入式OS并不總是有好處的,因為它需要額外的程序空間來存放OS內核,而且會增加執行周期的開銷。多數簡單應用并不需要嵌入式OS,不過,有些復雜的嵌入式應用需要并行執行任務,這時使用OS會使軟件開發更加容易,并且降低出現錯誤的概率。
目前,可以應用在M0上的嵌入式OS有很多,例如,Keil 微控制器開發套件提供的免費且易于使用的RTX kernel,另外還有Micrium的uc/OS-II和uc/OS-III等都支持M0處理器。并且這個支持的操作系統在不斷的增加中。
由于很多微控制器是不具備存儲器管理單元(MMU),比如我們上面時候的M0核的處理器,所以它不能運行需要虛擬地址的嵌入式OS,比如Windows CE或Symbian OS。平常使用的Linux OS也需要MMU,它也不能再M0上工作。而uCLinux是Linux的特殊版,并且面向的是沒有MMU的嵌入式設備,所以要在微控制器上加入OS也要先看能不能支持,并且支持哪些,再結合自己的項目實際選取。
編輯:jq
-
微控制器
+關注
關注
48文章
7649瀏覽量
152107 -
單片機
+關注
關注
6043文章
44622瀏覽量
638534 -
MMU
+關注
關注
0文章
91瀏覽量
18366 -
嵌入式OS
+關注
關注
4文章
5瀏覽量
7144
原文標題:單片機支持操作系統的特性
文章出處:【微信號:gh_e7f294a514ca,微信公眾號:單片機匠人】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論