嵌入式實時操作系統(tǒng)BIOS_第1頁
嵌入式實時操作系統(tǒng)BIOS_第2頁
嵌入式實時操作系統(tǒng)BIOS_第3頁
嵌入式實時操作系統(tǒng)BIOS_第4頁
嵌入式實時操作系統(tǒng)BIOS_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

TIDSP/BIOS機(jī)電學(xué)院:Yys實時操作系統(tǒng)的概述DSP/BOIS簡介DSP/BIOS的功能及分析前言1.1什么是RTOS?RTOS稱為實時多義務(wù)操作系統(tǒng)(Real-TimeOperatingSystem),是嵌入式運(yùn)用軟件的根底和開發(fā)平臺,它是一段嵌入在目的代碼中的軟件,用戶的其它運(yùn)用程序都建立在RTOS之上。RTOS還是一個可靠性和可信性很高的實時內(nèi)核,將CPU時間、中斷、I/O和定時器等資源都包裝起來,留給用戶一個規(guī)范的API接口,并能根據(jù)各個義務(wù)的優(yōu)先級,合理地在不同義務(wù)之間分配CPU時間。1.2 用RTOS有什么益處?RTOS是針對不同處置器優(yōu)化設(shè)計的高效率實時多義務(wù)內(nèi)核。據(jù)專家預(yù)測,在優(yōu)秀RTOS上跨處置器平臺的程序移植只需求修正1%~5%的內(nèi)容。它的引入處理了嵌入式軟件開發(fā)規(guī)范化的難題。基于RTOS開發(fā)出來的程序具有較高的可移植性,引入RTOS相當(dāng)于引入了一個新的管理方式,可減少反復(fù)勞動,提高知識創(chuàng)新效率。隨著DSP性能的不斷改良,目前多種型號的DSP承繼了大量外設(shè)器件,DSP逐漸從高速數(shù)字處置引擎轉(zhuǎn)變成具備多種微控制功能的芯片。因此在實踐運(yùn)用中DSP在繼續(xù)用來完成算法的同時,還要完成包括信號采樣,驅(qū)動控制,通訊等義務(wù)在內(nèi)的整個系統(tǒng)的功能。DSP中混合各種各樣的算法,同時要完成高性能控制,通訊,在這種情況下就更需求兼顧系統(tǒng)的實時性。傳統(tǒng)的前后臺方式曾經(jīng)難以滿足實踐要求?!瞮cos/uclinux/bios〕一切的DSP/BIOS對象都可以在配置工具中靜態(tài)建立;實時監(jiān)測數(shù)據(jù)在主機(jī)端做格式化處置;API函數(shù)是模塊化的,只需運(yùn)用程序用到的API模塊才會和運(yùn)用程序鏈接在一同;為到達(dá)最快的運(yùn)轉(zhuǎn)速度,大部分函數(shù)用匯編言語編寫;目的處置器和主機(jī)分析工具之間的通訊在后臺空閑循環(huán)中完成,這樣不會影響運(yùn)用程序的運(yùn)轉(zhuǎn)。假設(shè)CPU太忙,不能執(zhí)行后臺義務(wù),DSP/BIOS分析工具會停頓從目的處置器接納信息?!搽[式/顯式〕2.1DSP/BIOS概述DSP/BIOS的定義

DSP/BIOS是一個可晉級的實時內(nèi)核。它主要是為需求實時調(diào)度和同步以及主機(jī)-目的系統(tǒng)通訊和實時監(jiān)測〔Instrumentation〕的運(yùn)用而設(shè)計的。DSP/BIOS是集成到CCS中的,不需求額外的費(fèi)用。但不提供源碼。DSP/BIOS是TI’seXpressDSP技術(shù)的重要組成部分。DSP/BIOS本身占用極少的CPU資源,提供豐富的面向用戶的運(yùn)用程序編程接口〔API〕和程序開發(fā)工具。主要包括以下中心模塊:1.義務(wù)調(diào)度模塊〔HWI/SWI/TSK〕2.進(jìn)程同步模塊(SEM/QUE/MBX)3.數(shù)據(jù)輸入輸出模塊(PIP/SIO)4.調(diào)試模塊(LOG/STS)利用這些功能用戶可以比較方便的編寫各種構(gòu)造復(fù)雜,實時性強(qiáng),運(yùn)轉(zhuǎn)效率高的運(yùn)用軟件,降低了軟件開發(fā)的難度,提高了調(diào)試效率。3.1 dsp/bios中的時鐘用戶可以往DSP/BIOS配置中定義DSP/BIOS系統(tǒng)時鐘參數(shù)。除了系統(tǒng)時鐘之外,用戶可以建立其它時鐘對象〔CLK,PRD〕,實如今每次定時器中斷發(fā)生時觸發(fā)某函數(shù)的執(zhí)行。很多DSP/BIOS的API函數(shù)都有一個超時的函數(shù)。DSP/BIOS會運(yùn)用系統(tǒng)時鐘來判別能否超時。3.1DSP/BIOS中的時鐘模塊高分辯率

計時Globalsetting中設(shè)置主頻,〔C2000〕低分辯率

計時系統(tǒng)時鐘PRD管理器的屬性頁的

“UseCLKManagerto

DrivePRD〞控制能否

運(yùn)用CLK管理器驅(qū)動系統(tǒng)時鐘PRD對象假設(shè)不用低分辨率時鐘驅(qū)動,

那么設(shè)置Micrsecends/tickCLK管理器的屬性中設(shè)置:

時鐘周期存放器的值,

以決議中斷發(fā)生的時間間隔PRD對象的屬性中設(shè)置幾次系統(tǒng)時鐘tick運(yùn)轉(zhuǎn)一次PRD函數(shù)3.1.1系統(tǒng)中的高/低分辨率時鐘DSP/BIOS提供了兩種獨(dú)立的時鐘管理方法:高分辨率和低分辨率的時鐘管理。在默許設(shè)置中,系統(tǒng)時鐘運(yùn)用低分辨率的時鐘管理。每當(dāng)進(jìn)入一次定時器中斷效力程序時,低分辨率的計數(shù)器加1,因此,低分辨率的計數(shù)器記錄了定時器中斷發(fā)生的次數(shù),也就是說低分辨率的時鐘與定時器中斷時鐘一一致。而高分辨率時鐘是定時器的計數(shù)存放器被減的次數(shù)?!矊τ?8X系列就是低分辨率乘以TIMERPRD的值〕CLK模塊為用戶周期性調(diào)用提供方法,同時對一些代碼評價工具提供了時間參考。實踐上CLK模塊完全依賴于DSP的定時器中斷。CLK管理器還允許隨意建立各種時鐘函數(shù),當(dāng)定時器中斷發(fā)生時,CLK管理器就執(zhí)行這些時鐘函數(shù)。當(dāng)定時器減至0時,便產(chǎn)生定時器中斷。內(nèi)核進(jìn)入中斷效力子程序CLK_F_isr函數(shù)。3.1.2時鐘管理模塊CLK3.1.3周期函數(shù)管理模塊PRD許多運(yùn)用程序都需求根據(jù)I/O口可用性或其它可編程的事件來調(diào)度函數(shù)。其他的運(yùn)用程序那么基于實時時鐘來調(diào)度函數(shù)。用戶可以創(chuàng)建多個PRD對象,但它們都由同一個系統(tǒng)時鐘驅(qū)動。它的周期是以系統(tǒng)時鐘為單位。3.2dsp/bios中的線程許多實時DSP運(yùn)用都需求同時執(zhí)行許多不相關(guān)的功能(functions,函數(shù)),這些功能普通是對外部事件的呼應(yīng).這些功能就叫線程.DSP/BIOS定義線程為任何獨(dú)立的指令流.可以是一個函數(shù),或一個中斷效力程序.DSP/BIOS使運(yùn)用程序按線程構(gòu)造化設(shè)計,每個線程完成一個模塊化的功能.多線程程序中允許高優(yōu)先級線程搶占低優(yōu)先級線程,以及線程間的同步和通訊.3.2dsp/bios中的線程DSP/BIOS支持多種不同優(yōu)先級的線程,每種線程的類型都有不同的執(zhí)行和搶占特性。這些線程按照優(yōu)先級從高到低的順序陳列如下:1.硬件中斷〔HWI〕,包括CLK函數(shù)2.軟件中斷〔SWI〕,包括PRD函數(shù)3.義務(wù)〔TSK〕4.空閑循環(huán)〔IDL〕3.2.1硬件中斷硬件中斷是用來處置運(yùn)用程序呼應(yīng)外部異步事件必需執(zhí)行的關(guān)鍵義務(wù)。在典型的DSP運(yùn)用中,硬件中斷是由片上外設(shè)或外部設(shè)備觸發(fā)的,然后跳轉(zhuǎn)地址。硬件中斷ISR可以運(yùn)用匯編,C言語或兩種混合編寫。一切硬件中斷會不斷運(yùn)轉(zhuǎn)到終了〔可以被搶占〕。即使被觸發(fā)多次,該ISR也只運(yùn)轉(zhuǎn)一次。因此用戶必需盡量減小HWI函數(shù)執(zhí)行的代碼量。當(dāng)硬件中斷產(chǎn)生之后,DSP/BIOS就會調(diào)用相應(yīng)的HWI函數(shù)。假設(shè)把HWI設(shè)置為Dispatch的話,那么會在調(diào)用HWI函數(shù)的前后自動調(diào)用HWI_enter和HWI_exit。3.2.2軟件中斷DSP/BIOS的SWI模塊提供了軟件中斷的才干。經(jīng)過在程序中調(diào)用一個API函數(shù),即可觸發(fā)中斷。優(yōu)先級介于硬件中斷與義務(wù)之間。適用于處置頻率較低或者實時性沒有硬件中斷嚴(yán)厲的程序作業(yè)。當(dāng)軟件中斷被觸發(fā)時,它會在等待中的硬件中斷都執(zhí)行完后才開場執(zhí)行。正在運(yùn)轉(zhuǎn)的SWI線程在任何時辰都可以被高優(yōu)先級搶斷。另一方面,SWI線程總能搶占義務(wù)的執(zhí)行。15個優(yōu)先級,為了滿足同一時辰出現(xiàn)的最大數(shù)量的線程搶占,每添加一個優(yōu)先級別,所需的堆棧大小就會添加。3.2.3義務(wù)TSK模塊優(yōu)先級高于空閑但低于HWI和SWI模塊。義務(wù)本身共有15個優(yōu)先級。每個義務(wù)總是處于四種執(zhí)行形狀之一。1.運(yùn)轉(zhuǎn)態(tài)〔Runing〕:代表該義務(wù)正在執(zhí)行2.就緒態(tài)〔Ready〕:曾經(jīng)被調(diào)度等待可用3.阻塞態(tài)〔Blocked〕:等待某個事件或者資源4.終止態(tài)〔Terminated〕:代表義務(wù)曾經(jīng)被終止3.2.4空閑循環(huán)空閑循環(huán)是DSP/BIOS的后臺線程,可以被其它任何一個線程搶占。目的DSP和主機(jī)分析工具間的通訊通常在空閑形狀循環(huán)中執(zhí)行。這保證了分析工具不會影響運(yùn)用程序的處置。3.2dsp/bios中的線程3.2dsp/bios中的線程DSP/BIOS運(yùn)轉(zhuǎn)優(yōu)先級最高的線程當(dāng)下面情況發(fā)生時,不一定運(yùn)轉(zhuǎn)優(yōu)先級最高的線程:

(1)HWI_disable,SWI_disable或TSK_disable被調(diào)用

(2)高優(yōu)先級的義務(wù)處于阻塞時,即調(diào)用了TSK_sleep,LCK_pend,MBX_pend,orSEM_pend.3.2.5線程特點(diǎn)比較3.2.5線程特點(diǎn)的比較HWI和SWI都運(yùn)用系統(tǒng)堆棧,而每個TSK都有本人的堆棧??梢栽赥SK線程之間隨意地相互切換,切換時DSP/BIOS將自動地更新堆棧存放器,因此TSK線程可以被阻塞。這樣TSK就可以寫成一個死循環(huán):

While(1){

Do_some_task();

Yield_to_other_task();

}

Do_some_task做這個TSK所要做的事情,Yield_to_oth

溫馨提示

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

評論

0/150

提交評論