a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP/BIoS設備驅動模型的視頻驅動程序開發

基于DSP/BIoS設備驅動模型的視頻驅動程序開發

作者: 時間:2009-05-06 來源:網絡 收藏

通過給外部設備編寫程序是一種有效的控制外設的方法。隨著的應用越來越廣泛,實時系統的日趨復雜及新技術的出現,處理器所連接的外部設備也是種類繁多,各不相同,而每一個外設都需要一個特定的程序來支持外設的正常工作,這就要為每一個外設編寫程序,這是一項十分繁雜的工作。如何能夠使系統開發人員從這些編寫繁雜的驅動程序工作中解脫出來,進而能夠專心投入到應用程序的開發中呢?TI公司提出了DSP/BIOS的,該分為兩層:類驅動即與硬件不相關的層和微型驅動即與硬件相關的層。使用這種結構,應用程序只需調用類驅動的API函數,通過類驅動使用微型驅動,用微型驅動來控制外設。這種結構,將驅動程序合理分層,使得驅動程序模塊化,可移植性、復用性大大增強,縮短了驅動程序的開發時間。

本文引用地址:http://www.j9360.com/article/152508.htm

1 DSP/BIOS

1.1 類/微型驅動模型

DSP/BIOS是TI公司所設計開發的一個尺寸可裁剪的實時多任務操作系統內核,通過使用DSP/BIOS提供的豐富的內核服務,開發者能快速地創建滿足實時性能要求的精細復雜的多任務應用程序。為了使開發更加簡單方便,提出了DSP/BIOS DeviceDriver Kit,定義了標準的,一種將設備驅動分為與硬件無關和與硬件相關的雙層結構,這樣就使開發驅動程序不像以前那樣復雜了,為開發者提供了便利。這兩層結構稱為“類/微型驅動模型,它們每一層都有各自通用的接口,所以相似設備驅動程序的主要部分可以復用,驅動代碼的移植成為可能,使開發驅動的過程大大簡化。

與硬件無關的層稱為類驅動(Class Driver),它處在應用程序與微型驅動之間,提供對多線程I/O請求的串行化和同步,并且維護設備數據緩沖區,向上提供API接口供應用程序調用,向下通過適配層與微型驅動相連,實現API接口函數到微型驅動層的映射。

與硬件相關的層稱為微型驅動(Mini-driver),它處在類驅動與芯片支持庫(Chip Support Library)之間,對于類驅動的接口是統一的,即每一個微型驅動都為類驅動和DSP/BIOS設備驅動管理提供了標準接口。微型驅動采用芯片支持庫(CSL)管理外圍設備的寄存器、內存和中斷資源。但由于硬件是千差萬別的,所以微型驅動對底層硬件的操作是根據硬件的不同而不同的。對于完成同樣功能的不同外設,只需稍加修改微型驅動,而不需重新編寫驅動程序,就可以實現驅動程序的移植與復用,使驅動程序的開發過程大大簡化。類/微型驅動模型結構如圖1所示。

1.2 類驅動
通過將應用軟件,驅動程序分層之后,可以看到,位于頂層的應用程序并不直接與微型驅動產生聯系,而是通過類驅動與微型驅動連接。每一種類驅動向上層應用程序提供一個API接口,并且與微型驅動接口進行通信。
DSP/BIOS定義了三種類驅動:流輸入輸出模塊(SIO),管道管理模塊(PIP),通用輸入輸出模塊(GIO)。其中,SIO和PIP分別需要使用適配器DIO和PIO來與微型驅動進行通信。SIO/DIO是流的I/O模型,使用異步方式來操作I/O,對于數據的讀寫、處理可以同時進行。PIP/PIO是管道的I/O模型,每個管道維護著一個被劃分為多個大小相同的幀的緩沖區。GIO類驅動采用基于流的同步I/O數據傳輸模式,適合大流量數據的傳輸,更適合文件系統。與SIO/DIO和PIP/PIO不同,GIO包含內置的IOM(I/OManager輸入輸出管理)適配層,可以直接與微型驅動進行通信。
GIO模塊與其他兩個模塊相比,有一個很重要的特性,就是可以擴展API函數支持新的應用領域,這樣就實現了對GIO類驅動的擴展。這種可擴展API的特性正好可以用在驅動開發方面。例如這種擴展可以滿足設備存儲區的需要。另外,在提供了驅動和應用程序之間的視頻數據同步機制之后,這種擴展也能夠允許使用一個單獨的調用來“交換”視頻緩沖區。這種交換緩沖區的機制對于實時視頻信號的采集與顯示是十分重要的。所以,在視頻驅動中,我們采用通用輸入輸出模塊GIO。應用程序可以直接地調用GIO API函數和IOM微型驅動程序進行交互,這些GIO API就可以看作是類驅動。GIO類驅動接口如圖2所示。
GIO_create會為一個特定的IOM通道實例創建一個GIO對象,這是類驅動使用微型驅動的第一步,首先創建對象及IOM通道,然后在此通道上進行數據傳輸工作。其結構體類型為GIO_Obj:
1.3 微型驅動
上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉