熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于DSP的內嵌PCI總線的衛(wèi)星信號仿真器設計方案

基于DSP的內嵌PCI總線的衛(wèi)星信號仿真器設計方案

作者: 時間:2012-04-20 來源:網(wǎng)絡 收藏

本文引用地址:http://www.bjwjmy.cn/article/257561.htm

PCI端口通過3種基址寄存器可以完全訪問的存儲器映射。

Base0:4 MB的可預存取空間,通過設置頁寄存器映射所有存儲器空間,預取讀使所有的字節(jié)有效。

Base1:8 MB非預取地址映射對應于所有的DSP存儲空間,非預取支持字節(jié)使能。

Base2:PCI的16MB I/O包括I/O寄存器。

這3種寄存器屬于PCI配置寄存器,PCI主機可以訪問映射在PCI存儲器空間4 MB的DSP存儲器,PCI端口包含一個PCI I/O寄存器(DSPP寄存器)從PCI地址到DSP地址的映射。當DSP作為PCI本地總線從屬時,使用該映射模式;當DSP上的PCI基地址寄存器被配置成一個8 MB不可預取區(qū)域時,該存儲空間映射為DSP內存映射寄存器(0180 0000h)。PCI地址的22:0位與一個固定偏移相連,將Base 1訪問映射到內存寄存器;基地址寄存器2配置16 B I/O空間,使PCI主機用于訪問PCI I/O寄存器。

3 程序及驅動程序的開發(fā)

3.1 驅動工具的選擇

對于開發(fā)wDM型PCI驅動,常用的開發(fā)工具有三種。一是直接使用Windows DDK或者WDK工具;二是使用DriverStudio;三是使用WinDriver。第一種方式要求掌握Windows的體系結構、設備驅動的體系結構等知識,開發(fā)難度較大;第二種方式對DDK進行了封裝,難度雖然降低了些,但依然不小,而且由于封裝問題,可能帶來一些Bug,有可能導致項目失?。坏谌N方式克服了傳統(tǒng)開發(fā)工具開發(fā)驅動周期長,效率低,需具有DDK和核心態(tài)程序開發(fā)經(jīng)驗等缺點,大大簡化了ISA-BUS,PCIBUS等硬件設備驅動程序的開發(fā)過程,而且WinDriver還提供核心插件(Kerneal Plu-gin)功能,使開發(fā)者在用戶模式下調試代碼,然后將調試無誤的代碼搬到內核模式(Kernel Mode)中,因而使用WinDriver,具有簡單、快速、高效的特點。

3.2 WinDriver的工作原理

圖5是WinDriver的體系結構圖,陰影部分是WinDriver提供的組件。WinDriver提供以WinDrvr6.sys為底層的驅動棧層,直接與硬件交互,避免了用戶對硬件操作的復雜性,用戶開發(fā)驅動只需在應用程序中調用WinDriver用戶模式的API函數(shù)。這些用戶模式的函數(shù)調用 WinDriver的Kernel Module函數(shù)實現(xiàn)對硬件的訪問。對于某些要求比較高的硬件驅動(如要求響應中斷的速度足夠快),如果用戶模式開發(fā)的驅動無法達到要求,開發(fā)者可以將用戶模式下調試好的代碼放入到WinDriver的Kernel Plugin模塊中,使得驅動開發(fā)可以在用戶模式下進行,而開發(fā)的驅動的效率完全可與內核模式下的驅動相媲美。

圖6為用WinDriver開發(fā)PCI驅動內部的API函數(shù)調用關系。

通常情況下,在應用程序中不直接調用這些API函數(shù),而是通過二次開發(fā),將這些API函數(shù)封裝在動態(tài)鏈接庫DLL中,然后應用程序調用DLL中封裝好的函數(shù)。



評論


相關推薦

技術專區(qū)

關閉