說(shuō)一說(shuō)RTOS
RTOS 即Real-time operating system,實(shí)時(shí)操作系統,這種操作系統比分時(shí)操作系統實(shí)時(shí)性強,線(xiàn)程切換速度快,線(xiàn)程切換時(shí)間可控,為了保證實(shí)時(shí)性,實(shí)時(shí)操作系統一般都是搶占型內核,允許高優(yōu)先級的線(xiàn)程搶占CPU,優(yōu)先級低的排隊執行。普通的單片機程序只有一個(gè)while循環(huán),功能比較多的時(shí)候這個(gè)循環(huán)代碼很復雜,閱讀性差,不好維護。而RTOS可以創(chuàng )建線(xiàn)程,每個(gè)線(xiàn)程有自己的while循環(huán),功能可以模塊化設計。
1、功能擴展性好,加個(gè)功能加個(gè)線(xiàn)程就好了,非常方便。
2、單片機利用率高,減少單片機空轉。
3、可以像電腦端一樣編程,電腦程序員方便地做單片機開(kāi)發(fā)。進(jìn)程間通訊,內存管理等隨便用。
4、代碼閱讀方便,各個(gè)線(xiàn)程很清晰。
5、部分RTOS自帶各種功能模塊,比如網(wǎng)絡(luò ),文件系統,UI等模塊。選擇使用操作系統基本上都是因為這個(gè)優(yōu)點(diǎn)。
使用RTOS的缺點(diǎn):
1、實(shí)時(shí)性變差,有人說(shuō)RTOS不就是實(shí)時(shí)操作系統嘛,怎么會(huì )變差呢,有了操作系統單片機肯定要花費不少時(shí)間在操作系統上,比如線(xiàn)程切換是需要時(shí)間的等等。實(shí)時(shí)操作系統是相對非實(shí)時(shí)操作系統來(lái)說(shuō)的。沒(méi)有操作系統的那個(gè)while才是最實(shí)時(shí)的。
2、內存開(kāi)銷(xiāo)大,包括RAM和Flash,增加了操作系統代碼量就增多了,占用更多的Flash空間,每個(gè)任務(wù)棧占用了很多RAM,每個(gè)??隙ǘ加行└挥嗟?,也就是有不少的??臻g是空閑的,占用了寶貴的RAM空間。
3、出現BUG時(shí)不好調試,雖然大部分單片機都有在線(xiàn)仿真功能。因為每個(gè)線(xiàn)程都有自己的線(xiàn)程棧,查找起來(lái)麻煩一些。
4、操作系統為了安全運行,必須開(kāi)關(guān)全局中斷,在操作系統里面有大量的開(kāi)關(guān)全局中斷操作。全局中斷只要關(guān)閉就會(huì )對實(shí)時(shí)性有一定的影響。比如恰好關(guān)閉中斷時(shí)事件到來(lái),這時(shí)候是不能響應的。
5、移植操作系統需要一些匯編知識,稍有些難度,好在官方都有實(shí)際例子可以借鑒。
記得09年的時(shí)候在51單片機上跑RTOS,51單片機主頻低,能跑是能跑,占用比較多資源,沒(méi)有多少空間給功能開(kāi)發(fā),也就學(xué)學(xué)玩玩,實(shí)際應用不現實(shí)。如果要使用RTOS還是在主頻高一些,存儲資源豐富的ARM上跑比較合適,比如STM32。
評論