FreeRTOS(教程非常详细)
概述:
? ? ? 之前寫了關于FreeRTOS的部分內容,為了方便閱讀,現在給匯總到一起了。全部學習完后,恭喜你對FreeRTOS有了更深的認知。
?第一章? FreeRTOS移植到STM32
?第二章 FreeRTOS創建任務
?第三章? FreeRTOS任務管理
第四章? FreeRTOS消息隊列
第五章? FreeRTOS信號量
第六章? FreeRTOS互斥量
第七章? FreeRTOS事件組
第八章? FreeRTOS任務通知
第九章? FreeRTOS軟件定時器
第十章? FreeRTOS內存管理
第十一章? FreeRTOS中斷管理
為什么要學習 RTOS
? ? ? 當我們進入嵌入式這個領域的時候,往往首先接觸的都是單片機編程,單片機編程又 首選 51 單片機來入門。這里面說的單片機編程通常都是指裸機編程,即不加入任何 RTOS (Real Time Operating System 實時操作系統)的程序。常用的 RTOS 有國外的FreeRTOS、 μC/OS、RTX 和國內的 FreeRTOS、Huawei LiteOS 和 AliOS-Things 等,其中尤以國外開源 且免費的 FreeRTOS 的市場占有率最高。
? ? ? 在裸機系統中,所有的程序基本都是自己寫的,所有的操作都是在一個無限的大循環 里面實現?,F實生活中的很多中小型的電子產品用的都是裸機系統,而且也能夠滿足需求。 但是為什么還要學習 RTOS 編程,偏偏還要整個操作系統進來。一是項目需要,隨著產品 要實現的功能越來越多,單純的裸機系統已經不能夠完美地解決問題,反而會使編程變得 更加復雜,如果想降低編程的難度,我們可以考慮引入 RTOS 實現多任務管理,這是使用 RTOS 的最大優勢。二是學習的需要,必須學習更高級的東西,實現更好的職業規劃,為 將來走向人生巔峰迎娶白富美做準備,而不是一味的在裸機編程上面死磕。作為一個合格 的嵌入式軟件工程師,學習是永遠不能停歇的事,時刻都得為將來準備。書到用時方恨少, 我希望機會來臨時你不要有這種感覺。
? ? ? 為了幫大家理清 RTOS 編程的套路,我們會在“裸機系統與多任務系統”章節簡單的 分析下這兩種編程方式的區別,這個區別我稱它為學習 RTOS 的命門,只要打通這個任督 二脈,以后的 RTOS 學習可以說是易如反掌。在講解這兩種編程方法的區別的時候,我們 主要講方法論,不會涉及到具體的代碼編程,主要還是通過偽代碼來講解。
如何學習 RTOS
? ? ? ?裸機編程和 RTOS 編程的風格有些不一樣,而且有很多人說 RTOS 的學習很難,這就 導致學習的人一聽到 RTOS 編程就在心理面忌憚三分,結果就是出師未捷身先死。
? ? ? 那么到底如何學習一個 RTOS?最簡單的就是在別人移植好的系統之上,看看 RTOS 里面的 API 使用說明,然后調用這些 API 實現自己想要的功能即可。完全,不用關心底層 的移植,這是最簡單快速的入門方法。這種方法各有利弊,如果是做產品,好處是可以快 速的實現功能,將產品推向市場,贏得先機,弊端是當程序出現問題的時候,因對這個 RTOS 不夠了解,會導致調試困難,焦頭爛額,一籌莫展。如果是學習,那么只會簡單的 調用 API,那是不可取的,我們應該深入的學習其中一款 RTOS。
? ? ? ?目前市場上現有的 RTOS,它們的內核實現方式都差不多,我們只需要深入學習其中 一款就行。萬變不離其宗,以后換到其它型號的 RTOS,使用起來,那自然是得心應手。 那如何深入的學習一款 RTOS?這里有一個最有效也是最難的方法,就是閱讀 RTOS 的源碼,深究內核和每個組件的實現方式,這個過程枯燥且痛苦。但為了能夠學到 RTOS 的精 華,你不入地獄誰入地獄?
? ? ? 市面上雖然有一些講解相關 RTOS 源碼的書,如果你基礎不夠,且先前沒有使用過該 款 RTOS,那么源碼看起來還是會非??菰?#xff0c;且并不能從全局掌握整個 RTOS 的構成和實現。
FreeRTOS 版權
? ? ? FreeRTOS 由美國的 Richard Barry 于 2003 年發布,Richard Barry 是 FreeRTOS 的擁有 者和維護者,在過去的十多年中 FreeRTOS 歷經了 9 個版本,與眾多半導體廠商合作密切, 累計開發者數百萬,是目前市場占有率最高的 RTOS。
? ? ? FreeRTOS 于 2018 年被亞馬遜收購,改名為 AWS FreeRTOS,版本號升級為 V10,且 開源協議也由原來的 GPLv2+修改為 MIT,與 GPLv2+相比,MIT 更加開放,你完全可以理 解為是為所欲為的免費。V9 以前的版本還是維持原樣,V10 版本相比于 V9 就是加入了一 些物聯網相關的組件,內核基本不變。亞馬遜收購 FreeRTOS 也是為了進軍眼下炒的火熱 的物聯網和人工智能。
FreeRTOS 收費問題
FreeRTOS
? ? ? FreeRTOS 是一款 “開源免費”的實時操作系統,遵循的是 GPLv2+的許可協議。這里說 到的開源,指的是你可以免費得獲取到 FreeRTOS 的源代碼,且當你的產品使用了 FreeRTOS 且沒有修改 FreeRTOS 內核源碼的時候,你的產品的全部代碼都可以閉源,不用開源,但是當 你修改了 FreeRTOS 內核源碼的時候,就必須將修改的這部分開源,反饋給社區,其它應用部 分不用開源。免費的意思是無論你是個人還是公司,都可以免費地使用,不需要掏一分錢。
OpenRTOS
FreeRTOS 和 OpenRTOS 擁有的代碼是一樣的,但是可從官方獲取到的服務卻是不一 樣的。FreeRTOS 號稱免費,OpenRTOS 號稱收費,它們的具體區別見表
?
SaveRTOS
? ? ? SaveRTOS 也是基于 FreeRTOS,但是 SaveRTOS 為某些特定的領域做了安全相關的設 計,有關 SaveRTOS 獲得的安全驗證具體見表格 。當然,SaveRTOS 也是需要收費,人 家這些安全驗證可不是白做的。
?
?首先自己先移植FreeRTOS到STM32中自己感受一下多任務操作系統和裸機開發有什么區別,教程前面已經有了,還有就是深度學習一下C語言的鏈表,以及隊列,指針結構體等,這樣讓我們后面的學習變得很輕松。
C語言鏈表詳解
總結
以上是生活随笔為你收集整理的FreeRTOS(教程非常详细)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql服务启动失败
- 下一篇: python decimal模块_实例详