|嵌入式開發(fā):設(shè)計(jì)基于 RTOS 的應(yīng)用程序的最佳實(shí)踐

文章圖片

很多嵌入式開發(fā)人員努力正確地編寫使用 RTOS 的應(yīng)用程序 , 這些困難包括正確確定系統(tǒng)中有多少任務(wù)、如何設(shè)置優(yōu)先級(jí)、協(xié)調(diào)任務(wù)行為、避免常見的陷阱 , 有時(shí)只是讓應(yīng)用程序正常工作!如今 , 近三分之二的嵌入式系統(tǒng)都使用 RTOS , 而且隨著系統(tǒng)的時(shí)序要求變得更加復(fù)雜 , 這個(gè)數(shù)字只會(huì)隨著時(shí)間的推移而增加 。 在今天的文章中 , 我們將探討設(shè)計(jì)基于 RTOS 的應(yīng)用程序的五種最佳實(shí)踐 。
RTOS 最佳實(shí)踐 1 – 通過任務(wù)分解識(shí)別任務(wù)開發(fā)人員可以遵循以使其 RTOS 應(yīng)用程序開發(fā)成功的第一個(gè)最佳實(shí)踐是使用任務(wù)分解在他們的應(yīng)用程序中獲得正確數(shù)量的任務(wù) 。 有許多技術(shù)可用于分解任務(wù) , 但有一種適用于嵌入式開發(fā)人員的方法是使用由外向內(nèi)的方法 。 在這種方法中 , 開發(fā)人員遵循七個(gè)簡(jiǎn)單的步驟:
識(shí)別并列出主要的系統(tǒng)組件
繪制高級(jí)框圖
標(biāo)記系統(tǒng)輸入
標(biāo)記輸出
確定第一層任務(wù)
確定并發(fā)級(jí)別和依賴項(xiàng)
識(shí)別第二層任務(wù)(應(yīng)用程序任務(wù))
在對(duì)恒溫器等物聯(lián)網(wǎng)傳感器節(jié)點(diǎn)執(zhí)行此過程時(shí) , 最終可能會(huì)得到如下圖:
在這種情況下 , 系統(tǒng)通常有六個(gè)任務(wù) , 其中一個(gè)任務(wù)監(jiān)督應(yīng)用程序代碼 。 (根據(jù)系統(tǒng)復(fù)雜性 , 這個(gè)任務(wù)可以進(jìn)一步分解) 。
RTOS 最佳實(shí)踐 2 – 選擇正確的調(diào)度算法來分配任務(wù)優(yōu)先級(jí)
很多使用 RTOS 的嵌入式開發(fā)人員從不花時(shí)間決定如何安排他們的任務(wù) 。 他們經(jīng)常假設(shè) RTOS 會(huì)為他們做這件事 , 并且他們的任務(wù)只會(huì)基于提供他們選擇的任務(wù)優(yōu)先級(jí)而成功運(yùn)行 。 事實(shí)上 , 開發(fā)人員可以通過多種不同的方式來安排任務(wù) 。
首先 , 開發(fā)人員可以使用任務(wù)響應(yīng)時(shí)間來安排任務(wù) 。 在這些系統(tǒng)中 , 應(yīng)為響應(yīng)時(shí)間最短的任務(wù)分配最高優(yōu)先級(jí) 。 其次 , 開發(fā)人員可以使用一個(gè)任務(wù)執(zhí)行時(shí)間來安排任務(wù) 。 在這些系統(tǒng)中 , 應(yīng)為執(zhí)行時(shí)間最短的任務(wù)分配最高優(yōu)先級(jí) 。 最后 , 開發(fā)人員可以使用任務(wù)周期來安排任務(wù) 。 在這些系統(tǒng)中 , 周期最短的任務(wù)優(yōu)先級(jí)最高 。
只有在你選擇了調(diào)度方法之后 , 你才能正確設(shè)置你的任務(wù)優(yōu)先級(jí) 。
RTOS 最佳實(shí)踐 3 – 使用 RMS 驗(yàn)證任務(wù)是否可調(diào)度
大多數(shù)使用 RTOS 的嵌入式系統(tǒng)中使用的調(diào)度算法是基于周期的調(diào)度 , 也稱為速率單調(diào)調(diào)度 。 多年來 , 針對(duì)如何使用 RMS 正確安排任務(wù)進(jìn)行了大量研究 。 通常 , RMS 帶有開發(fā)人員需要牢記的幾個(gè)假設(shè) 。
首先 , RMS 假設(shè)任務(wù)是周期性的并且它們也是獨(dú)立的 。 這意味著如果你有一個(gè)非周期性任務(wù) , 在分析中你會(huì)假設(shè)它是并為其提供一些周期性時(shí)間 。 接下來 , RMS 假設(shè) RTOS 使用搶占式調(diào)度 。 它還假設(shè)所有任務(wù)都是平等的 , 并且最壞情況下的執(zhí)行時(shí)間是恒定的 。
RTOS 最佳實(shí)踐 4 – 使用同步和數(shù)據(jù)流圖
在使用由外向內(nèi)的方法來識(shí)別應(yīng)用程序中需要的所有任務(wù)之后 , 嵌入式開發(fā)人員可以創(chuàng)建一個(gè)同步和數(shù)據(jù)流圖 , 該圖的目的是:
映射系統(tǒng)中所有數(shù)據(jù)的來源
映射數(shù)據(jù)如何從其源移動(dòng)到系統(tǒng)中的任務(wù)
映射如何存儲(chǔ)和訪問這些數(shù)據(jù)
映射如何使用該數(shù)據(jù)生成系統(tǒng)輸出
下面是我們可能為該應(yīng)用程序制作的數(shù)據(jù)流和同步圖 。
如你所見 , 此圖不僅可以幫助我們了解數(shù)據(jù)是如何在系統(tǒng)中移動(dòng)的 , 還可以幫助我們了解我們?cè)趹?yīng)用程序中需要的 RTOS 組件 , 例如:
相關(guān)經(jīng)驗(yàn)推薦
- 蘋果|庫克尷尬了,媒體稱庫克對(duì)設(shè)計(jì)不感興趣,逼走蘋果首席設(shè)計(jì)師
- iPhone|蘋果全球開發(fā)者大會(huì)定檔 iOS16系統(tǒng)即將推出 大批iPhone機(jī)型將淘汰
- oppo find x|OPPO Find X3 Pro這種比較舊的機(jī)型還有機(jī)會(huì)優(yōu)先開發(fā)?
- 軟件|中國(guó)的工業(yè)設(shè)計(jì)軟件,只剩下了繳械投降?國(guó)產(chǎn)CAD廠商寧死不屈!
- 中興|告別雜亂!MIUI開發(fā)模式大變 又一款真屏下攝像頭機(jī)型曝光
- 華為|華為智選品牌5G新機(jī)亮相!設(shè)計(jì)驚喜,1799起售
- 運(yùn)營(yíng)商|Android開發(fā)者須知的幾種APP加密方式
- 蘋果|蘋果手機(jī)適合懶人,所有的給你設(shè)計(jì)好了,你用就行
- 二維碼|vivo X80系列雅致設(shè)計(jì),雙電芯閃充很給力
- 華為榮耀|輕巧便攜復(fù)古設(shè)計(jì),游戲辦公兩不誤,洛斐小翹68三模機(jī)械鍵盤測(cè)評(píng)
