為什么你應該考慮RTOS?對大多數(shù)人來說,這可以歸結為知道“你最擅長什么”。如果你總是用裸機編程,那么總是用那種方式編程就成了慣例。如果你從未使用過RTOS,你可能不會意識到RTOS可以給嵌入式開發(fā)項目帶來的好處。雖然它們更加強大和復雜,但是使用RTOS并不一定是更耗時的開發(fā)路線。
當使用功能有限的小型系統(tǒng)時,在裸機上使用超級循環(huán)架構來調(diào)度任務可能是一個非常合適的解決方案,但是當對調(diào)度有更高的要求,并且執(zhí)行時間變得更加復雜時,可能是時候考慮RTOS了。
更大的靈活性
超級循環(huán)體系結構的一個關鍵問題是定時和響應時間,因為它們是由代碼結構決定的,如果進行修改或添加,它們會發(fā)生變化。相比之下,RTOS通常能夠?qū)崿F(xiàn)更大的調(diào)度靈活性。基于優(yōu)先級的搶先式RTOS允許根據(jù)任務的實時要求對任務進行優(yōu)先級排序。具有嚴格時間約束的任務能夠優(yōu)先于那些具有更大調(diào)度靈活性的任務,從而提高應用程序?qū)r間關鍵事件的響應能力。雖然可以在裸機上實現(xiàn)某種形式的搶先調(diào)度,但它的范圍有限。
簡化集成
即使不要求實時響應,使用RTOS也可以簡化集成。如果你的應用程序?qū)硇枰蚩赡苄枰c文件系統(tǒng)、TCP/IP和GIU等組件進行交互,這些組件可以作為單獨的任務簡單地添加到系統(tǒng)中。裸機應用直接與處理器寄存器交互,而RTOS和/或硬件抽象層(HAL)位于裸機和應用之間。嵌入式開發(fā)人員與RTOS和Hal互動,而不是與裸機互動。因此,RTOS的模塊化設計使得使用所提供的RTOS資源與任務和驅(qū)動程序進行通信變得容易,從而縮短了開發(fā)時間。
更少的編碼,更多的代碼重用
RTOS提供的資源還支持簡單的任務創(chuàng)建、銷毀、同步以及任務和處理器資源之間的通信。所需要的只是對RTOSAPI的理解。這是一個一致的接口,一旦掌握,就可以在應用程序和處理器之間實現(xiàn)代碼重用和可移植性。RTOS還允許將應用程序分解成更小的自治任務,每個任務在其自己的上下文中執(zhí)行,這可以降低復雜性,并有助于調(diào)試和驗證。
為什么要學習FreeRTOS?
RTOS應該易于使用、編譯并受多種架構支持。FreeRTOS內(nèi)核是世界上最流行的嵌入式RTOS,擁有龐大的用戶群。FreeRTOS與處理器和編譯器無關,因此提供跨平臺支持,目前支持超過35種不同的架構供嵌入式開發(fā)人員使用。顧名思義,F(xiàn)reeRTOS內(nèi)核可以從FreeRTOS網(wǎng)站免費下載和使用,在M.I.T.許可下分發(fā)。