日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

FreeRTOS(教程非常详细)

發(fā)布時(shí)間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeRTOS(教程非常详细) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述:

? ? ? 之前寫了關(guān)于FreeRTOS的部分內(nèi)容,為了方便閱讀,現(xiàn)在給匯總到一起了。全部學(xué)習(xí)完后,恭喜你對(duì)FreeRTOS有了更深的認(rèn)知。

?第一章? FreeRTOS移植到STM32

?第二章 FreeRTOS創(chuàng)建任務(wù)

?第三章? FreeRTOS任務(wù)管理

第四章? FreeRTOS消息隊(duì)列

第五章? FreeRTOS信號(hào)量

第六章? FreeRTOS互斥量

第七章? FreeRTOS事件組

第八章? FreeRTOS任務(wù)通知

第九章? FreeRTOS軟件定時(shí)器

第十章? FreeRTOS內(nèi)存管理

第十一章? FreeRTOS中斷管理

為什么要學(xué)習(xí) RTOS

? ? ? 當(dāng)我們進(jìn)入嵌入式這個(gè)領(lǐng)域的時(shí)候,往往首先接觸的都是單片機(jī)編程,單片機(jī)編程又 首選 51 單片機(jī)來(lái)入門。這里面說(shuō)的單片機(jī)編程通常都是指裸機(jī)編程,即不加入任何 RTOS (Real Time Operating System 實(shí)時(shí)操作系統(tǒng))的程序。常用的 RTOS 有國(guó)外的FreeRTOS、 μC/OS、RTX 和國(guó)內(nèi)的 FreeRTOS、Huawei LiteOS 和 AliOS-Things 等,其中尤以國(guó)外開源 且免費(fèi)的 FreeRTOS 的市場(chǎng)占有率最高。

? ? ? 在裸機(jī)系統(tǒng)中,所有的程序基本都是自己寫的,所有的操作都是在一個(gè)無(wú)限的大循環(huán) 里面實(shí)現(xiàn)。現(xiàn)實(shí)生活中的很多中小型的電子產(chǎn)品用的都是裸機(jī)系統(tǒng),而且也能夠滿足需求。 但是為什么還要學(xué)習(xí) RTOS 編程,偏偏還要整個(gè)操作系統(tǒng)進(jìn)來(lái)。一是項(xiàng)目需要,隨著產(chǎn)品 要實(shí)現(xiàn)的功能越來(lái)越多,單純的裸機(jī)系統(tǒng)已經(jīng)不能夠完美地解決問(wèn)題,反而會(huì)使編程變得 更加復(fù)雜,如果想降低編程的難度,我們可以考慮引入 RTOS 實(shí)現(xiàn)多任務(wù)管理,這是使用 RTOS 的最大優(yōu)勢(shì)。二是學(xué)習(xí)的需要,必須學(xué)習(xí)更高級(jí)的東西,實(shí)現(xiàn)更好的職業(yè)規(guī)劃,為 將來(lái)走向人生巔峰迎娶白富美做準(zhǔn)備,而不是一味的在裸機(jī)編程上面死磕。作為一個(gè)合格 的嵌入式軟件工程師,學(xué)習(xí)是永遠(yuǎn)不能停歇的事,時(shí)刻都得為將來(lái)準(zhǔn)備。書到用時(shí)方恨少, 我希望機(jī)會(huì)來(lái)臨時(shí)你不要有這種感覺(jué)。

? ? ? 為了幫大家理清 RTOS 編程的套路,我們會(huì)在“裸機(jī)系統(tǒng)與多任務(wù)系統(tǒng)”章節(jié)簡(jiǎn)單的 分析下這兩種編程方式的區(qū)別,這個(gè)區(qū)別我稱它為學(xué)習(xí) RTOS 的命門,只要打通這個(gè)任督 二脈,以后的 RTOS 學(xué)習(xí)可以說(shuō)是易如反掌。在講解這兩種編程方法的區(qū)別的時(shí)候,我們 主要講方法論,不會(huì)涉及到具體的代碼編程,主要還是通過(guò)偽代碼來(lái)講解。

如何學(xué)習(xí) RTOS

? ? ? ?裸機(jī)編程和 RTOS 編程的風(fēng)格有些不一樣,而且有很多人說(shuō) RTOS 的學(xué)習(xí)很難,這就 導(dǎo)致學(xué)習(xí)的人一聽到 RTOS 編程就在心理面忌憚三分,結(jié)果就是出師未捷身先死。

? ? ? 那么到底如何學(xué)習(xí)一個(gè) RTOS?最簡(jiǎn)單的就是在別人移植好的系統(tǒng)之上,看看 RTOS 里面的 API 使用說(shuō)明,然后調(diào)用這些 API 實(shí)現(xiàn)自己想要的功能即可。完全,不用關(guān)心底層 的移植,這是最簡(jiǎn)單快速的入門方法。這種方法各有利弊,如果是做產(chǎn)品,好處是可以快 速的實(shí)現(xiàn)功能,將產(chǎn)品推向市場(chǎng),贏得先機(jī),弊端是當(dāng)程序出現(xiàn)問(wèn)題的時(shí)候,因?qū)@個(gè) RTOS 不夠了解,會(huì)導(dǎo)致調(diào)試?yán)щy,焦頭爛額,一籌莫展。如果是學(xué)習(xí),那么只會(huì)簡(jiǎn)單的 調(diào)用 API,那是不可取的,我們應(yīng)該深入的學(xué)習(xí)其中一款 RTOS。

? ? ? ?目前市場(chǎng)上現(xiàn)有的 RTOS,它們的內(nèi)核實(shí)現(xiàn)方式都差不多,我們只需要深入學(xué)習(xí)其中 一款就行。萬(wàn)變不離其宗,以后換到其它型號(hào)的 RTOS,使用起來(lái),那自然是得心應(yīng)手。 那如何深入的學(xué)習(xí)一款 RTOS?這里有一個(gè)最有效也是最難的方法,就是閱讀 RTOS 的源碼,深究?jī)?nèi)核和每個(gè)組件的實(shí)現(xiàn)方式,這個(gè)過(guò)程枯燥且痛苦。但為了能夠?qū)W到 RTOS 的精 華,你不入地獄誰(shuí)入地獄?

? ? ? 市面上雖然有一些講解相關(guān) RTOS 源碼的書,如果你基礎(chǔ)不夠,且先前沒(méi)有使用過(guò)該 款 RTOS,那么源碼看起來(lái)還是會(huì)非常枯燥,且并不能從全局掌握整個(gè) RTOS 的構(gòu)成和實(shí)現(xiàn)。

FreeRTOS 版權(quán)

? ? ? FreeRTOS 由美國(guó)的 Richard Barry 于 2003 年發(fā)布,Richard Barry 是 FreeRTOS 的擁有 者和維護(hù)者,在過(guò)去的十多年中 FreeRTOS 歷經(jīng)了 9 個(gè)版本,與眾多半導(dǎo)體廠商合作密切, 累計(jì)開發(fā)者數(shù)百萬(wàn),是目前市場(chǎng)占有率最高的 RTOS。

? ? ? FreeRTOS 于 2018 年被亞馬遜收購(gòu),改名為 AWS FreeRTOS,版本號(hào)升級(jí)為 V10,且 開源協(xié)議也由原來(lái)的 GPLv2+修改為 MIT,與 GPLv2+相比,MIT 更加開放,你完全可以理 解為是為所欲為的免費(fèi)。V9 以前的版本還是維持原樣,V10 版本相比于 V9 就是加入了一 些物聯(lián)網(wǎng)相關(guān)的組件,內(nèi)核基本不變。亞馬遜收購(gòu) FreeRTOS 也是為了進(jìn)軍眼下炒的火熱 的物聯(lián)網(wǎng)和人工智能。

FreeRTOS 收費(fèi)問(wèn)題

FreeRTOS

? ? ? FreeRTOS 是一款 “開源免費(fèi)”的實(shí)時(shí)操作系統(tǒng),遵循的是 GPLv2+的許可協(xié)議。這里說(shuō) 到的開源,指的是你可以免費(fèi)得獲取到 FreeRTOS 的源代碼,且當(dāng)你的產(chǎn)品使用了 FreeRTOS 且沒(méi)有修改 FreeRTOS 內(nèi)核源碼的時(shí)候,你的產(chǎn)品的全部代碼都可以閉源,不用開源,但是當(dāng) 你修改了 FreeRTOS 內(nèi)核源碼的時(shí)候,就必須將修改的這部分開源,反饋給社區(qū),其它應(yīng)用部 分不用開源。免費(fèi)的意思是無(wú)論你是個(gè)人還是公司,都可以免費(fèi)地使用,不需要掏一分錢。

OpenRTOS

FreeRTOS 和 OpenRTOS 擁有的代碼是一樣的,但是可從官方獲取到的服務(wù)卻是不一 樣的。FreeRTOS 號(hào)稱免費(fèi),OpenRTOS 號(hào)稱收費(fèi),它們的具體區(qū)別見表

?

SaveRTOS

? ? ? SaveRTOS 也是基于 FreeRTOS,但是 SaveRTOS 為某些特定的領(lǐng)域做了安全相關(guān)的設(shè) 計(jì),有關(guān) SaveRTOS 獲得的安全驗(yàn)證具體見表格 。當(dāng)然,SaveRTOS 也是需要收費(fèi),人 家這些安全驗(yàn)證可不是白做的。

?

?首先自己先移植FreeRTOS到STM32中自己感受一下多任務(wù)操作系統(tǒng)和裸機(jī)開發(fā)有什么區(qū)別,教程前面已經(jīng)有了,還有就是深度學(xué)習(xí)一下C語(yǔ)言的鏈表,以及隊(duì)列,指針結(jié)構(gòu)體等,這樣讓我們后面的學(xué)習(xí)變得很輕松。

C語(yǔ)言鏈表詳解

總結(jié)

以上是生活随笔為你收集整理的FreeRTOS(教程非常详细)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。