下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、歡迎訪問Freekaoyan論文站基于VDK的AD系列DSP軟件開發(fā)技術(shù)歡迎訪問Freekaoyan論文站 歡迎訪問Freekaoyan論文站 摘要:作為AD系列DSP軟件開發(fā)環(huán)境VisualDSP的一個重要組成部分,VDK特別適合用于開發(fā)需要精巧控制代碼的系統(tǒng)。本文介紹了VDK的原理及基于他開發(fā)應用系統(tǒng)的優(yōu)點。最后給出了一個基于VDK開發(fā)應用系統(tǒng)的簡單例子。 關(guān)鍵詞:VDK;ADSP軟件設計;VisualD
2、SP;AD 當前數(shù)字信號處理器(DSP)已廣泛應用于圖像處理、智能化儀表、通信、自動控制等許多領域。AD公司是全球通用DSP領域最有影響力的廠家之一,VDK(VisualDSPKernel)是AD公司DSP軟件開發(fā)工具VisualDSP的一個重要組成部分,他特別適合用來編寫需要精巧控制代碼的應用程序。某些大型系統(tǒng)可能需要許多算法完成,而每個算法還可能包含許多功能模塊,這要由控制代碼加以組織。處理器日益強大功能的發(fā)揮也需要精巧的控制代碼?;赩DK開發(fā)的程序中,這些控制碼是由一個叫“內(nèi)核”的程序>
3、;' target='_blank' class='infotextkey'>管理的,內(nèi)核常駐在DSP中。1VDK的原理 VDK實際上是一種帶API(Application ProgramInterface)函數(shù)庫的實時操作系統(tǒng)內(nèi)核。下面先對VDK的各個組成部分加以介紹,然后總體描述其工作原理。文中所述的被調(diào)用的函數(shù)均在API函數(shù)庫中。11線程 一個應用程序可以劃
4、分為多個功能模塊,每個模塊可以用一個線程實現(xiàn),線程之間可以互相通信。線程并不是直接定義的,而是先定義線程類型,再由線程類型例化得到。一個線程類型可以有多個例化,也就是說一個系統(tǒng)中多個線程可以屬于相同的線程類型。線程類型實質(zhì)上是各空間VDK下線程類的子類,而線程是該子類例化得到的對象。線程類型創(chuàng)建時被分配一個默認的優(yōu)先級,該優(yōu)先級可以通過調(diào)用函數(shù)SetPriority()改變,同一類型的線程具有相同的優(yōu)先級。每個線程包含5個成員函數(shù):創(chuàng)建函數(shù)、初始化函數(shù)、運行函數(shù)、錯誤處理函數(shù)和銷毀函數(shù)。創(chuàng)建函數(shù)類似于C中類的構(gòu)造函數(shù),用于創(chuàng)建一個線程并為他分配資源。銷毀函數(shù)類似于C中類的析構(gòu)函數(shù),用于銷毀一個
5、線程并釋放其所占資源。包含線程所要完成算法的運行函數(shù)是線程的核心部分,類似于C中的main()函數(shù)。12調(diào)度 調(diào)度是一種>' target='_blank' class='infotextkey'>管理和協(xié)調(diào)線程的機制,他保證優(yōu)先級最高的就緒線程能夠最早占用處理器來運行。所謂就緒,就是線程已經(jīng)具備運行所需的所有數(shù)據(jù)、參數(shù)等資源。調(diào)度在具有最高優(yōu)先級的線程改變時被激發(fā)。調(diào)度的實現(xiàn)基于一種被稱為就緒隊列的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。就緒隊列中的就緒線程先按優(yōu)先級排隊,
6、然后遵循先進先服務的原則占用處理器,如圖1所示。線程最高優(yōu)先級為0,是保留的;最低優(yōu)先級為DSP數(shù)據(jù)字寬減去2,如32 b DSP為30。具有最低優(yōu)先級的線程是預定義的IDLE線程,他在就緒隊列為空時自動運行,使得DSP處于低功耗狀態(tài)。13信號 信號是線程之間進行通信和同步的橋梁。(Semaphore)、事件位和事件(Event and EventBit)、設備標志(Device Flag)。 信標是應用系統(tǒng)
7、中所有線程都可訪問的全局資源的抽象,VisualDSP20中他有2個值:真和假。他的值為真時,表示該資源可用,所有正在等待該信標的線程中優(yōu)先級最高的那一個進入就緒隊列等候運行;他的值為假時,表示該資源已被占用。線程或者中斷服務程序利用信標所代表的資源完成自己的任務后調(diào)用API函數(shù)釋放該資源以便其他線程或者中斷服務程序使用。 事件和事件位是標識系統(tǒng)狀態(tài)的信號,用于協(xié)調(diào)線程的執(zhí)行。事件位用來指示系統(tǒng)某一要素所處狀態(tài);事件是所有事件位按照指定規(guī)則進行布爾操作的結(jié)果。任何一個事件位改變都會導致事件的值被重新計
8、算。信標標識系統(tǒng)資源是否可用,而事件位和事件標識線程中的操作主體利用系統(tǒng)資源完成其工作后所處的狀態(tài)。線程可以調(diào)用PendEvent()等候一個事件發(fā)生。 設備標志是設備驅(qū)動與線程之間聯(lián)系的紐帶。例如他可以將AD采樣數(shù)據(jù)的到來這一事件通知多個等待這些數(shù)據(jù)的線程,而信標、事件和事件位就不能描述他。由于和設備驅(qū)動息息相關(guān),后面將會結(jié)合設備驅(qū)動對設備標志進行詳細介紹。14中斷服務程序 VDK的中斷服務程序必須用匯編語
9、言編寫而且應該比較短小,完成釋放信標、改變事件位、激活設備驅(qū)動、與線程交換數(shù)據(jù)等工作,而所有的計算應該在線程域完成。中斷可以調(diào)用API函數(shù)被允許或禁止。15設備驅(qū)動 基于VDK的應用程序可以分解為2個域:線程域和中斷域。圖2所示線程域中對線程進行>' target='_blank' class='infotextkey'>管理的機制稱為軟件調(diào)度,也就是前文所述的調(diào)度,由內(nèi)核完成;中斷域中對中斷進行>' target='_blan
10、k' class='infotextkey'>管理的機制稱為硬件調(diào)度,由DSP硬件(中斷控制器)完成。硬件調(diào)度和軟件調(diào)度是并行的,但中斷發(fā)生時硬件調(diào)度搶先發(fā)生,這時軟件調(diào)度和線程的優(yōu)先級是無意義的。 眾所周知,操作系統(tǒng)是將鍵盤、顯示器、打印機和通信端口作為擴充文件來處理的,而這種處理是通過設備驅(qū)動程序?qū)崿F(xiàn)的。作為一種操作系統(tǒng)內(nèi)核,VDK也對外部設備進行抽象,可以調(diào)用API函數(shù)對他們進行打開和關(guān)閉、同步讀和同步寫以及控制。設備驅(qū)動是線程域和中斷域之間溝通的橋梁,也是VDK應
11、用程序與外部環(huán)境通信的接口。其代碼既不在線程中也不在中斷服務程序中,而是一個獨立的函數(shù),他也不直接被內(nèi)核和中斷控制器調(diào)度。設備標志是與設備驅(qū)動相關(guān)聯(lián)的信號。一個設備標志為真時,就表示與該標志對應的設備準備好,所有等待該設備標志的線程進入就緒隊列。16API API(Application Programming Interface)是存放應用程序可以調(diào)用的函數(shù)和宏的庫。API函數(shù)庫為VDK提供基本的服務:中斷處理、調(diào)度>' target='_blank' class=
12、39;infotextkey'>管理、線程>' target='_blank' class='infotextkey'>管理、信標>' target='_blank' class='infotextkey'>管理、事件和事件位以及設備標志的傳遞等。 VDK總體工作原理可以用圖3描述。 VDK應
13、用程序以線程域和中斷域為主體,以信號為紐帶,以設備驅(qū)動作為與外部環(huán)境進行通信的接口,以調(diào)度為線程和中斷的>' target='_blank' class='infotextkey'>管理和協(xié)調(diào)機制來完成復雜的控制功能。2使用VDK開發(fā)應用程序的優(yōu)點 使用VDK開發(fā)AD系列DSP應用程序具有以下優(yōu)點: (1)開發(fā)周期比手寫控制代碼要短得多代碼自27動生成、文件
14、模板和設備驅(qū)動的標準接口,使軟件開發(fā)者可以專注于算法和控制流程的設計,而不是程序執(zhí)行的細節(jié)。 (2)調(diào)試方便程序執(zhí)行過程中發(fā)生的線程切換、信號的等待和公布(post)等重要事件可用圖形和圖表直觀地表示出來。 (3)碼的可移植性和可重用性VDK提供了硬件的抽象層,用戶可以用高級語言(C或C)進行同硬件平臺無關(guān)的編程,生成的代碼可以移植到AD公司所有的DSP核中。許多繁瑣的數(shù)據(jù)讀寫等基本工作可以直接調(diào)用API函數(shù)
15、而無需自己編寫。 (4)項目>' target='_blank' class='infotextkey'>管理方便采用基于線程的編程方式,可以把應用程序分解成許多獨立的模塊進行編寫和調(diào)試,為項目>' target='_blank' class='infotextkey'>管理提供了極大的方便。3結(jié)語 VDK非常適
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 指南培訓課件
- 上半年大班第二學期班務參考計劃
- 人教部編版二年級下冊所有必須背誦的古詩和課文
- 大班交通安全日課件
- 會計基礎工作綜合實務操作教學課件
- 五年級數(shù)學(小數(shù)乘除法)計算題專項練習及答案匯編
- 培訓物業(yè)管家課件
- 《聰明的中國人》課件
- 《德國無碴軌道技術(shù)》課件
- 2021年度大學英語六級聽力技巧
- 蓄勢聚能籌遠略揚帆破浪啟新航-在2025年務虛會上的講話提綱
- 2025山東濰坊光明電力服務限公司招聘142人管理單位筆試遴選500模擬題附帶答案詳解
- 《診斷教學胸腔積液》課件
- 山東省濟南市2023-2024學年高二上學期期末考試生物試題 附答案
- DB32T 3292-2017 大跨徑橋梁鋼橋面環(huán)氧瀝青混凝土鋪裝養(yǎng)護技術(shù)規(guī)程
- 形容詞副詞(專項訓練)-2023年中考英語二輪復習
- 2024人力行政年終總結(jié)
- 2024國家開放大學【法理學】形考試題及答案(二)
- GB 44495-2024汽車整車信息安全技術(shù)要求
- 2025年全年日歷含農(nóng)歷(1月-12月)
- 多學科聯(lián)合診療(MDT)管理方案
評論
0/150
提交評論