色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PCI總線的嵌入式實時圖像處理系統(tǒng)

          基于PCI總線的嵌入式實時圖像處理系統(tǒng)

          作者: 時間:2013-03-14 來源:網(wǎng)絡(luò) 收藏


          Windows主要根據(jù)頁錯誤機(jī)制實現(xiàn)對存儲器映射設(shè)備訪問的虛擬化。要捕獲對某個設(shè)備內(nèi)存的訪問,設(shè)備VxD驅(qū)動程序會將頁表中對應(yīng)于相應(yīng)當(dāng)內(nèi)存頁標(biāo)注為“不可用”。當(dāng)在虛擬環(huán)境中運(yùn)行的程序試圖訪問這個頁時,會產(chǎn)生一個錯誤。VM的異常處理器會調(diào)用已注冊的設(shè)備VxD驅(qū)動程序的頁錯誤處理器進(jìn)行相關(guān)處理,即當(dāng)VM訪問該端口時產(chǎn)生異常時進(jìn)入該硬件的回調(diào)處理器,由我們自己編寫的函數(shù)進(jìn)行處理。

          3.2 各種驅(qū)動程序比較

          常見的驅(qū)動程序包括三種:VxD,KMD和WDM。

          (1) VxD:虛擬設(shè)備驅(qū)動程序,是系統(tǒng)用于各種硬件資源識別、管理、維護(hù)運(yùn)作的擴(kuò)展。VxD和VMM一起維持著系統(tǒng)的運(yùn)作。VxD運(yùn)作組Intel系列CPU保護(hù)模式下的Ring0,擁有對硬件的最高控制權(quán)。
          (2) KMD,Kernel Mode Driver。它是WindowsNT下提出的管理、維護(hù)硬件運(yùn)作的驅(qū)動程序模式。該Driver運(yùn)行于WindowsNT的Kernel模式下(類似于Ring0)。但一個KMD的運(yùn)行環(huán)境在不同的時候是根本不同的,Driver收到設(shè)備請求時的運(yùn)行環(huán)境很可能和設(shè)備請求實際操作的運(yùn)行環(huán)境根本不同,因此在WindowsNT下Driver的運(yùn)作受到WindowsNT本身的很多限制。
          (3) WDM,Win32 Driver Model。它可以和Windows2000兼容,MS力推的全新的驅(qū)動程序模式,它實際也可以理解為一個即插即用的KMD。WMD代碼很長,Windows98對WDM支持有限,因此WMD難以一時取代VxD。

          3.3 PCI2040驅(qū)動程序開發(fā)

          PCI2040不是標(biāo)準(zhǔn)的硬件設(shè)備,因此必須自己編寫PCI2040的硬件安裝信息文件和驅(qū)動程序。PCI2040配置空間如附表:

          其中設(shè)備ID用以標(biāo)識特定的設(shè)備,具體的代碼由供應(yīng)商來分派;供應(yīng)商ID用以表明設(shè)備的制造者,這二者是識別PCI設(shè)備的唯一標(biāo)識。對于PCI2040來說,當(dāng)讀Vendor-device ID時,返回值為AC60104C。

          (1) 設(shè)備信息安裝文件

          設(shè)備信息安裝文件(.INF)包含了驅(qū)動程序的名稱、驅(qū)動程序應(yīng)該復(fù)制到的目錄,以及在驅(qū)動程序安裝時必須生成和修改的注冊表入口。

          在編寫INF文件時,可以使用了VtoolsD開發(fā)包中的INF Editor工具,以下是我所編寫的PCI2040安裝信息文件。

          [Version]
          Signature=$CHICAGO$
          Class=PCI Bridge file://設(shè)備類型為PCI橋設(shè)備
          Provider=%String0% file://供應(yīng)商的名稱
          [ClassInstall]
          [DestinationDirs]
          DefaultDestDir=11 file://將驅(qū)動程序安裝在
          file://C:WindowsSystem目錄下
          [Manufacturer]
          %String1%=SECTION_0
          [SECTION_0]
          %String2%=sevenstar,PCIVEN_104CDEV_AC60
          [sevenstar]
          CopyFiles=CopyFiles_sevenstar
          AddReg=AddReg_sevenstar
          [CopyFiles_sevenstar]
          DSP_PCI_Bridge.vxd file://驅(qū)動程序的名稱為 file://DSP_PCI_Bridge.vxd
          [AddReg_sevenstar]
          HKR,,DevLoader,0, DSP_PCI_Bridge.vxd file://在注 file://冊表中添加相關(guān)信息
          [sevenstar_LogConfig]
          ConfigPriority=NORMAL
          IRQConfig=3,7,9,10,15 file://指定PCI2040可 file://選的中斷口
          [ControlFlags]
          [SourceDisksNames]
          1=pci2040驅(qū)動盤,,0000-0000
          [SourceDisksFiles]
          DSP_PCI_Bridge.vxd=1
          [Strings]
          String0="Texas Instruments"
          String1="TI"
          String2=“PCI橋接”

          (2) VxD的創(chuàng)建

          Windows支持靜態(tài)安裝和動態(tài)安裝VxD,前者是在Windows初始化時安裝VxD并一直保存在Windows中,后者是在一個應(yīng)用程序或其他VxD的控制下安裝和卸載。靜態(tài)安裝的VxD始終占用著一定的內(nèi)存資源以及中斷口,若不是一直運(yùn)行,則導(dǎo)致了資源浪費(fèi)。

          在使用QuickVxD開發(fā)VxD只需在Dynamically Loadable選項中打勾就行了,其中Device Name是指我們的VxD的設(shè)備名,每個VxD都有設(shè)備名這兒是指PCI2040芯片,Device ID是用來標(biāo)識設(shè)備,只有當(dāng)該VxD需要提供對其他VxD的調(diào)用入口時才用,且不能任意取應(yīng)該由Microsoft公司提供,一般情況直接用UNDEFINED_DEVICE_ID就行了,Device Initialization Order確定Windows對VxD的安裝順序,比如你想要你的VxD先于VDD初始化就應(yīng)該設(shè)置為VDD_INIT_ORDER-1,一般情況也使用默認(rèn)值。

          4 結(jié)束語

          圖像實現(xiàn)的關(guān)鍵在于如何對大容量的信息進(jìn)行暫存、壓縮和傳輸?shù)葐栴}進(jìn)行處理。本系統(tǒng)的實現(xiàn)很好的解決了這三個難題。在圖像信息暫存方面充分利用了DSP存儲空間的可擴(kuò)展性,保證了系統(tǒng)可暫存的信息量足夠大;信息壓縮是DSP的最擅長做的事情,可以在很短的時間內(nèi)完成大量的信息壓縮工作;的引入保證了信息在足夠的帶寬下進(jìn)行快速傳輸。

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉