應(yīng)對(duì)無(wú)線多媒體挑戰(zhàn)(05-100)
一個(gè)RTXC/SS線程是按C函數(shù)編程的,但實(shí)體中不設(shè)上下文關(guān)系,當(dāng)它將處理器控制返還給調(diào)度表時(shí)也不存放任何參數(shù)。不設(shè)上下文關(guān)系使從進(jìn)度表至線程這一過(guò)程十分迅速,具備在要求的操作期限內(nèi)完成響應(yīng)的明顯優(yōu)點(diǎn)。在線程的執(zhí)行周期內(nèi),它不能直接等待一個(gè)系統(tǒng)事件。不設(shè)上下文關(guān)系和不能被阻斷是區(qū)別線程和任務(wù)的兩個(gè)主要屬性。
本文引用地址:http://www.butianyuan.cn/article/91483.htm由于線程沒(méi)有上下文關(guān)系,必須在它實(shí)體內(nèi)完成所需全部數(shù)據(jù)的初始化。當(dāng)操作后,線程返回調(diào)度表不帶返回,也不在堆棧中留下任何運(yùn)算數(shù)據(jù)。
線程存在于用戶定義的優(yōu)先級(jí)內(nèi)。用戶可以定義多個(gè)優(yōu)先級(jí),較高優(yōu)先級(jí)的線程能搶占在較低優(yōu)先級(jí)執(zhí)行的線程。要是處于同一優(yōu)先級(jí),那么就不能搶占正在執(zhí)行的線程,在調(diào)度表準(zhǔn)予它控制處理器前只能等待當(dāng)前的線程完成執(zhí)行周期。
RTOS工具的基本特性是如何管理堆棧,這是它的傳統(tǒng)。RISC RTOS 通常支持多個(gè)堆棧(OS1個(gè),每個(gè)任務(wù)各1個(gè),管理程序和用戶堆棧)、而DSP RTOS 只管理單個(gè)堆棧。這是由于DSP系統(tǒng)中任務(wù)/線程的數(shù)量少且同步事項(xiàng)相對(duì)簡(jiǎn)單,因而單堆棧實(shí)現(xiàn)是最高效率的,也是相對(duì)安全的。
多堆棧實(shí)現(xiàn)
與單堆棧RTOS不同,控制RTOS使用多堆棧,這樣可為大量的任務(wù)提供分離和控制。由于堆棧必須在上下關(guān)系切換時(shí)間或發(fā)生中斷時(shí)交換,因此它的效率不高。然而,堆棧在一個(gè)特定任務(wù)內(nèi)多少有點(diǎn)獨(dú)立的,與RTOS保持分離,即便是某些任務(wù)失敗時(shí)也還要繼續(xù)進(jìn)行下去。
這類RTOS涉及更多的設(shè)計(jì)復(fù)雜性,應(yīng)用開(kāi)發(fā)人員通常自己不編寫,而是傾向于購(gòu)買現(xiàn)成的多堆棧RTOS。由于市場(chǎng)需求量大,很多RTOS供應(yīng)商,包括Wind River、Enea、 Green Hills、Quadros等都提供多驅(qū)動(dòng)、多堆棧RTOS。
多堆棧內(nèi)核程序(圖2)既是傳統(tǒng)的,又是靈活的一種多任務(wù)內(nèi)核體系結(jié)構(gòu),旨在下列應(yīng)用中使用:通信、汽車、過(guò)程控制以及儀表系統(tǒng)。
這種體系結(jié)構(gòu)對(duì)需要快速中斷響應(yīng)時(shí)間和在任務(wù)間快速而又確定的切換的系統(tǒng)是十分理想的。每個(gè)任務(wù)都有自己的堆棧,讓它與系統(tǒng)事件同步;它清空系統(tǒng)堆棧,供處理內(nèi)核服務(wù)程序以及中斷服務(wù)例行程序使用。
每個(gè)堆棧都具有自己的優(yōu)先權(quán),缺省的任務(wù)調(diào)度策略是根據(jù)優(yōu)先權(quán)來(lái)?yè)屜鹊?。多堆棧調(diào)度表將處理器控制權(quán)指定給準(zhǔn)備運(yùn)行的最高優(yōu)先權(quán)任務(wù)。當(dāng)較高優(yōu)先權(quán)任務(wù)準(zhǔn)備運(yùn)行而低優(yōu)先權(quán)任務(wù)控制著處理器時(shí),調(diào)度表會(huì)搶占低優(yōu)先權(quán)任務(wù),將處理器控制權(quán)授予較高優(yōu)先權(quán)任務(wù)中的一個(gè)。除了搶先調(diào)度安排,對(duì)同等優(yōu)先權(quán)任務(wù),內(nèi)核程序還支持循環(huán)配置和時(shí)間分片調(diào)度。某些堆棧RTOS允許使用有別于時(shí)間的其它變量,讓時(shí)間分片成為制約任務(wù)執(zhí)行持續(xù)時(shí)間的通用解決方案。
在很多多堆棧環(huán)境中,除了任務(wù)還有3種附加代碼實(shí)體:內(nèi)核服務(wù)API、內(nèi)核服務(wù)程序以及中斷服務(wù)例行程序。任務(wù)和中斷服務(wù)例行程序執(zhí)行應(yīng)用要求的操作,并通過(guò)它們相關(guān)聯(lián)的API功能調(diào)用內(nèi)核服務(wù)程序來(lái)影響系統(tǒng)的行為。
多堆棧內(nèi)核程序支持內(nèi)核目標(biāo)代碼的類別,而內(nèi)核服務(wù)程序支持這些目標(biāo)代碼。設(shè)置目標(biāo)代碼是為:任務(wù)同步、傳送數(shù)據(jù)、管理事件與計(jì)數(shù)器、報(bào)警、管理內(nèi)存以及專用實(shí)體訪問(wèn)。憑借系統(tǒng)設(shè)計(jì)知識(shí),系統(tǒng)開(kāi)發(fā)人員可用實(shí)用程序來(lái)選擇目標(biāo)代碼類別以及它們的屬性,以便調(diào)整代碼的大小和滿足應(yīng)用要求最佳配置的內(nèi)核特性。多堆棧內(nèi)核程序的規(guī)模是隨它最初定位的應(yīng)用而變化的,通常RTXC多堆棧RTOS在4.5KB與20KB這間,這取決于處理器和編釋器的效率。
圖2 典型的多堆棧RTOS體系結(jié)構(gòu)
霍爾傳感器相關(guān)文章:霍爾傳感器工作原理
電度表相關(guān)文章:電度表原理
霍爾傳感器相關(guān)文章:霍爾傳感器原理
評(píng)論