




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第第頁詳解FreeRTOS編程方法在目前的(RTOS)中,主要有兩種比較流行的(編程)方法,接下來我將通過偽代碼的方式來講解下這兩種編程方式。
1main函數(shù)中初始化(硬件)和RTOS,創(chuàng)建所有任務
這種方法是在main函數(shù)中將硬件初始化,RTOS系統(tǒng)初始化,所有任務都創(chuàng)建好,最后啟動RTOS的調(diào)度器,開始多任務的調(diào)度。
偽代碼如下所示:
程序說明如下:
(1)、硬件初始化。硬件初始化這一步還屬于裸機的范疇,我們可以把需要使用到的硬件都初始化好而且測試好,確保無誤。
(2)、RTOS系統(tǒng)初始化。比如RTOS里面的全局變量的初始化,空閑任務的創(chuàng)建等。不同的RTOS,它們的初始化有細微的差別。
(3)、創(chuàng)建各種任務。這里把所有要用到的任務都創(chuàng)建好,但還不會進入調(diào)度,因為這個時候RTOS的調(diào)度器還沒有開啟。
(4)、啟動RTOS調(diào)度器,開始任務調(diào)度。這個時候調(diào)度器就從剛剛創(chuàng)建好的任務中選擇一個優(yōu)先級最高的任務開始運行。
(5)(6)、任務實體通常是一個不帶返回值的無限循環(huán)的C函數(shù),函數(shù)體必須有阻塞的情況出現(xiàn),不然任務(如果優(yōu)先權(quán)恰好是最高)會一直在while循環(huán)里面執(zhí)行,導致其它任務沒有執(zhí)行的機會。
2main函數(shù)中初始化硬件和RTOS,創(chuàng)建啟動任務
這種方法是在main函數(shù)中將硬件和RTOS系統(tǒng)先初始化好,然后創(chuàng)建一個啟動任務后就啟動任務調(diào)度器,然后在啟動任務里面創(chuàng)建各種應用任務,當所有任務都創(chuàng)建成功后,啟動任務把自己刪除。
偽代碼如下所示:
程序說明如下:
(1)、硬件初始化。來到硬件初始化這一步還屬于裸機的范疇,我們可以把需要使用到的硬件都初始化好而且測試好,確保無誤。
(2)、RTOS系統(tǒng)初始化。比如RTOS里面的全局變量的初始化,空閑任務的創(chuàng)建等。不同的RTOS,它們的初始化有細微的差別。
(3)、創(chuàng)建一個開始任務。然后在這個初始任務里面創(chuàng)建各種應用任務。
(4)、啟動RTOS調(diào)度器,開始任務調(diào)度。這個時候調(diào)度器就去執(zhí)行剛剛創(chuàng)建好的初始任務。
(5)、我們通常說任務是一個不帶返回值的無限循環(huán)的C函數(shù),但是因為初始任務的特殊性,它不能是無限循環(huán)的,只執(zhí)行一次后就關(guān)閉。在初始任務里面我們創(chuàng)建我們需要的各種任務。
(6)、創(chuàng)建任務。每創(chuàng)建一個任務后它都將進入就緒態(tài),系統(tǒng)會進行一次調(diào)度,如果新創(chuàng)建的任務的優(yōu)先級比初始任務的優(yōu)先級高的話,那將去執(zhí)行新創(chuàng)建的任務,當新的任務阻塞時再回到初始任務被打斷的地方繼續(xù)執(zhí)行。反之,則繼續(xù)往下創(chuàng)建新的任務,直到所有任務創(chuàng)建完成。
(7)、各種應用任務創(chuàng)建完成后,初始任務自己關(guān)閉自己,使命完成。
(8)(9)、任務實體通常是一個不帶返回值的無限循環(huán)的C函數(shù),函數(shù)體必須有阻塞的情況出現(xiàn),不然任務(如果優(yōu)先權(quán)恰好是最高)會一直在while循環(huán)里面執(zhí)行,其它任務沒有執(zhí)行的機會。
那有關(guān)這兩種方法孰優(yōu)孰劣?我暫時沒發(fā)現(xiàn)。(LiteOS)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 便宜門店轉(zhuǎn)讓合同范本
- 促銷返利合同范本
- 個體醫(yī)療機構(gòu)年度工作總結(jié)報告
- 個人工作自我鑒定簡短
- 勞務公司派遣員工合同范本
- 單位對外投資合同范本
- 三八節(jié)教師演講稿
- 工業(yè)鍋爐司爐??荚囶}及答案
- 高壓電工(運行)習題+參考答案
- 供貨款合同范本
- 農(nóng)業(yè)機械設(shè)備維護與質(zhì)量保障措施
- 基于圖像處理的CAD圖紙比對算法
- 2025年大模型應用落地白皮書:企業(yè)AI轉(zhuǎn)型行動指南
- 2025年中國文玩電商行業(yè)發(fā)展現(xiàn)狀調(diào)查、競爭格局分析及未來前景預測報告
- 2025年臨床醫(yī)師定期考核必考復習題庫及答案(900題)
- JTG5120-2021公路橋涵養(yǎng)護規(guī)范
- 巨量千川(中級)營銷師認證考試題(附答案)
- 寒假日常生活勞動清單及評價表
- 幼兒心理健康教育注意缺陷與多動障礙
- 竣工結(jié)算審核重難點分析及建議
- 【MOOC】營養(yǎng)學-武漢大學 中國大學慕課MOOC答案
評論
0/150
提交評論