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