<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è) > 測試測量 > 設計應用 > 如何將RTOS添加到您的Zynq SoC設計中

如何將RTOS添加到您的Zynq SoC設計中

作者:AdamP.Taylor 時(shí)間:2015-04-29 來(lái)源:電子產(chǎn)品世界 收藏

  1 什么是實(shí)時(shí)操作系統?

本文引用地址:http://dyxdggzs.com/article/273351.htm

  實(shí)時(shí)操作系統是確定的,意思是指系統需要在明確的截止時(shí)間內做出響應。這種確定性很重要,其原因有多種,例如,如果最終應用正在監控工業(yè)流程,那么必須在特定時(shí)段內對事件做出響應,工業(yè)控制系統就屬于這類(lèi)情況。

  可根據滿(mǎn)足截止時(shí)間的能力對進(jìn)一步分類(lèi)為三種不同類(lèi)型的,每種類(lèi)型都以不同方式滿(mǎn)足截止時(shí)間。在hard 中,錯過(guò)截止時(shí)間被視為系統錯誤。而對于firm RTOS就不是這樣,偶爾錯過(guò)截止時(shí)間是可以接受的。在soft RTOS中,錯過(guò)一次截止時(shí)間會(huì )減少結果的有效性,但系統在整體上對此是可以接受的。

  實(shí)時(shí)操作系統以運行任務(wù)為核心,每項任務(wù)執行規定的功能。例如,某個(gè)任務(wù)可能通過(guò)接口讀取數據,或對數據執行某種操作。簡(jiǎn)單的系統可能只運行一項任務(wù),但采用分時(shí)法,每個(gè)任務(wù)都會(huì )獲得處理器上的一個(gè)專(zhuān)用時(shí)間檔,而更高優(yōu)先級的任務(wù)還可分配多個(gè)時(shí)間檔。更多情況下處理器上會(huì )同時(shí)運行多項任務(wù)。這些任務(wù)間的轉換被稱(chēng)為“上下文切換”,它要求將與每項任務(wù)關(guān)聯(lián)的處理器狀態(tài)存儲并添加到任務(wù)棧中。

  下一步運行哪項任務(wù)將由內核來(lái)控制。該內核是RTOS的核心,用來(lái)管理軟件的輸入與輸出請求,并將它們轉換為處理器中央處理單元和功能元件能識別的數據處理指令。任務(wù)調度可能比較復雜,尤其是當需要避免死鎖(指兩個(gè)或更多任務(wù)相互鎖定)時(shí)更是如此。兩種基本調度方法分別是分時(shí)法和事件驅動(dòng)法。采用分時(shí)法,每項任務(wù)都會(huì )獲得處理器上的一個(gè)專(zhuān)用時(shí)間檔,而更高優(yōu)先級的任務(wù)還可分配多個(gè)時(shí)間檔。時(shí)間分段通過(guò)定期中斷或定時(shí)器進(jìn)行控制,這種方法通常被稱(chēng)為 “輪詢(xún)調度”。而采用事件驅動(dòng)方案,只有當具有更高優(yōu)先級的任務(wù)需要運行時(shí)才會(huì )進(jìn)行任務(wù)切換。這種方法通常稱(chēng)為“搶先式調度”。

  2 死鎖、資源共享和互斥等待

  當兩個(gè)或兩個(gè)以上進(jìn)程(例如UART、ADC或DAC)需要使用相同資源時(shí),它們可以同時(shí)對該資源提出請求。這種情況下,應對訪(fǎng)問(wèn)進(jìn)行控制以防出現爭用現象。如何對此進(jìn)行管理非常重要,若不采用正確的管理方法,就會(huì )出現“死鎖”或“互斥等待”這樣的問(wèn)題,從而導致系統錯誤。

  當某個(gè)進(jìn)程占用一種資源且無(wú)法將其釋放時(shí),就會(huì )出現死鎖,因為在這種情況下無(wú)法完成該項任務(wù)。該進(jìn)程需要使用當前被另一進(jìn)程占用的另一種資源。由于系統無(wú)限期地處于這種狀態(tài),因此可以說(shuō)應用程序已被鎖死??梢韵胂?,死鎖對于實(shí)時(shí)操作系統來(lái)說(shuō)是非常不好的。

  當某個(gè)進(jìn)程因為所需要的資源總是被分配給其它進(jìn)程而無(wú)法運行時(shí),就會(huì )發(fā)生互斥等待。多年來(lái),已經(jīng)有很多關(guān)于這類(lèi)主題的文章和資料,也推薦了很多解決方案,例如Dekker算法,這是一種用于并行程序中互斥問(wèn)題的經(jīng)典解決方法。處理這類(lèi)情況的最常用方法是法,通常分為二進(jìn)制和計數這兩種類(lèi)型。

  通常,為每種資源會(huì )分配一個(gè)二進(jìn)制信號量。請求進(jìn)程會(huì )在任務(wù)執行之前等待資源變?yōu)榭捎觅Y源。一旦任務(wù)完成,請求進(jìn)程就會(huì )釋放該資源。這些信號量通常被稱(chēng)為等待(WAIT)和發(fā)信號(SIGNAL)操作。進(jìn)程首先等待信號量。如果資源閑置,進(jìn)程將被賦予該資源的控制權,并運行直到完成,此時(shí)進(jìn)程會(huì )發(fā)出完成信號。但是,如果進(jìn)程在等待信號量時(shí)資源已被占用,那么進(jìn)程將會(huì )被暫停直到該資源被釋放為止。當前正在執行的進(jìn)程一旦完成,暫停狀態(tài)就會(huì )立刻終止,但如果具備更高優(yōu)先級的進(jìn)程搶先占用該資源,那么就需要等待更長(cháng)的時(shí)間。通常使用名為互斥鎖(mutexes)的特殊二進(jìn)制信號量來(lái)防止優(yōu)先級反轉的發(fā)生。

  計數信號量的工作方式與二進(jìn)制信號量相同,但是只有當特定資源類(lèi)型有一個(gè)以上的實(shí)例時(shí)才會(huì )使用計數信號量(例如數據存儲)。由于每個(gè)資源都被分配到一個(gè)進(jìn)程中,因此計數數值會(huì )減少以顯示剩余的可用資源數量。當數值減至為零時(shí)可用資源就沒(méi)有了,同時(shí)提出請求的進(jìn)程就會(huì )被暫停,直到有一種資源被釋放為止。

  不同進(jìn)程之間經(jīng)常進(jìn)行通信是很有必要的。最簡(jiǎn)單的方法是按如上所訴的方式使用數據存儲和信號量。更為復雜的技術(shù)包括消息隊列。采用消息隊列,當一個(gè)進(jìn)程需要向另一個(gè)進(jìn)程發(fā)送信息時(shí),它會(huì )向隊列POST一條消息。當一個(gè)進(jìn)程需要從隊列中接收消息時(shí),它會(huì )PEND隊列。因此,消息隊列的工作原理就像FIFO(先入先出)存儲器一樣。

  3 µC/OS-III操作系統

  Micrium的µC/OS-III是一種優(yōu)先式RTOS,意思是指它總是運行已做好執行準備并具有最高優(yōu)先級的任務(wù)。要想將該操作系統添加到您的 SoC系統設計中,第一步需要從Micrium網(wǎng)站下載µC/OS-III RTOS。下載后,安裝工作非常簡(jiǎn)單。您只需要將一些ZIP文件解壓到電腦上賽靈思安裝程序中的正確文件夾(路徑)。

  應確保將名為-7000-ucosiii-bsp.zip的ZIP文件解壓到 ISE_DSEDK sw libbsp文件夾。您會(huì )在此文件夾下看到一些其它操作系統,包括獨立系統和xilkernel。隨后,如圖1所示,將名為-7000-ucosiii-demo.zip的ZIP 文件解壓到\ISE_DSEDKswlibsw_apps文件夾。您會(huì )在此文件夾內看到一些其它應用的演示。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: RTOS SDK 信號量 Zynq μC/OS-III

評論


相關(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>