0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文知道RTOS是如何進(jìn)行任務(wù)劃分

Q4MP_gh_c472c21 ? 來源:搜狐網(wǎng) ? 作者:搜狐網(wǎng) ? 2020-09-22 14:37 ? 次閱讀

任務(wù)的定義

嵌入式開發(fā)中,面對的都是單個(gè) CPU 的情況,而在這個(gè)開發(fā)過程中,我們會涉及到裸機(jī)開發(fā)或者是跑操作系統(tǒng)的開發(fā),在裸機(jī)開發(fā)的過程中,整個(gè)系統(tǒng)是以模塊的角度來看的,也就是系統(tǒng)在運(yùn)行完了這個(gè)模塊之后,再去運(yùn)行另外一個(gè)模塊。但是在有操作系統(tǒng)的情況下,我們是把系統(tǒng)處理的一件一件事情以任務(wù)的角度來進(jìn)行劃分的,這任務(wù)與任務(wù)之間是并發(fā)執(zhí)行的。每個(gè)任務(wù)的運(yùn)行看起來是獨(dú)立的,從宏觀的角度看是多個(gè)任務(wù)同時(shí)在占據(jù)著 CPU 的執(zhí)行,就像是多 CPU 一樣,在真正的多 CPU 系統(tǒng)中,每個(gè) CPU 都有一套自己的寄存器,而為了實(shí)現(xiàn)這樣一種多 CPU 運(yùn)行的機(jī)制,那么操作系統(tǒng)就為每個(gè)任務(wù)用一塊專用的存儲空間構(gòu)建了一個(gè)“虛擬 CPU”,用來保存 CPU 內(nèi)存各個(gè)寄存器的信息,這塊專用的存儲器空間就是“任務(wù)堆棧”,有多少個(gè)任務(wù)就會有多少個(gè)任務(wù)堆棧。

操作系統(tǒng)為了能夠有效地在各個(gè)任務(wù)之間進(jìn)行切換,也就是任務(wù)之間的調(diào)度,那么就必須掌握各個(gè)任務(wù)的詳細(xì)動(dòng)態(tài)信息。為此,操作系統(tǒng)為每個(gè)任務(wù)建立了檔案,用來記錄任務(wù)的這些信息,這就是“任務(wù)控制塊”。另外任務(wù)有各自的內(nèi)容,這就是作為開發(fā)者來編寫的任務(wù)函數(shù),來實(shí)現(xiàn)這個(gè)任務(wù)所需要的功能。

綜上,我們知道了每個(gè)任務(wù)都會具有如下三種特征:

任務(wù)函數(shù)

任務(wù)堆棧

任務(wù)控制塊

任務(wù)的特性

任務(wù)的基本特性是獨(dú)立性、并發(fā)性和動(dòng)態(tài)性。這也是任務(wù)和程序模塊的本質(zhì)區(qū)別,程序模塊通常是用于沒有操作系統(tǒng)的裸機(jī)開發(fā)中。

獨(dú)立性:

在傳統(tǒng)的程序模塊中,一個(gè)模塊是可以調(diào)用另外一個(gè)模塊的,但是在操作系統(tǒng)中,每個(gè)任務(wù)都具有自己的 CPU ,即 CPU 為自己獨(dú)占,這樣,一個(gè)任務(wù)也就不能夠像調(diào)用子程序那樣去調(diào)用另外一個(gè)任務(wù)了。這是關(guān)于獨(dú)立性一個(gè)體現(xiàn)

關(guān)于獨(dú)立性的另一個(gè)體現(xiàn)就是任務(wù)之間傳遞信息時(shí),模塊之間的傳遞信息時(shí)主模塊以實(shí)參的形式將信息傳遞給模塊的形參,子模塊以返回值的形式將結(jié)果傳輸給主模塊。但是在任務(wù)之間傳遞信息卻不是這樣的,任務(wù)與任務(wù)之間的傳遞信息需要借助于第三者,也就是跟操作系統(tǒng)相關(guān)聯(lián)的信號量、郵箱和消息隊(duì)列等,通過第三者來傳遞信息也就造成了信息傳輸是異步的,這也是任務(wù)獨(dú)立性的一個(gè)體現(xiàn)。

并發(fā)性

任務(wù) A 在時(shí)刻 t1 到 t4 之間完成,任務(wù) B 在時(shí)刻 t2 到 t3 之間完成,它們的運(yùn)行時(shí)間段有重疊部分,這種運(yùn)行方式稱為“并發(fā)”運(yùn)行。在多 CPU 系統(tǒng)中,并發(fā)運(yùn)行著的任務(wù)確實(shí)都有自己的 CPU ,它們的運(yùn)行狀態(tài)就是真正的并發(fā)執(zhí)行,如下圖所示:

任務(wù)并發(fā)執(zhí)行

在單 CPU 中,操作系統(tǒng)的任務(wù)調(diào)度功能解決了這樣一個(gè)問題,嵌入式實(shí)時(shí)操作系統(tǒng)的內(nèi)核都是采用 “可剝奪型”的任務(wù)調(diào)度算法,這也就意味著一個(gè)已經(jīng)就緒的高優(yōu)先級任務(wù)可以剝奪另一個(gè)正在運(yùn)行的低優(yōu)先級任務(wù)的運(yùn)行權(quán)而進(jìn)入運(yùn)行狀態(tài),如下圖所示:

單 CPU 任務(wù)并發(fā)執(zhí)行

動(dòng)態(tài)性

任務(wù)的狀態(tài)是動(dòng)態(tài)變換的,這意味著這些任務(wù)并不是隨時(shí)都可以運(yùn)行的,任務(wù)具有以下五種不同的狀態(tài)下圖用狀態(tài)圖的形式表示出來。

任務(wù)狀態(tài)圖

任務(wù)的劃分

對一個(gè)具體的嵌入式應(yīng)用系統(tǒng)進(jìn)行任務(wù)劃分,是基于實(shí)時(shí)操作系統(tǒng)應(yīng)用軟件設(shè)計(jì)的關(guān)鍵,任務(wù)劃分是否合理將直接影響到軟件設(shè)計(jì)的質(zhì)量。當(dāng)任務(wù)劃分的合理時(shí),軟件設(shè)計(jì)將比較簡單高效,否則將可能比較繁雜,甚至失敗。在進(jìn)行任務(wù)劃分時(shí),具備以下幾個(gè)原則:

首要目標(biāo)是滿足實(shí)時(shí)性指標(biāo)

即使是系統(tǒng)處于最壞的情況下,系統(tǒng)中對于實(shí)時(shí)性要求的功能都能夠得到實(shí)現(xiàn)。

任務(wù)數(shù)目合理

任務(wù)數(shù)目合理,當(dāng)任務(wù)數(shù)比較多的時(shí)候,每個(gè)任務(wù)需要實(shí)現(xiàn)的功能就簡單一些,任務(wù)的設(shè)計(jì)也簡單一些,但是任務(wù)調(diào)度操作和任務(wù)之間的通信活動(dòng)增加,使得系統(tǒng)的效率下降,資源開銷也變大。當(dāng)任務(wù)劃分的數(shù)目比較少的時(shí)候,每個(gè)任務(wù)需要實(shí)現(xiàn)的功能就比較復(fù)雜一些,但是可以免除不少任務(wù)之間的通信工作,減少共享資源的數(shù)量,減輕系統(tǒng)的負(fù)擔(dān),減少資源的開銷。因此關(guān)于任務(wù)數(shù)目的設(shè)計(jì)是比較關(guān)鍵的。

簡化軟件系統(tǒng)

一個(gè)系統(tǒng)要實(shí)現(xiàn)功能,除了設(shè)計(jì)其本身的功能以外,還需要其具備相應(yīng)的時(shí)間管理,任務(wù)同步,任務(wù)通信,內(nèi)存管理等功能。合理地劃分任務(wù),可以降低對操作系統(tǒng)的服務(wù)要求,能夠簡化系統(tǒng)軟件設(shè)計(jì),減小軟件代碼規(guī)模。

降低資源需求

減少或者簡化任務(wù)之間的同步和通信功能,就可以減少相應(yīng)數(shù)據(jù)結(jié)構(gòu)的內(nèi)存模型,從而降低對系統(tǒng)資源的需求。

因此,為了使得任務(wù)劃分更加合理,通常采用以下幾種方法進(jìn)行任務(wù)劃分:

設(shè)備依賴性任務(wù)劃分

假設(shè)現(xiàn)在有如下一個(gè)具備輸入輸出功能的系統(tǒng):

輸入輸出系統(tǒng)


通過上述框圖大致可以明白整個(gè)系統(tǒng)的工作流程,通過鍵盤輸入數(shù)據(jù),以及攝像頭采集圖片信息,送至 CPU 進(jìn)行處理,然后系統(tǒng)通過輸出設(shè)備液晶屏以及揚(yáng)聲器輸出相關(guān)的信息,圍繞 CPU 為中心,那么我們就可以這樣來進(jìn)行劃分任務(wù):鍵盤任務(wù),顯示任務(wù),數(shù)據(jù)采集任務(wù),控制輸出任務(wù)和通信任務(wù)。

關(guān)鍵任務(wù)的劃分

"關(guān)鍵性"是指某種功能在應(yīng)用系統(tǒng)中的重要性,如果這種功能不能夠正常實(shí)現(xiàn),則會造成重大影響,甚至能夠引發(fā)災(zāi)難性后果。包含關(guān)鍵功能的任務(wù)稱為“關(guān)鍵任務(wù)”,關(guān)鍵任務(wù)必須得到運(yùn)行機(jī)會,即使遺漏一次也是不可行的。

那如何使得關(guān)鍵任務(wù)能夠準(zhǔn)確得到執(zhí)行呢,我們第一時(shí)間所想到的就是提升關(guān)鍵任務(wù)的優(yōu)先級,使其優(yōu)先級為最高,但是這還不夠,我們假設(shè)現(xiàn)在有一個(gè)火災(zāi)報(bào)警系統(tǒng),火災(zāi)報(bào)警系統(tǒng)大致完成這么幾件事,檢測火警信號,撥打火警電話,啟動(dòng)噴淋滅火系統(tǒng),生成并保存火警記錄以及打印火警記錄。如果我們把這幾件事都包裝成一個(gè)任務(wù),優(yōu)先級設(shè)置為最高,在系統(tǒng)運(yùn)行的過程當(dāng)中,生成并保存火警記錄以及打印火警記錄時(shí)打印機(jī)出問題了,這個(gè)時(shí)候,就會導(dǎo)致當(dāng)前任務(wù)被掛起,而任務(wù)被掛起之后,檢測火警信號也不能夠正常工作了,所以整個(gè)系統(tǒng)也就癱瘓了。因此,對于關(guān)鍵功能來說:必須盡可能和其他功能進(jìn)行剝離,獨(dú)立成為一個(gè)任務(wù),然后通過通信方式再觸發(fā)其他任務(wù),完成后續(xù)操作。

除了將關(guān)鍵任務(wù)和其他功能的任務(wù)相剝離,并設(shè)置最高優(yōu)先級以外,還有一種方法能夠使得關(guān)鍵任務(wù)得到準(zhǔn)確執(zhí)行,那就是采用中斷的方式,比如說,在火警的報(bào)警系統(tǒng)中,讓傳感器的火警信號觸發(fā)一個(gè)外部中斷,中斷發(fā)生便完成了信號檢測功能,再由中斷服務(wù)函數(shù)使用某種通信機(jī)制通知其他任務(wù)。下面是示意圖:

火災(zāi)系統(tǒng)


我們知道為了提高系統(tǒng)的實(shí)時(shí)性,中斷服務(wù)函數(shù)應(yīng)該盡可能地短,所以,我們可以進(jìn)一步進(jìn)行劃分,將與任務(wù)通信這部分的程序剝離出來成為一個(gè)任務(wù)專門用于通信,這樣, ISR 負(fù)擔(dān)就更小了,下圖是示意圖:

用 ISR 完成關(guān)鍵功能


由上圖我們可以知道多出了一個(gè)任務(wù),消息分發(fā)任務(wù),消息任務(wù)的存在要不能干預(yù)到關(guān)鍵任務(wù)的運(yùn)行,但是同時(shí)呢,又必須能夠及時(shí)地通知到其他任務(wù)的運(yùn)行,因此,消息分發(fā)任務(wù)的優(yōu)先級也就確定了,其優(yōu)先級要低于所有關(guān)鍵任務(wù),優(yōu)先級要高于所有的操作任務(wù)。

還有一種情況,就是關(guān)鍵任務(wù)不能由中斷啟動(dòng),則可以將該關(guān)鍵功能用一個(gè)獨(dú)立的任務(wù)來實(shí)現(xiàn),如下圖所示:

關(guān)鍵任務(wù)完成關(guān)鍵功能


這個(gè)時(shí)候,已經(jīng)不能用中斷的方式來檢測報(bào)警信號了,那么就需要不停的查詢煙霧報(bào)警器的狀態(tài),防止漏掉了重要的信息。當(dāng)查詢到了報(bào)警信息的時(shí)候,在通過通信機(jī)制通知其他任務(wù)完成相應(yīng)的操作。

最后,要指出的一點(diǎn)是,如果關(guān)鍵任務(wù)有嚴(yán)格的實(shí)時(shí)性要求,那么必須賦予它足夠高的優(yōu)先級,以便及時(shí)獲得運(yùn)行權(quán),如果沒有實(shí)時(shí)性要求,那么高優(yōu)先級并不是必須的,關(guān)鍵是將其他非關(guān)鍵的操作進(jìn)行剝離,以免受其拖累。

緊迫任務(wù)的劃分

”緊迫性“是指某種功能必須在規(guī)定的時(shí)間內(nèi)得到運(yùn)行權(quán)(及時(shí)運(yùn)行),并在規(guī)定的時(shí)刻前執(zhí)行完畢(按時(shí)完成),可見這類功能有嚴(yán)格的實(shí)時(shí)性要求,大多數(shù)緊迫任務(wù)是由異步事件觸發(fā)的,這些異步事件一般能夠引發(fā)某種中斷。在這種情況下,將緊迫任務(wù)安排在相應(yīng)的 ISR 中是最有效的方法。如果緊迫任務(wù)不能夠安排在 ISR 中,那么為它安排盡可能高的優(yōu)先級是解決“及時(shí)性”的有效方法。要達(dá)到按時(shí)完成的目的,必須使得緊迫任務(wù)需要執(zhí)行的時(shí)間盡可能的短。辦法就是對緊迫任務(wù)進(jìn)行瘦身,盡可能地剝離不太緊迫的任務(wù),只剩下必須立刻做的操作,將被剝離的不太緊迫的操作另外封裝成一個(gè)任務(wù)。

下圖是一個(gè)數(shù)據(jù)采集任務(wù),數(shù)據(jù)采集時(shí)一個(gè)緊迫任務(wù),通過峰值檢測電路觸發(fā)中斷,在中斷里完成 A/D 轉(zhuǎn)換,下圖是整個(gè)數(shù)據(jù)采集系統(tǒng)的示意圖:

數(shù)據(jù)采集系統(tǒng)框架

數(shù)據(jù)處理任務(wù)的劃分

用戶應(yīng)用程序中消耗時(shí)間最多的就是各種數(shù)據(jù)處理單元,這種單元通常不止一個(gè),他們通常為不同的功能服務(wù)。應(yīng)該將這些單元?jiǎng)澐殖鰜?,分別包裝成不同的任務(wù)。由于這類任務(wù)需要消耗較多的時(shí)間,那么他們的優(yōu)先級必須安排的比較低,除此之外的方法,如果操作系統(tǒng)支持將多個(gè)任務(wù)安排相同優(yōu)先級的機(jī)制,那么當(dāng)有多個(gè)數(shù)據(jù)處理任務(wù)時(shí),可安排相同的優(yōu)先級,采用時(shí)間片輪轉(zhuǎn)的方式運(yùn)行,如果操作系統(tǒng)不支持多個(gè)任務(wù)具有相同的優(yōu)先級,那么可以將多個(gè)需要并行的數(shù)據(jù)處理任務(wù)分成多個(gè)數(shù)據(jù)處理任務(wù),原理如下圖所示:

模擬時(shí)間片輪轉(zhuǎn)

功能聚合任務(wù)的劃分

正如標(biāo)題的意思所示,功能聚合任務(wù)的劃分,也就是將關(guān)系緊密的任務(wù)組合成一個(gè)任務(wù),達(dá)到功能聚合的效果,那什么樣的任務(wù)才能稱之為是關(guān)系緊密的任務(wù)呢,一般滿足以下兩點(diǎn)要求:

數(shù)據(jù)關(guān)聯(lián)緊密

時(shí)序關(guān)聯(lián)緊密

至于要將其組合成一個(gè)任務(wù)的原因也很簡單,是因?yàn)槿绻麑㈥P(guān)系密切的功能分別用不同的任務(wù)來實(shí)現(xiàn),那么就需要進(jìn)行大量的數(shù)據(jù)通信和同步通信,這對于系統(tǒng)而言是一個(gè)很大的負(fù)擔(dān)。

觸發(fā)條件相同任務(wù)的劃分

如果若干功能由相同的事件觸發(fā),則可以將這些功能組合成為一個(gè)任務(wù),從而免除將事件分發(fā)給多個(gè)任務(wù)的工作量。但是這也必須有一個(gè)條件,就是當(dāng)以某種次序順序執(zhí)行這些功能的時(shí)候,各個(gè)功能的實(shí)時(shí)性要求仍然可以得到滿足,這是關(guān)鍵。同時(shí),這里說的觸發(fā)條件相同的任務(wù),通常外部觸發(fā)的任務(wù)一般是關(guān)鍵任務(wù)或者緊迫任務(wù),需要按照前文所述的方法來進(jìn)行任務(wù)的劃分,符合本類任務(wù)的觸發(fā)條件通常是內(nèi)部事件,比如說一個(gè)時(shí)鐘事件,也就是說到了指定時(shí)間就觸發(fā)這個(gè)任務(wù),或者說是某個(gè)任務(wù)運(yùn)行之后得到一個(gè)結(jié)論,這結(jié)論又觸發(fā)了一個(gè)任務(wù)。如下圖示意圖所示:

觸發(fā)條件相同的任務(wù)

另外,需要注意的是,在任務(wù)內(nèi)部,各個(gè)功能的執(zhí)行順序要盡可能安排的合理一些:

如果各個(gè)功能之間存在有因果關(guān)系。則按因果關(guān)系安排執(zhí)行順序,如先計(jì)算,后輸出結(jié)果

如果各個(gè)功能之間完全獨(dú)立,則按照實(shí)時(shí)性要求的強(qiáng)弱安排執(zhí)行順序。

運(yùn)行周期相同任務(wù)的劃分

將周期相同的功能組合在一起封裝成一個(gè)任務(wù),就能可以避免一個(gè)時(shí)間觸發(fā)幾個(gè)任務(wù),省略去事件分發(fā)操作和他們之間的通信,能夠減輕系統(tǒng)的負(fù)擔(dān)。

順序操作的任務(wù)的劃分

如果若干功能按照固定的順序進(jìn)行流水作業(yè),相互之間完全沒有并發(fā)性,那么應(yīng)該將這些功能組合成為一個(gè)任務(wù)。

總結(jié)

通過上述的論述,我們知道了在一個(gè) RTOS 中應(yīng)該如何進(jìn)行任務(wù)的劃分,在最后,再進(jìn)行精煉一下,總結(jié)為如下幾點(diǎn):

以 CPU 為中心,將與各種輸入/輸出相關(guān)的功能劃分為獨(dú)立的任務(wù)

將關(guān)鍵功能剝離出來用一個(gè)獨(dú)立的任務(wù)或者是 ISR 去完成,剩余的部分用另外一個(gè)任務(wù)實(shí)現(xiàn),兩者之間通過通信機(jī)制進(jìn)行溝通

將緊迫功能剝離出來用一個(gè)高優(yōu)先級的任務(wù)或者 ISR 去完成,剩余部分用另外一個(gè)任務(wù)實(shí)現(xiàn),兩者之間通過通信機(jī)制進(jìn)行溝通

對于既關(guān)鍵又緊迫的功能,按照緊迫功能的處理方法對齊進(jìn)行處理

將消耗 CPU 時(shí)間較多的數(shù)據(jù)處理功能劃分出來,封裝成低優(yōu)先級的任務(wù)

將關(guān)系密切的若干任務(wù)組合成一個(gè)任務(wù),達(dá)到功能聚合的效果

將由相同事件觸發(fā)的若干功能組合成為一個(gè)任務(wù),從而免除事件分發(fā)機(jī)制

將運(yùn)行周期相同的任務(wù)組合成為一個(gè)任務(wù),從而免除時(shí)間事件分發(fā)機(jī)制

將若干按固定順序執(zhí)行的功能組合成為一個(gè)功能,從而免除同步接力通信的麻煩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211797
  • RTOS
    +關(guān)注

    關(guān)注

    22

    文章

    813

    瀏覽量

    119649

原文標(biāo)題:RTOS 是如何進(jìn)行任務(wù)劃分的?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RTOS信號量、隊(duì)列通信原理

    有深入理解RTOS原理,或閱讀過RTOS源碼的同學(xué)應(yīng)該知道RTOS實(shí)現(xiàn)任務(wù)間通信通常是由系列
    發(fā)表于 08-16 10:07 ?1675次閱讀

    詳解實(shí)時(shí)操作系統(tǒng)(RTOS)

    實(shí)時(shí)操作系統(tǒng) (RTOS) 是管理微處理器或微控制器時(shí)間的軟件。實(shí)時(shí)系統(tǒng)指如果系統(tǒng)的邏輯和時(shí)序正確性無法滿足,可能會導(dǎo)致嚴(yán)重后果的系統(tǒng)。實(shí)時(shí)多任務(wù)應(yīng)用是個(gè)必須同時(shí)處理多個(gè)時(shí)間關(guān)鍵活動(dòng)的系統(tǒng)。實(shí)時(shí)
    發(fā)表于 08-30 11:10 ?1.2w次閱讀

    RTOS內(nèi)功修煉記()— 任務(wù)到底應(yīng)該怎么寫?

    本篇文章講述了任務(wù)的三大元素:任務(wù)控制塊、任務(wù)棧、任務(wù)入口函數(shù),并講述了編寫RTOS任務(wù)入口函數(shù)
    的頭像 發(fā)表于 12-01 16:36 ?787次閱讀
    <b class='flag-5'>RTOS</b>內(nèi)功修煉記(<b class='flag-5'>一</b>)— <b class='flag-5'>任務(wù)</b>到底應(yīng)該怎么寫?

    freertos系統(tǒng)如何劃分任務(wù)

    正在看freertos方面的教程,想請教下如何劃分任務(wù)? 比如之前做的個(gè)數(shù)據(jù)采集板,用到了單片機(jī)以下功能: 1,單片機(jī)通過SPI1和ADC芯片通訊,同時(shí)還要通過SPI控制ADC電路部分的其他外圍
    發(fā)表于 05-08 07:16

    何進(jìn)行頻率采集?

    在0-800HZ,我不知道何進(jìn)行接線和編程.別的傳感器的輸出都是電壓或電流信號,采集沒有問題.我想用時(shí)鐘口直接采集頻率,但是按說明做卻沒有反應(yīng),請專家?guī)蛡€(gè)忙.最好是提供接線圖以及程序框圖.
    發(fā)表于 09-01 19:12

    【設(shè)計(jì)技巧】rtos的核心原理簡析

    rtos的核心原理簡析rtos全稱real-time operating system(實(shí)時(shí)操作系統(tǒng)),我來簡單分析下:我們都知道,c語句中調(diào)用個(gè)函數(shù)后,該函數(shù)的返回地址都是放在堆棧
    發(fā)表于 07-23 08:00

    嵌入式系統(tǒng)使用的存儲器是如何進(jìn)行劃分

    嵌入式最小硬件系統(tǒng)是由哪些部分組成的?嵌入式系統(tǒng)使用的存儲器是如何進(jìn)行劃分的?可分為哪幾類?
    發(fā)表于 10-22 07:18

    RTOS進(jìn)行講解

    自動(dòng)化類專業(yè)小伙伴最早接觸般都是在接觸RTOS后了,然而對于計(jì)算機(jī)相關(guān)專業(yè)的小伙伴應(yīng)該在學(xué)《計(jì)算機(jī)操作系統(tǒng)》老師對這塊講解的非常清楚了,包括些性能指標(biāo)的定義與計(jì)算等等,不過作者這
    發(fā)表于 11-10 07:24

    嵌入式應(yīng)用軟件任務(wù)劃分的原則是什么

    嵌入式應(yīng)用軟件任務(wù)劃分的原則參考文章“嵌入式應(yīng)用軟件任務(wù)劃分的原則”在基于實(shí)時(shí)操作系統(tǒng)(RTOS,RealTime Operating Sy
    發(fā)表于 12-24 06:57

    知道RTOS應(yīng)用中節(jié)省功耗的方法嗎?

    知道在空閑任務(wù)中使用行代碼可以節(jié)省多少能量嗎?FreeRTOS商業(yè)版本OpenRTOS及安全版本SAFERTOS的提供商WHIS創(chuàng)建了個(gè)基本應(yīng)用程序,在
    發(fā)表于 06-24 15:38

    嵌入式應(yīng)用軟件任務(wù)劃分的原則

     嵌入式應(yīng)用軟件任務(wù)劃分的原則  在基于實(shí)時(shí)操作系統(tǒng)(RTOS,RealTime Operating System)的單片機(jī)應(yīng)用軟件設(shè)計(jì)中,“任務(wù)”是
    發(fā)表于 03-29 15:14 ?814次閱讀
    嵌入式應(yīng)用軟件<b class='flag-5'>任務(wù)</b><b class='flag-5'>劃分</b>的原則

    何進(jìn)行分FPGA模塊劃分

    模塊劃分,顧名思義是指模塊的劃分。但是,明德?lián)P至簡設(shè)計(jì)法提出的模塊劃分,是廣義的“模塊劃分”。后續(xù)所提及的“模塊劃分”,不單單指模塊的
    發(fā)表于 04-20 02:44 ?5106次閱讀
    如<b class='flag-5'>何進(jìn)行</b>分FPGA模塊<b class='flag-5'>劃分</b>

    LEDs狀態(tài)燈任務(wù)(線程)設(shè)計(jì) (基于RTOS

    LEDs狀態(tài)燈任務(wù)(線程)設(shè)計(jì)(基于RTOS
    的頭像 發(fā)表于 03-12 11:30 ?2356次閱讀

    RTOS任務(wù)的堆棧大小與代碼量有啥關(guān)系嗎?

    最近有小伙伴問了這樣個(gè)問題:我有個(gè)任務(wù)中的代碼量很多,是不是這個(gè)任務(wù)的堆棧需要分配很大才行? 下面就圍繞任務(wù)代碼量,以及堆棧進(jìn)行描述相關(guān)內(nèi)
    的頭像 發(fā)表于 05-26 09:34 ?2157次閱讀

    使用任務(wù)通知提高RTOS應(yīng)用的效率

    在實(shí)時(shí)嵌入式系統(tǒng)中,性能和資源效率是決定設(shè)計(jì)成敗的關(guān)鍵因素。傳統(tǒng)的實(shí)時(shí)操作系統(tǒng)(RTOS)提供了如隊(duì)列、信號量和事件組機(jī)制,實(shí)現(xiàn)任務(wù)之間的同步和通信。FreeRTOS/SAFERTOS還提供種方法可以使這些過程更快、更輕量化,
    的頭像 發(fā)表于 12-27 14:54 ?140次閱讀