FreeRTOS系列第1篇---为什么选择FreeRTOS?
1.為什么學習RTOS?
???????? 作為基于ARM7、Cortex-M3硬件開發的嵌入式工程師,我一直反對使用RTOS。不僅因為不恰當的使用RTOS會給項目帶來額外的穩定性風險,更重要的是我認為絕大多數基于ARM7、Cortex-M3硬件的項目,還沒復雜到使用RTOS的地步,使用狀態機就足夠了。
???????? 對于現代的微處理器,特別是資源相對豐富ARM7、Cortex-M3硬件來說,RTOS占用的硬件資源已經越來越可以忽略。所以在當今環境下,我們無需擔心RTOS會拖累性能。相反,RTOS提供的事件驅動型設計方式,使得RTOS只是在處理實際任務時才會運行,這能夠更合理的利用CPU。在實際項目中,如果程序等待一個超時事件,傳統的無RTOS情況下,要么在原地一直等待而不能執行其它任務,要么使用復雜(相對RTOS提供的任務機制而言)的狀態機機制。如果使用RTOS,則可以很方便的將當前任務阻塞在該事件下,然后自動去執行別的任務,這顯然更方便,并且可以高效的利用CPU。處理這類事件,是我使用RTOS的最大動力,但考慮到系統的穩定性,我不得不再三權衡RTOS可能帶來的一些弊端:
???????? 以上原因是我拒絕在實際項目中使用RTOS的理由,但是否使用RTOS跟是否學習RTOS完全是兩碼事。我認為任何嵌入式軟件設計人員都應該至少學習一種RTOS,不僅是需要掌握RTOS背后的操作系統原理、學習RTOS的編程方式,更是為將來做準備。
???????? 即便我認為現在的物聯網有點言過其實,但我依然看好物聯網的發展前景。隨著物聯網的發展,未來的嵌入式產品必然更為復雜、連接性更強以及需要更豐富的用戶界面。當處理這些任務時,一個好的RTOS就變得不可缺少了。
???????? 書到用時方恨少,我希望自己永遠不會有這種感覺。所以從現在起,我要開始深入一個RTOS,探索它背后的原理,掌握其編程方法,避免其缺陷和陷阱,并將它安全的用在將來的項目中。
2.為什么選用FreeRTOS?
???????? 對比了許多RTOS,最終選擇FreeRTOS,原因是多方面的:
???????? 學習的資料來源主要是FreeRTOS的官方網站(www.freertos.org)和源代碼。FreeRTOS的創始人RichardBarry編寫了大量的移植代碼和配套文檔,我只不過是沿著Richard Barry鋪好的路前進,所以,這沒什么困難的。
???????? 最后,感謝RichardBarry的付出,感謝Richard Barry的無私開源精神!
附錄1:2010~2014年EEtimes雜志嵌入式市場調查報告有關RTOS使用榜截圖
2010和2011年RTOS使用榜
2012和2013年RTOS使用榜
2013年和2014年RTOS使用榜
2014年和2015年RTOS使用榜
總結
以上是生活随笔為你收集整理的FreeRTOS系列第1篇---为什么选择FreeRTOS?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言中字符占用的存储单元,C语言知识点
- 下一篇: win7 找不到 计算机策略组,win7