<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 應對無(wú)線(xiàn)多媒體挑戰(05-100)

應對無(wú)線(xiàn)多媒體挑戰(05-100)

——
作者: 時(shí)間:2009-02-20 來(lái)源:電子產(chǎn)品世界 收藏

  一個(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)文章:霍爾傳感器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>