2022年ucos-iii知識(shí)點(diǎn)總結(jié)_第1頁(yè)
2022年ucos-iii知識(shí)點(diǎn)總結(jié)_第2頁(yè)
2022年ucos-iii知識(shí)點(diǎn)總結(jié)_第3頁(yè)
2022年ucos-iii知識(shí)點(diǎn)總結(jié)_第4頁(yè)
2022年ucos-iii知識(shí)點(diǎn)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精品word 名師歸納總結(jié) - - - - - - - - - - - -1、其中最有用的功能應(yīng)當(dāng)是時(shí)間片輪轉(zhuǎn)法(roundrobin,這個(gè)是uC/OS-II中不支持的,但是現(xiàn)在已經(jīng)是uC/OS-III的一個(gè)功能了2、uC/OS-III被設(shè)計(jì)用于32位處理器,但是它也能在16 位 或 8位處理器中很好地工作;3、一共有 2種類型的實(shí)時(shí)系統(tǒng):軟實(shí)時(shí)系統(tǒng)和硬實(shí)時(shí)系統(tǒng);硬實(shí)時(shí)系統(tǒng)中,運(yùn)算超時(shí)是不答應(yīng)發(fā)生的,運(yùn)算超時(shí)會(huì)導(dǎo)致嚴(yán)峻后果;但是在軟實(shí)時(shí)系統(tǒng)中, 超時(shí)不會(huì)導(dǎo)致嚴(yán)峻后果4、前后臺(tái)系統(tǒng):包含一個(gè)無(wú)限循環(huán)的模塊實(shí)現(xiàn)需要的操作(后臺(tái));中斷處理程序?qū)崿F(xiàn)異步大事(前臺(tái));前臺(tái)也叫做中斷級(jí),后臺(tái)也叫作任務(wù)級(jí)

2、;5、臨界操作應(yīng)當(dāng)在任務(wù)級(jí)中被執(zhí)行,不行防止地必需在中斷處理程序中執(zhí)行也要確保是在很短的時(shí)間內(nèi)完成;由于這會(huì)導(dǎo)致ISR占用更長(zhǎng)的時(shí)間;通常的, ISR中使能相關(guān)的信息而在后臺(tái)程序中執(zhí)行 相應(yīng)的操作;6、ucos-iii 中的任務(wù)(也叫做線程)是一段簡(jiǎn)潔的程序,運(yùn)行時(shí)完全地占用CPU;在單 CPU中,任何時(shí)候只有1個(gè)任務(wù)被執(zhí)行;7、內(nèi)核的責(zé)任是治理任務(wù),和諧和切換多個(gè)任務(wù)依次享用CPU;讓我們感覺(jué)是多個(gè)CPU在同時(shí)運(yùn)行,也有利于處理模塊化的應(yīng)用它也負(fù)責(zé)治理任務(wù)間的溝通,系統(tǒng)資源的治理(內(nèi)存和 I/O)等;精選名師 優(yōu)秀名師 - - - - - - - - - -第 1 頁(yè),共 16 頁(yè) - -

3、- - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -8、uC/OS-III是一個(gè)搶占式內(nèi)核,這意味著uC/OS-III總是執(zhí)行最重要的就緒任務(wù)9、ISR響應(yīng)中斷懇求設(shè)備,但是 ISR只做特別少的工作;ISR應(yīng)當(dāng)標(biāo)記或發(fā)送消息到一個(gè)高優(yōu)先級(jí)的任務(wù),讓中斷能夠快速處理完畢10、系統(tǒng)中加入內(nèi)核需要額外的支出,由于內(nèi)核供應(yīng)服務(wù)時(shí)需要時(shí)間去處理;內(nèi)核占用CPU的時(shí)間介于2%到 4% 之 間;由于uC/OS-III 是一個(gè)軟件,添加到目標(biāo)系統(tǒng)中需要額外的ROM和RAM;11、; uC/OS-III 內(nèi)核需要 1K 到 4K 之間的 RAM , 加上每個(gè)任

4、務(wù)自己所需的堆??臻g; 至少有 4K 大小 RAM 的處理器才有可能勝利移植 uC/OS-III ;12、: uC/OS-III答應(yīng)多個(gè)任務(wù)擁有相同的優(yōu)先級(jí);當(dāng)多個(gè)相同優(yōu)先級(jí)的任務(wù)就緒時(shí),并且這個(gè)優(yōu)先級(jí)是目前最高的uC/OS-III會(huì)安排用戶定義的時(shí)間片給每個(gè)任務(wù)去運(yùn)行;每個(gè)任務(wù)可以定義不同的時(shí)間片;精選名師 優(yōu)秀名師 - - - - - - - - - -第 2 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -13、uC/OS-III愛(ài)護(hù)臨界段可以通過(guò)鎖定調(diào)度器代替關(guān)中斷;因此關(guān)中斷的時(shí)間會(huì)特別少; 這樣就使u

5、C/OS-III可以響應(yīng)一些特別快的中斷源了;14、 uC/OS-III答應(yīng)用戶在運(yùn)行時(shí)配置內(nèi)核;特殊的, 全部的內(nèi)核對(duì)象如任務(wù)、堆棧、信號(hào)量、大事標(biāo)志組、消息隊(duì)列、消息、 互斥信號(hào)量、內(nèi)存分區(qū)、軟件定時(shí)器等都是在運(yùn)行時(shí)安排的,以免在編譯時(shí)的過(guò)度安排;15、uC/OS-III對(duì)任務(wù)數(shù)量、任務(wù)大小、優(yōu)先級(jí)數(shù)量無(wú)限制;每一個(gè)任務(wù)需要有自己的堆??臻g;實(shí)際上,任務(wù)的數(shù)量和大小限制于處理器能供應(yīng)的內(nèi)存大?。?6、uC/OS-III 支持任何數(shù)量的任務(wù)、信號(hào)量、 互斥信號(hào)量、 大事標(biāo)志組、 消息隊(duì)列、 軟件定時(shí)器、 內(nèi)存分區(qū); 用戶在運(yùn)行時(shí)安排全部的內(nèi)核對(duì)象;17、互斥信號(hào)量用于資源治理; 它是一個(gè)內(nèi)置

6、優(yōu)先級(jí)的特殊類型信號(hào)量, 用于排除優(yōu)先級(jí)反轉(zhuǎn); 互斥信號(hào)量可以被嵌套,因此,任務(wù)可申請(qǐng)同一個(gè)互斥信號(hào)量多達(dá) 250 次;當(dāng)然, 互斥信號(hào)量的占有者需要釋放同等次數(shù);18、: uC/OS-III 答應(yīng)任務(wù)停止自身或者停止另外的任務(wù); 停止一個(gè)任務(wù)意味著這個(gè)任務(wù)將不再執(zhí)行直到被其他的任務(wù)復(fù); 停止可以被嵌套到 250 級(jí); 換句話說(shuō), 一個(gè)任務(wù)可以停止另外的任務(wù)多達(dá)精選名師 優(yōu)秀名師 - - - - - - - - - -第 3 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -250 次; 當(dāng)然,這個(gè)任務(wù)必需被復(fù)原同

7、等次數(shù)才有資格再次獲得CPU;19、可以定義任意數(shù)量的一次性的、周期性的、或者兩者兼有的軟件定時(shí)器; 定時(shí)器是倒計(jì)時(shí)的,執(zhí)行用戶定義的行為始終到計(jì)數(shù)減為0;每一個(gè)定時(shí)器可以有自己的行為,假如一個(gè)定時(shí)器是周期性的,計(jì)數(shù)減為0時(shí)會(huì)自動(dòng)重裝計(jì)數(shù)值并執(zhí)行用戶定義的行為;20、: uC/OS-III答應(yīng)任務(wù)等待多個(gè)大事的發(fā)生;等待中的任務(wù)在全部大事發(fā)生后被喚醒21、 uC/OS-III答應(yīng) ISR或者任務(wù)直接地發(fā)送信號(hào)量給其它任務(wù);這樣就防止了必需產(chǎn)生一個(gè)中間級(jí)內(nèi)核對(duì)象如一個(gè)信號(hào)量或者大事 標(biāo)志組只為了標(biāo)記一個(gè)任務(wù);提高了內(nèi)核性能;22、:每一個(gè)任務(wù)可以擁有用戶可定義的任務(wù)寄存器,不同于 CPU寄存器;

8、 uC/OS-III能檢測(cè)指針是否為NULL、 在 ISR中調(diào)用的任務(wù)級(jí)服務(wù)是否答應(yīng)、參數(shù)在答應(yīng)范疇內(nèi)、配置選項(xiàng)的有效性、函數(shù)的執(zhí)行結(jié)果等;每一個(gè)uC/OS-III的 API函數(shù)返回一個(gè)對(duì)應(yīng)于函數(shù)調(diào)用結(jié)果的錯(cuò)誤代號(hào)23: uC/OS-III有內(nèi)置性能測(cè)量功能;能測(cè)量每一個(gè)任務(wù)的執(zhí)行時(shí)間 ,每個(gè)任務(wù)的堆棧使用情形,任務(wù)的執(zhí)行次數(shù),CPU 的使用情精選名師 優(yōu)秀名師 - - - - - - - - - -第 4 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -況, ISR到任務(wù)的切換時(shí)間,任務(wù)到任務(wù)的切換時(shí)間,列表中

9、的對(duì)象的峰值數(shù),關(guān)中斷、鎖調(diào)度器平均時(shí)間等;24 、uC/OS-III 被設(shè)計(jì)于能夠根 CPU 的架構(gòu)被優(yōu)化 uC/OS-III 所用的大部分?jǐn)?shù)據(jù)類型能夠被轉(zhuǎn)變, 以更好地適應(yīng) CPU 固有的字大小;優(yōu)先級(jí)調(diào)度法就可以通過(guò)編寫(xiě)一些匯編語(yǔ)言而獲益于一些 特 殊 的指令如位設(shè)置、位清除、計(jì)數(shù)器清零指令( CLZ )、find-first-oneFF1 指令25、uC/OS-III中全部的掛起服務(wù)都可以有時(shí)間限制,預(yù)防死鎖;26、uC/OS-III有時(shí)基任務(wù), 時(shí)基 ISR觸發(fā)時(shí)基任務(wù); uC/OS-III使27、uC/OS-III使用了哈希列表結(jié)構(gòu),可以大大削減處理延時(shí)和任務(wù)超時(shí)所產(chǎn)生的開(kāi)支;28

10、、uC/OS-III答應(yīng)程序員定義hook 函數(shù);hook函數(shù)答應(yīng)用戶擴(kuò)展uC/OS-III的功能;29、為了測(cè)量時(shí)間,uC/OS-III需要一個(gè)16位或者32 位的時(shí)時(shí)間戳計(jì)數(shù)器;30、 每個(gè) uC/OS-III的內(nèi)核對(duì)象有一個(gè)相關(guān)聯(lián)的名字;這樣就能很簡(jiǎn)潔的識(shí)別出對(duì)象所指定的作用;對(duì)象的名字長(zhǎng)度沒(méi)有限制,但是必需以空字符終止;精選名師 優(yōu)秀名師 - - - - - - - - - -第 5 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -31、每個(gè)任務(wù)需要?jiǎng)?chuàng)建自己的堆棧;堆棧的數(shù)據(jù)類型CPU_STK;堆??梢员?/p>

11、靜態(tài)地安排或者通過(guò)malloc動(dòng)態(tài)地安排;如任務(wù)將不會(huì)被刪除,堆棧將始終被使用;32、在大部分處理器中,中斷在啟動(dòng)時(shí)是關(guān)閉的;無(wú)論如何,在啟動(dòng)時(shí)關(guān)閉全部的外設(shè)中斷是最安全的;33、uC/OS-III須創(chuàng)建閑暇任務(wù)OS_IdleTask (),當(dāng)沒(méi)有其他任務(wù)運(yùn)行時(shí)就運(yùn)行閑暇任務(wù);根據(jù) 配 置 文 件 中 所 uC/OS-III會(huì)創(chuàng) 建 統(tǒng) 務(wù) OS_StatTask 、 定 時(shí) 器 任務(wù)OS_TmrTask、 中斷隊(duì) 列 處 理任務(wù) OS_IntQTask;34、OSTaskCreate 的第四個(gè)參數(shù), 第一次被調(diào)用時(shí) OSTaskCreate 接收這個(gè)變量,傳遞給所創(chuàng)建的任務(wù)中的唯獨(dú)參數(shù)&qu

12、ot;p_arg";該參數(shù) 可以是任意類型的指針;35、參數(shù)值越小優(yōu)先級(jí)越高;可以設(shè)置優(yōu)先級(jí)數(shù)值為1到OS_CFG_PRIO_MAX-2; 要防止使用優(yōu)先級(jí)#0 和優(yōu)先級(jí)OS_CFG_PRIO_MAX-1; 因 為 這些是為uC/OS-III 保留的;36、任務(wù)的堆棧大 以 CPU_STK 為數(shù)據(jù)類型而不是字節(jié) ; 例如, 假如要安排 1KB 大小的堆??臻g,由于 CPU_STK 是 32 位的,所以這個(gè)其值為 256.37、)全部的uC/OS-III任務(wù)需要被設(shè)置為無(wú)限循環(huán);精選名師 優(yōu)秀名師 - - - - - - - - - -第 6 頁(yè),共 16 頁(yè) - - - - - -

13、- - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -38、互斥信號(hào)量( mutex)是一個(gè)內(nèi)核對(duì)象, 用于愛(ài)護(hù)共享資源;任務(wù)要拜訪共享資源就必需先獲得mutex;mutex 的擁有者使用完這個(gè)資源后就必需釋放這個(gè)mutex ;39、消息隊(duì)列是一個(gè)內(nèi)核對(duì)象, ISR 或任務(wù)可以直接發(fā)送消息到另一個(gè)任務(wù); 發(fā)送者制定一個(gè)消息并將其發(fā)送到目標(biāo)任務(wù)的消息 隊(duì)列; 目標(biāo)任務(wù)等待消息的到達(dá);40、定義消息隊(duì)列可接受消息的個(gè)數(shù);這個(gè)值必需大于0;假如消息者發(fā)送消息數(shù)超過(guò)了消息接收任務(wù)的承擔(dān)才能;那么消息將會(huì)被丟失;可以通過(guò)增加消息隊(duì)列的大小或者供應(yīng)消息接收任務(wù)的優(yōu)先級(jí) 提

14、升其承擔(dān)才能;41、uC/OS-III定義了一個(gè)進(jìn)入臨界段的宏和兩個(gè)出臨界段的宏(退出臨界段后是否調(diào)用調(diào)度器);42、測(cè)得消息是什么時(shí)候被發(fā)送的,用戶就能測(cè)得任務(wù)接收這個(gè)消息所用的時(shí)間;讀取現(xiàn)在的時(shí)間戳并減去消息被發(fā)送時(shí)的時(shí)戳;需留意的是,消息被發(fā)送時(shí),等待消息的任務(wù)可能不會(huì)立刻接收到消息,由于ISR或更高優(yōu)先級(jí)的任務(wù)可能搶占了當(dāng)前任務(wù);明顯,測(cè)出的時(shí)間仍包括了測(cè)量時(shí)消耗的額外時(shí)間;然而減掉測(cè)量時(shí)所耗時(shí)間就是實(shí)際上的時(shí)間;精選名師 優(yōu)秀名師 - - - - - - - - - -第 7 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - -

15、- - - - - -43、時(shí)間戳的掌握單元位于CPU_TS中; 例如,假如 CPU 速率為 1MHz, 時(shí)間戳的速率為1MHz; 那么 CPU_TS的辨論率為1微秒44、當(dāng)任務(wù)第一次執(zhí)行時(shí),會(huì)傳入一個(gè)變量"p_arg";這是一個(gè)指向 void 的指針; 用于變量的地址、結(jié)構(gòu)體地址、或者函數(shù)的地址等; 假如需要,可以創(chuàng)建多個(gè)相同的任務(wù),使用相同的代碼(相同任務(wù)體),而產(chǎn)生有不同的運(yùn)行結(jié)果;45、只運(yùn)行一次的任務(wù)終止時(shí)必需通過(guò)調(diào)用OSTaskDel 刪除自己;這樣可以使系統(tǒng)中的任務(wù)數(shù)削減;46、一個(gè)任務(wù)可以創(chuàng)建其它任務(wù)( 調(diào) OSTaskCreate )、 停止或者復(fù)原其它

16、調(diào)用 OSTaskSuspned 和 OSTaskResume 、 提交信號(hào)量到其它任務(wù)、 發(fā)送消息到其它任務(wù)、 供應(yīng)共享資源等; 換句話說(shuō),任務(wù)不是只被限制于 “等待大事 ”;47、在嵌入式系統(tǒng)中動(dòng)態(tài)地安排堆棧是被答應(yīng)的,但是,一旦堆棧被動(dòng)態(tài)安排,它就不能被回收;換句話說(shuō),對(duì)于有些不需要被刪除的任務(wù),動(dòng)態(tài)安排它們的堆棧是一種很好的解決方法;48、可以人工地運(yùn)算出任務(wù)需要的堆棧空間大小,逐級(jí)嵌套全部可能被調(diào)用的函數(shù),添加被調(diào)用函數(shù)中全部的參數(shù),添加上下文切換時(shí)的 CPU寄存器空間,添加切換到中斷時(shí)所需的CPU 寄存器空間,精選名師 優(yōu)秀名師 - - - - - - - - - -第 8 頁(yè),共

17、 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -添加處理ISRs所需的堆棧空間;把上述的全部相加,得到的值定義為最小的需求空間;由于我們不行能運(yùn)算出精確的堆棧空間;通常是再乘以1.5 以確保任務(wù)的安全運(yùn)行;49、另一種防止堆棧溢出的方法是安排的空間遠(yuǎn)大于可能需要的; 第一, 當(dāng)任務(wù)創(chuàng)建時(shí)其堆棧被清零;程序運(yùn)行一段時(shí)間后,通過(guò)一個(gè)低優(yōu)先級(jí)任務(wù),運(yùn)算該任務(wù)整個(gè)堆棧中值為0的內(nèi)存大?。贿@是一種特別有效的方法;留意的是, 程序需用運(yùn)行很長(zhǎng)的時(shí)間以讓堆棧達(dá)到其需要的最大值;50、從用戶的觀點(diǎn)來(lái)看,任務(wù)可以是有5種狀態(tài),休眠狀態(tài),

18、就緒狀態(tài),運(yùn)行狀態(tài),掛起狀態(tài),中斷狀態(tài);51、調(diào)用 OSTaskSuspend 會(huì)任務(wù)無(wú)條件地停止運(yùn)行;有些時(shí)候調(diào)用 OSTaskSuspend不是為了等待某個(gè)大事的發(fā)生,而是等待另一 個(gè)任務(wù)調(diào)用OSTaskResume 函數(shù)復(fù)原這個(gè)任務(wù);52、任務(wù)掌握塊是被uC/OS-III用于愛(ài)護(hù)任務(wù)的一個(gè)結(jié)構(gòu)體;每個(gè)任務(wù)都必需有自的己TCB;TCB中的一些變量可以依據(jù)詳細(xì)應(yīng)用進(jìn)行裁剪;用戶程序不應(yīng)當(dāng)拜訪這些變量(特殊不能更換它們)53、有些處理器有硬件寄存器可以自動(dòng)地檢測(cè)并確保堆棧不發(fā)生溢 出, 假如處理器沒(méi)有這些硬件施,ucos-iii 的堆棧檢測(cè)可以用軟件模擬; 然而,軟件模擬不如硬件牢靠;精選名師

19、 優(yōu)秀名師 - - - - - - - - - -第 9 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -54、在 uC/OS-III初始化的時(shí)候,它會(huì)創(chuàng)建至少2個(gè)內(nèi)部的任務(wù)OS_IdleTask和 OS_TickTask, 3個(gè)可挑選的任務(wù)( OS_StatTask , OS_TmrTaks, OS_IntQTask);這些可挑選的任務(wù)在編譯時(shí)由OS_CFG.H 中的配置打算;55、當(dāng) CPU中沒(méi)有其它就緒任務(wù)運(yùn)行時(shí),閑暇會(huì)被運(yùn)行;閑暇任務(wù)是一個(gè)無(wú)限循環(huán)的不會(huì)等待任何大事的任務(wù);閑暇任務(wù)的每次循環(huán), 都會(huì)調(diào)用O

20、SIdleTaskHook函數(shù),這個(gè)函數(shù)供應(yīng)應(yīng)用戶擴(kuò)展應(yīng)用,如讓處理器進(jìn)入低功耗模式等;56、) 使用硬件定時(shí)器并被設(shè)置為以10到 1000Hz之間的頻率產(chǎn)生時(shí)基中斷,時(shí)基中斷并不是肯定要用CPU產(chǎn)生, 事實(shí)上,它可以從其他的具有較精確的周期性時(shí)間源中獲得,比如電源線( 50-60Hz)等;57、當(dāng)時(shí)基任務(wù)執(zhí)行時(shí), 它會(huì)遍歷掛起隊(duì)列中全部等待期滿的任務(wù)或等待大事超時(shí)的任務(wù);它會(huì)就緒時(shí)基列表中的那些期滿、超時(shí)的任務(wù);使用輪轉(zhuǎn)法遍歷隊(duì)列(此隊(duì)列為二維數(shù)組的形式)大大削減了遍歷隊(duì)列所占用 CPU 的時(shí)間;58、統(tǒng)計(jì)任務(wù)能夠統(tǒng)計(jì)總的CPU使用率 ,每個(gè)任務(wù)的CPU 使用率,每個(gè)任務(wù)的堆棧使用量;精選名

21、師 優(yōu)秀名師 - - - - - - - - - -第 10 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -59 軟件定時(shí)器通常需要的頻率可由用戶設(shè)置,通過(guò)軟件將時(shí)基分頻;換句話說(shuō)假如時(shí)基速率為1000Hz, 但是想要的定時(shí)器速率為10Hz, 軟件定時(shí)器任務(wù)會(huì)每100 個(gè)時(shí)基被標(biāo)記一次;時(shí)基任務(wù)的優(yōu)先級(jí)要 高于定時(shí)器任務(wù),定時(shí)器任務(wù)的優(yōu)先級(jí)需要于統(tǒng)計(jì)任務(wù)60、當(dāng)一個(gè)任務(wù)創(chuàng)建了一個(gè)具有相同優(yōu)先級(jí)的任務(wù),這個(gè)新任務(wù)會(huì)被添加到該優(yōu)先級(jí)隊(duì)列的尾部(由于具有相同優(yōu)先級(jí)情形下,沒(méi)有理由讓新任務(wù)先運(yùn)行);然而,當(dāng)一個(gè)任務(wù)創(chuàng)建

22、了一個(gè)具有不同優(yōu)先級(jí) 的任務(wù)時(shí),這個(gè)新的任務(wù)就會(huì)放到對(duì)應(yīng)優(yōu)先級(jí)列表中的首部;留意: 正在運(yùn)行的任務(wù)也被放在就緒列表中;61 會(huì)發(fā)生調(diào)度的調(diào)度點(diǎn):任務(wù)被標(biāo)記或發(fā)送消息給另一個(gè)任務(wù)、任務(wù)調(diào)用OSTimeDly或 OSTimeDlyHMSM 、任務(wù)所等待的大事發(fā)生或超時(shí)、任務(wù)被取消掛起、新任務(wù)被創(chuàng)建、任務(wù)被刪除、內(nèi)核對(duì)象被刪除、任務(wù)轉(zhuǎn)變自身的優(yōu)先級(jí)或其它任務(wù)的優(yōu)先級(jí)、任務(wù)通過(guò)調(diào)用 OSTaskSuspend 停止自身、任務(wù)調(diào)用OSTaskResume 復(fù)原其它停止了的任務(wù)、退出中斷服務(wù)程序、通過(guò)調(diào)用 OSSchedUnlock 調(diào)度器被解鎖、調(diào)用OSSchedRoundRobinYield任務(wù)舍棄了

23、安排給它的時(shí)間片、用戶調(diào)用OSSched62、任務(wù)提交一個(gè)大事后調(diào)用調(diào)度器;當(dāng)然, 任務(wù)可以一次性提交多個(gè)大事,但在最終一個(gè)大事提交后才調(diào)用調(diào)度器;精選名師 優(yōu)秀名師 - - - - - - - - - -第 11 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -63、uC/OS-III有 2種調(diào)度方式:OSSched 被用于任務(wù)級(jí);OSIntExit 被用于中斷級(jí);由于中斷產(chǎn)生時(shí)已經(jīng)將任務(wù) A 的狀態(tài)儲(chǔ)存在任務(wù) A 的堆棧中,所以 ISR 返回時(shí)無(wú)需再儲(chǔ)存任務(wù) A 的狀態(tài),而是直接載入任務(wù) B 的 CPU 寄存

24、器到硬件 CPU 寄存器中即可64、當(dāng) uC/OS-III轉(zhuǎn)向執(zhí)行另一個(gè)任務(wù)的時(shí)候,它儲(chǔ)存了當(dāng)前任務(wù)的CPU寄存器到堆棧;并從新任務(wù)堆棧中相關(guān)內(nèi)容載入 CPU寄存器 ;這個(gè)過(guò)程叫做上下文切換; 上下文切換需要一些開(kāi)支;CPU的寄存器越多,開(kāi)支越大;上下文切換的時(shí)間基本取決于有多少個(gè)CPU 寄存器需要被儲(chǔ)備和載人; 儲(chǔ)存狀態(tài)寄存器和程序指針寄存器到當(dāng)前的任務(wù)堆棧;儲(chǔ)存的次序與中斷發(fā)生時(shí)CPU儲(chǔ)存寄存器的次序相 同;65、CPU處理中斷有兩種模式:1全部的中斷指向同一個(gè)ISR2每個(gè)中斷指向各自的ISR;) ISR的工作完成后,用戶必需調(diào)用OSIntExit告知 uC/OS-III 中斷服務(wù)程序已經(jīng)

25、完成;66、uC/OS-III有兩種方法處理來(lái)自于中斷的時(shí)間;直接提交和推遲提交; 其區(qū)分在于如何處置中斷中所產(chǎn)生的大事;推遲提交的方式為大事不是直接發(fā)送給任 務(wù), 而是先發(fā)送到中斷隊(duì)列;然后中斷處理任務(wù)(其優(yōu)先級(jí)為0)被就緒,這樣,大事的提交便可在任務(wù)級(jí)完成,從而削減了ISR 處理的時(shí)間;67、uC/OS-III必需有系統(tǒng)時(shí)基是普遍的誤會(huì);事實(shí)上,很多低功耗應(yīng)用中沒(méi)有系統(tǒng)時(shí)基, 由于需額外的能量用于愛(ài)護(hù)時(shí)基源;換句話精選名師 優(yōu)秀名師 - - - - - - - - - -第 12 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - -

26、 - - - - -說(shuō) , 將能量用于愛(ài)護(hù)時(shí)基源是不合理的;由于uC/OS-III是一個(gè)可搶占式內(nèi)核,一個(gè)大事可以喚醒進(jìn)入低功耗模式處理器(按鍵或其 它大事)沒(méi)有時(shí)基意味著用戶不能再對(duì)任務(wù)進(jìn)行延時(shí)或超時(shí)設(shè)置;用戶在研發(fā)低功耗產(chǎn)品時(shí)可以考慮這個(gè)特性;68、任務(wù)在掛起隊(duì)列中是依據(jù)優(yōu)先級(jí)分類的;高優(yōu)先級(jí)任務(wù)被放置在隊(duì)列的頭部,低優(yōu)先級(jí)任務(wù)被放置在隊(duì)列的尾部;69、任務(wù)不是直接鏈接到掛起隊(duì)列中,而是通過(guò)叫 OS_PEND_DATA的結(jié)構(gòu)體作為媒介;這個(gè)媒介在任務(wù)被掛起時(shí)安排到任務(wù)堆棧的; 掛起隊(duì)列中的對(duì)應(yīng)指針指向該結(jié)構(gòu)體;70、延時(shí)函數(shù) OSTimeDly,任務(wù)調(diào)用這個(gè)函數(shù)后就會(huì)被掛起直到期滿;以時(shí)基

27、為單位,但需留意,當(dāng)任務(wù)在時(shí)基中斷將要到來(lái)時(shí)被掛起,那么實(shí)際的延時(shí)時(shí)基會(huì)少1個(gè)時(shí)基;這個(gè)函數(shù)可以有設(shè)置為三種模式:相對(duì)延時(shí)模式,周期性延時(shí)模式,肯定延時(shí)模式(用于對(duì)時(shí)間要求很高的應(yīng)用);71、uC/OS-III 定 時(shí) 器 的 分 辨 率 決 定 于 時(shí) 基 頻率;定時(shí)器可以被設(shè)置為 3 種模式:一次性定時(shí)模式, 無(wú)初始定時(shí)周期模式, 有初始定時(shí)周期模式 ;假如定時(shí)器被停止, 那其定時(shí)值也將被停止,直到定時(shí)器被復(fù)原時(shí), 定時(shí)器值連續(xù)被遞減; 不能在定時(shí)器的執(zhí)行代碼中等待大事發(fā)生; 否就定時(shí)器任務(wù)會(huì)被掛起, 導(dǎo)致定時(shí)器任務(wù)崩潰;精選名師 優(yōu)秀名師 - - - - - - - - - -第 13

28、頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -72、uC/OS-III可能要愛(ài)護(hù)上百個(gè)定時(shí)器;使用定時(shí)器列表會(huì)大大降低更新定時(shí)器列表所占用的CPU時(shí)間;定時(shí)器列表類似于時(shí)基列表,以二維數(shù)組的形式儲(chǔ)備記錄;73、uC/OS-III 供應(yīng)關(guān)中斷方式、 鎖調(diào)度器方式、 、信號(hào)量方式、 mutex 方式愛(ài)護(hù)共享資源;只有任務(wù)才答應(yīng)使用信號(hào)量,ISR 是不答應(yīng)的;用信號(hào)量愛(ài)護(hù)共享資源不會(huì)導(dǎo)致中斷推遲;當(dāng)任務(wù)在執(zhí)行信號(hào)量所愛(ài)護(hù)的共享資源時(shí), ISR 或高優(yōu)先級(jí)任務(wù)可以搶占該任務(wù);74、信號(hào)量常常被過(guò)度使用;很多情形下,拜訪

29、一個(gè)簡(jiǎn)短的共享資源 時(shí)不舉薦使用信號(hào)量,懇求和釋放信號(hào)量會(huì)消耗CPU 時(shí)間;通過(guò)關(guān) /開(kāi)中斷能更有效地執(zhí)行這些操作;信號(hào)量會(huì)導(dǎo)致一種嚴(yán)峻的問(wèn)題:優(yōu)先級(jí)反轉(zhuǎn);75、優(yōu)先級(jí)反轉(zhuǎn)是實(shí)時(shí)系統(tǒng)中的一個(gè)常見(jiàn)問(wèn)題,僅存在于基于優(yōu)先級(jí)的搶占式內(nèi)核中; uC/OS-III 支持一種特殊類型的二值信號(hào)量叫做mutex,用于解決優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題;76、死鎖,就是兩個(gè)任務(wù)相互等待對(duì)方所占用的資源的情形;除一般 的防死鎖方式外, uC/OS-II 仍可以在申請(qǐng)信號(hào)量或mutex 時(shí)答應(yīng)設(shè)置其期限,這樣能防止死鎖,但是同樣的死鎖可能稍后再次顯現(xiàn);77、uC/OS-III 中用于同步的兩種機(jī)制:信號(hào)量和大事標(biāo)志組;兩個(gè)任務(wù)間可以用一個(gè)信號(hào)量實(shí)現(xiàn)單向同步,用兩個(gè)信號(hào)量實(shí)現(xiàn)雙向同步;當(dāng)任務(wù)要與多個(gè)大事同步時(shí)可以使用大事標(biāo)志;如其中的任意一精選名師 優(yōu)秀名師 - - - - - - - - - -第 14 頁(yè),共 16 頁(yè) - - - - - - - - - -精品word 名師歸納總結(jié) - - - - - - - - - - - -個(gè)大事發(fā)生時(shí)任務(wù)被就緒, 叫做規(guī)律或 OR;如全部的大事都發(fā)生時(shí)任務(wù)被就緒,叫做規(guī)律與(AND );78、有些情形下任務(wù)或ISR 與另一個(gè)任務(wù)間進(jìn)行通信, 這種信息交換叫做作業(yè)間的通信;可以有兩種方法實(shí)現(xiàn)這種通信:全局變量、發(fā)送 消息;需留意的是: 任務(wù)與

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論