<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于DSP的PCI驅動(dòng)程序開(kāi)發(fā)

基于DSP的PCI驅動(dòng)程序開(kāi)發(fā)

作者: 時(shí)間:2009-08-25 來(lái)源:網(wǎng)絡(luò ) 收藏

3 程序功能實(shí)現
當把板卡第一次插到計算機的插槽以后,計算機的系統總線(xiàn)會(huì )檢測到有個(gè)新設備沒(méi)有安裝程序,并提示安裝程序。正確地安裝驅動(dòng)程序以后,用戶(hù)就可以在應用程序中與驅動(dòng)程序進(jìn)行通信。
3.1 打開(kāi)設備
在應用程序中調用系統提供的函數CreateFile()。如果系統根據設備名確實(shí)檢測到設備并成功打開(kāi)了這個(gè)設備,則返回一個(gè)指向這個(gè)設備的有效句柄;如果調用失敗,則返回一個(gè)錯誤信息。
3.2 讀/寫(xiě)設備
讀/寫(xiě)設備包括讀/寫(xiě)設備的配置空間、讀/寫(xiě)設備的非配置空間,其中,非配置空間包括I/O空間、存儲空間。
設備被打開(kāi)以后,應用程序就調用DeviceloCon-trol()函數來(lái)達到訪(fǎng)問(wèn)設備的目的。DeviceIoControl()函數有8個(gè)參數,其中第3個(gè)參數是應用程序傳遞給驅動(dòng)程序的數據緩沖區地址,在這個(gè)數據緩沖區存放的是應用程序要讀寫(xiě)的設備的空間、偏移量、長(cháng)度,這些都需要在應用程序中配置好。
這個(gè)調用由I/O系統服務(wù)接收。I/O管理器從這個(gè)請求構造一個(gè)合適的I/O請求包(IRP)。在最簡(jiǎn)單的情況下,I/O管理器只是把IRP傳遞給一個(gè)設備驅動(dòng)程序,這個(gè)驅動(dòng)程序調用硬件,并完成IRP的處理。I/O管理器把數據和結果返回給Win 32和用戶(hù)應用程序?,F在一個(gè)分層的設備驅動(dòng)程序棧是很常見(jiàn)的。每個(gè)驅動(dòng)程序把該請求劃分為更簡(jiǎn)單的請求。高層次的驅動(dòng)程序調用低層次的驅動(dòng)程序,最后,最低層的驅動(dòng)程序與硬件直接打交道完成用戶(hù)的請求。I/O管理器把數據和結果返回給Win 32和用戶(hù)應用程序。設備程序調用如圖3所示。

當應用程序讀/寫(xiě)設備時(shí),驅動(dòng)程序工作的流程圖如圖4所示。
首先,獲取當前IRP棧單元的指針;然后再讀取I/O控制代碼,判斷應用程序想達到什么樣的目的:是讀/寫(xiě)配置空間,還是讀/寫(xiě)非配置空間,然后再調用相應的處理程序。


4 結 語(yǔ)
這里采用微軟的驅動(dòng)包Device Driver Kit(DDK)是因為它是其他幾種工具的基礎,它要求開(kāi)發(fā)人員深刻了解驅動(dòng)底層,雖然不易掌握,但開(kāi)發(fā)出來(lái)的驅動(dòng)程序通用性好,兼容性強。板卡與PC機的通信速度得到了很大的提高。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>