當(dāng)前位置:首頁 > 公眾號精選 > 技術(shù)讓夢想更偉大
[導(dǎo)讀]1.為什么學(xué)習(xí) RTOS? 作為基于 ARM7、Cortex-M3 硬件開發(fā)的嵌入式工程師,我一直反對使用 RTOS。不僅因?yàn)椴磺‘?dāng)?shù)氖褂?RTOS 會給項(xiàng)目帶來額外的穩(wěn)定性風(fēng)險(xiǎn),更重要的是我認(rèn)為絕大多數(shù)基于 ARM7、Cortex-M3 硬件的項(xiàng)目,還沒復(fù)雜到使用 RTOS 的地步,使用狀態(tài)

1.為什么學(xué)習(xí) RTOS?

作為基于 ARM7、Cortex-M3 硬件開發(fā)的嵌入式工程師,我一直反對使用 RTOS。不僅因?yàn)椴磺‘?dāng)?shù)氖褂?RTOS 會給項(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 會拖累性能。相反,RTOS 提供的事件驅(qū)動型設(shè)計(jì)方式,使得 RTOS 只是在處理實(shí)際任務(wù)時(shí)才會運(yùn)行,這能夠更合理的利用 CPU。在實(shí)際項(xiàng)目中,如果程序等待一個超時(shí)事件,傳統(tǒng)的無 RTOS 情況下,要么在原地一直等待而不能執(zhí)行其它任務(wù),要么使用復(fù)雜(相對 RTOS 提供的任務(wù)機(jī)制而言)的狀態(tài)機(jī)機(jī)制。如果使用 RTOS,則可以很方便的將當(dāng)前任務(wù)阻塞在該事件下,然后自動去執(zhí)行別的任務(wù),這顯然更方便,并且可以高效的利用 CPU。處理這類事件,是我使用 RTOS 的最大動力,但考慮到系統(tǒng)的穩(wěn)定性,我不得不再三權(quán)衡 RTOS 可能帶來的一些弊端:

  1. 大多數(shù) RTOS 代碼都具有一定規(guī)模,任何代碼都可能帶來 BUG,何況是代碼具有一定規(guī)模的 RTOS,因此引入 RTOS 的同時(shí)也可能會引入該 RTOS 的 BUG,這些 RTOS 本身的 BUG 一旦被觸發(fā),影響可能是是災(zāi)難性的。
  2. 熟練的使用 RTOS 是一項(xiàng)技能,需要專業(yè)的知識儲備和長期的經(jīng)驗(yàn)積累。不將 RTOS 分析透徹,很容易為項(xiàng)目埋下錯誤。典型的,像中斷優(yōu)先級、任務(wù)堆棧分配、可重入等,都是更容易出錯的地方。
  3. RTOS 的優(yōu)先級嵌套使得任務(wù)執(zhí)行順序、執(zhí)行時(shí)序更難分析,甚至變成不可能。任務(wù)嵌套對所需的最大堆棧 RAM 大小估計(jì)也變得困難。這對于很多對安全有嚴(yán)格要求的場合是不可想象的。
  4. RTOS 應(yīng)該用于任務(wù)復(fù)雜的場合,以至于對任務(wù)調(diào)度的需求可以抵消 RTOS 所帶來的穩(wěn)定性影響,但大部分的應(yīng)用并非復(fù)雜到需要 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í),一個好的 RTOS 就變得不可缺少了。

書到用時(shí)方恨少,我希望自己永遠(yuǎn)不會有這種感覺。所以從現(xiàn)在起,我要開始深入一個 RTOS,探索它背后的原理,掌握其編程方法,避免其缺陷和陷阱,并將它安全的用在將來的項(xiàng)目中。

2.為什么選用 FreeRTOS?

對比了許多 RTOS,最終選擇 FreeRTOS,原因是多方面的:

  1. SafeRTOS 便是基于 FreeRTOS 而來,前者是經(jīng)過安全認(rèn)證的 RTOS,因此對于 FreeRTOS 的安全性也有了信心。
  2. 大量開發(fā)者使用,并保持高速增長趨勢。2011、2012、2013、2014、2015、2017 年(暫時(shí)沒有 2016 年的數(shù)據(jù))的 EEtimes 雜志嵌入式系統(tǒng)市場報(bào)告顯示,F(xiàn)reeRTOS 在 RTOS 內(nèi)核使用榜和 RTOS 內(nèi)核計(jì)劃使用榜上都名列前茅。更多的人使用可以促進(jìn)發(fā)現(xiàn) BUG,增強(qiáng)穩(wěn)定性。
  3. 簡單。內(nèi)核只有 3 個.c 文件,全部圍繞著任務(wù)調(diào)度,沒有任何其它干擾,便于理解學(xué)習(xí)。而且,我根本不需要其它繁多的功能,只要任務(wù)調(diào)度就夠了。
  4. 文檔齊全。在 FreeRTOS 官方網(wǎng)站上,可以找到所有你需要的資料。
  5. 免費(fèi)、開放源碼。完全可以免費(fèi)用于商業(yè)產(chǎn)品,開放源碼更便于學(xué)習(xí)操作系統(tǒng)原理、從全局掌握 FreeRTOS 運(yùn)行機(jī)理、以及對操作系統(tǒng)進(jìn)行深度裁剪以適應(yīng)自己的硬件。
  6. 2017 年底,F(xiàn)reeRTOS 作者加入亞馬遜,擔(dān)任首席工程師,F(xiàn)reeRTOS 也由亞馬遜管理。同時(shí)修改了用戶許可證,F(xiàn)reeRTOS 變得更加開放和自由。背靠亞馬遜,相信未來 FreeRTOS 會更加穩(wěn)定可靠。此外,以前價(jià)格不菲的《實(shí)時(shí)內(nèi)核指南》和《參考手冊》也免費(fèi)開放下載,這使得學(xué)習(xí)更加容易。

學(xué)習(xí)的資料來源主要是 FreeRTOS 的官方網(wǎng)站(www.freertos.org)和源代碼。FreeRTOS 的創(chuàng)始人 RichardBarry 編寫了大量的移植代碼和配套文檔,我只不過是沿著 Richard Barry 鋪好的路前進(jìn),所以,這沒什么困難的。

最后,感謝 RichardBarry 的付出,感謝 Richard Barry 的無私開源精神!

附錄 1:

2010~2017 年 EEtimes 雜志嵌入式市場調(diào)查報(bào)告有關(guān) RTOS 使用榜截圖

  • 附錄 1.1  2010 和 2011 年 RTOS 使用榜
  • 附錄 1.2  2012 和 2013 年 RTOS 使用榜
  • 附錄 1.3   2013 年和 2014 年 RTOS 使用榜
  • 附錄 1.4   2014 年和 2015 年 RTOS 使用榜
  • 附錄 1.5   2017 年 RTOS 使用榜

本文已獲取「CSDN」作者獨(dú)家授權(quán),請勿二次轉(zhuǎn)載,請獲取作者授權(quán)。

聲明:本公眾號授權(quán)轉(zhuǎn)載本文僅傳播相關(guān)知識,無任何盈利和商業(yè)行為,部分內(nèi)容有刪改。

原文地址:https://blog.csdn.net/zhzht19861011/article/details/49819109

作者:zhzht19861011

   

推薦閱讀

(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)

【編程之美】用C語言實(shí)現(xiàn)狀態(tài)機(jī)(實(shí)用)

【編程之美】超時(shí)重傳,滑動窗口,可靠性傳輸原理C語言實(shí)現(xiàn)

【編程之美】論嵌入式架構(gòu)的重要性

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉