DM642外設(shè)驅(qū)動(dòng)模型

DM642外設(shè)驅(qū)動(dòng)模型

ID:43515723

大?。?3.00 KB

頁數(shù):3頁

時(shí)間:2019-10-09

DM642外設(shè)驅(qū)動(dòng)模型_第1頁
DM642外設(shè)驅(qū)動(dòng)模型_第2頁
DM642外設(shè)驅(qū)動(dòng)模型_第3頁
資源描述:

《DM642外設(shè)驅(qū)動(dòng)模型》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、1、基于DSP/BIOS的外設(shè)驅(qū)動(dòng)開發(fā)模型  TI公司為開發(fā)DsP的外設(shè)驅(qū)動(dòng)程序,推出了DSP/BIOSDeviceDriverkit,定義了標(biāo)準(zhǔn)的設(shè)備驅(qū)動(dòng)模型,并提供了一系列的API接口。如圖1所示,外設(shè)驅(qū)動(dòng)程序分為兩層: ?、兕愹?qū)動(dòng)(classdriver)。類驅(qū)動(dòng)程序用來為應(yīng)用程序提供接口。這部分程序與設(shè)備無關(guān),主要功能包括維護(hù)設(shè)備數(shù)據(jù)緩沖區(qū),向上提供API接口供應(yīng)用層程序調(diào)用,并協(xié)調(diào)應(yīng)用程序?qū)ν庠O(shè)操作的同步和阻塞;向下提供適配層與迷你驅(qū)動(dòng)層相連,實(shí)現(xiàn)API接口函數(shù)到迷你驅(qū)動(dòng)層程序的映射。類驅(qū)動(dòng)程序與硬件無關(guān),只要外設(shè)驅(qū)動(dòng)模型選

2、定了,類驅(qū)動(dòng)程序就定下來了,不需要做多少修改?! 、诿阅泸?qū)動(dòng)(minidriver)。迷你驅(qū)動(dòng)程序與設(shè)備相關(guān),所以設(shè)計(jì)迷你驅(qū)動(dòng)程序是外設(shè)驅(qū)動(dòng)開發(fā)中的重點(diǎn)。迷你驅(qū)動(dòng)程序與類驅(qū)動(dòng)層的接口格式是統(tǒng)一的,但迷你驅(qū)動(dòng)程序?qū)Φ讓佑布牟僮魇歉鶕?jù)硬件平臺(tái)的不同而變化的。迷你驅(qū)動(dòng)接收類驅(qū)動(dòng)層發(fā)出的IOM_Packet命令包,決定對(duì)底層硬件進(jìn)行什么樣的操作?! ⊥庠O(shè)驅(qū)動(dòng)程序模型又可以分為以下3類:  ①PIP/PI0模型?;跀?shù)據(jù)管道的I/O模型,每個(gè)管道都在維護(hù)自己的一個(gè)緩沖區(qū)。當(dāng)數(shù)據(jù)寫入緩沖區(qū),或從緩沖區(qū)取出數(shù)據(jù)時(shí),便會(huì)激發(fā)notifyReader

3、和notifyWriter函數(shù)實(shí)現(xiàn)數(shù)據(jù)的同步?! 、赟IO/DIO模型?;跀?shù)據(jù)流的I/O模型,一個(gè)數(shù)據(jù)流是單向的,要么是輸入,要么是輸出,而且SIO/DIO模瓔使用異步方式來操作I/0,對(duì)于數(shù)據(jù)的讀寫、處理可以同時(shí)進(jìn)行?! 、跥I0模型。通用的I/O模型,靈活性很強(qiáng),且沒有適配層,直接操作迷你驅(qū)動(dòng)程序,主要用來設(shè)計(jì)新型的設(shè)備驅(qū)動(dòng)模型。3.1設(shè)備驅(qū)動(dòng)程序模型的選擇  如上文介紹,常用的驅(qū)動(dòng)程序模型包括3類:PIO、SIO和GIO。比較這3種模型可以知道:PIO支持更底層的通信,適合設(shè)計(jì)比較簡(jiǎn)單的外設(shè)驅(qū)動(dòng)程序。例如在TI公司的6X11D

4、SK板上實(shí)現(xiàn)的音頻采集和回放,一般都是基于PIO模型的。而SIO模型具有很好的緩沖器分配回收機(jī)制,比較適合描述視頻設(shè)備,但是SIO的很多功能在本系統(tǒng)中使用不到,而且GIO模型設(shè)計(jì)的目的就是針對(duì)特殊硬件的新型設(shè)備,所以最終考慮使用GIO設(shè)備驅(qū)動(dòng)模型?! I公司最初設(shè)計(jì)的GIO模型其實(shí)是有缺陷的,主要在數(shù)據(jù)緩沖區(qū)管理的問題上,應(yīng)用程序在取得緩沖區(qū)進(jìn)行數(shù)據(jù)處理之后,卻無法將緩沖區(qū)返回設(shè)備驅(qū)動(dòng)程序。于是TI公司在推出DM6北這一款主要用于視頻處理的DSP芯片的同時(shí),對(duì)GIO模型進(jìn)行了改進(jìn),提出了專門針對(duì)視頻設(shè)備的FVID模型。FVID模型是

5、建立在GIO模型之上的,以FVID_alloc、FVID_exchangc、FVID_free函數(shù)對(duì)GIO模型中的GIO_submit函數(shù)進(jìn)行封裝,解決了GIO模型中驅(qū)動(dòng)程序不能回收緩沖區(qū)的問題。  此外FVID模型還專門設(shè)計(jì)了FVID_frame結(jié)構(gòu)。此結(jié)構(gòu)中包含了常用的視頻信號(hào)的信息,如行數(shù)、列數(shù)、YUV結(jié)構(gòu)、場(chǎng)頻等,很適合描述視頻數(shù)據(jù)幀。但FVID主要是針對(duì)DM64X系統(tǒng)設(shè)計(jì)的,DM64X的很多功能在F2812DSP上都不具備。所以本設(shè)計(jì)針對(duì)F2812DSP視頻處理系統(tǒng),對(duì)FVID模型進(jìn)行了一定的簡(jiǎn)化,保留類驅(qū)動(dòng)程序,而重寫了迷

6、你驅(qū)動(dòng)層程序。3.2視頻處理程序運(yùn)行流程  在設(shè)計(jì)完成的視頻驅(qū)動(dòng)程序基礎(chǔ)上,開發(fā)一個(gè)典型的視頻處理應(yīng)用程序,其運(yùn)行流程如圖3所示。首先使用FVID_create函數(shù)建立GIO_capture和GIO_play兩個(gè)視頻通道.再以GIO_capture通道的FVID_control函數(shù)發(fā)出cmd_start,采集到1幀視頻數(shù)據(jù)。應(yīng)用程序以GIO_capture通道的FVID_alloc函數(shù)向驅(qū)動(dòng)程序申請(qǐng)采集到的數(shù)據(jù)幀,進(jìn)行處理后再以FVID_exchange函數(shù)將修改后的數(shù)據(jù)幀返回驅(qū)動(dòng)程序,最后再調(diào)用GI0_play通道的FVID_con

7、trol函數(shù)發(fā)出cmd_display命令將數(shù)據(jù)幀輸出。由圖3可以看到,應(yīng)用程序調(diào)用的這些FVID_XXX接口函數(shù)會(huì)自動(dòng)由類驅(qū)動(dòng)程序?qū)訉酉蛳掠成?,到達(dá)迷你驅(qū)動(dòng)層程序;而迷你層程序可以直接操縱底層硬件設(shè)備,來完成整個(gè)視頻的采集、處理和顯示的過程。3.3迷你驅(qū)動(dòng)程序的設(shè)計(jì)  迷你層驅(qū)動(dòng)程序足整個(gè)設(shè)計(jì)的重點(diǎn)所在,下面詳細(xì)介紹其實(shí)現(xiàn)方法。迷你層驅(qū)動(dòng)程序主要由表1所列的幾個(gè)函數(shù)組成。對(duì)各個(gè)函數(shù)的具體實(shí)現(xiàn)如下: ?、賛dBindDev函數(shù)。在應(yīng)用程序建立設(shè)備接口(如FVID_create函數(shù))時(shí)被調(diào)用,完成對(duì)外部設(shè)備的初始化。而與其對(duì)應(yīng)的是md_

8、UBindDev函數(shù),使用nadUBindDev函數(shù)會(huì)使設(shè)備處于無效狀態(tài),不能再使用?! 、趍dCreateChan函數(shù)。使用此函數(shù)為應(yīng)用程序和驅(qū)動(dòng)程序建立通信通道,同時(shí)為每個(gè)通道申請(qǐng)緩沖區(qū)。在TI公司發(fā)布的FVID模型

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。