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