新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PCI9052接口芯片的配置及驅動程序開發

        PCI9052接口芯片的配置及驅動程序開發

        作者: 時間:2012-03-21 來源:網絡 收藏

        (2) 內存的訪問

        在基于DriverStudio開發的中,向存儲器空間讀寫大量數據一般選用Write/Read函數,但對于一個實際存在的物理設備的訪問,在某一時刻只能進行一個操作,因而在訪問內存對象的時候,一般都要求一個IRP排隊的隊列,可通過設備類的成員函數QueueIrp將IRP插入隊列。DriverWorks提供有KDeviceQueue類,其成員函數StartIo用于處理設備對象的IRP隊列。具體的操作是通過KMemoryRange類來實現對設備內存映射空間的訪問。其訪問流程見圖4所示。需要注意的是,當IRP隊列為空時,調用QueueIrp時,系統將同步調用StartIo函數。

        (3) 中斷處理

        的中斷處理編程涉及到內核機制比較多的一種,因而相對復雜。首先用中斷服務程序提升系統的IRQL,但不能進行大多數有用的內核調用。另外,提升IRQL運行代碼需要盡可能快地運行。所以,中斷處理一般和在DIS-PATCH_LEVEL級運行的延遲調用(DPC)例程相配合可解決以上兩個問題。在DriverWorks中,通常通過KInterrupt類和KDeferredCall類來實現,并通過向導來在中斷服務例程和DPC中增加功能代碼。KDeferredCall類封裝有DPC的操作。KInter-rupt類用于實現硬件中斷的處理,其成員函數包括中斷初始化,以及將一個中斷服務例程連接到另一個中斷和解除其連接等。在中斷服務例程中把IRP交給DPC例程,可在DPC處理完后結束該IRP。需要注意的是,中斷服務例程不是KInter-rupt類的成員函數,它的主要作用是減少中斷延遲時間。

        3 結束語

        本文主要從訪問設備硬件資源的角度介紹了PCI配置空間的配置和驅動程序的開發方法。利用該方法可對PCI板卡的配置空間和所需的硬件資源進行正確設置,然后通過DriverStudio的驅動程序向導生成工具在程序框架里添加適當的代碼,最后借助于DriverStudio開發包提供的調試工具SoftICE和DriverMonitor以及由Wizard產生的控制臺應用程序,來快速開發出基于PCI總線的設備驅動程序。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 娱乐| 卫辉市| 英吉沙县| 高唐县| 克拉玛依市| 甘肃省| 板桥市| 名山县| 资溪县| 望江县| 榆社县| 宜宾县| 东明县| 夏河县| 赤壁市| 曲沃县| 揭东县| 肇源县| 宜良县| 横峰县| 荣昌县| 淮安市| 山东省| 东乌| 宁波市| 广昌县| 新干县| 凭祥市| 隆昌县| 府谷县| 广河县| 潞城市| 满城县| 松原市| 伊金霍洛旗| 金山区| 湾仔区| 黄龙县| 武冈市| 仙游县| 体育|