浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 其它綜合

VB環(huán)境下實(shí)現(xiàn)PCI設(shè)備底層訪問的兩種方法

發(fā)布時(shí)間:2007/8/29 0:00:00 訪問次數(shù):617

    摘要:介紹了在VB開發(fā)環(huán)境下,對(duì)PCI設(shè)備進(jìn)行底層訪問的兩種方法:一種是通過用用戶自己編寫的動(dòng)態(tài)連接庫(DLL)實(shí)現(xiàn),二是利用WINDRIVER提供的VB運(yùn)行庫編寫直接訪問硬件接口函數(shù),并對(duì)兩種方法行了比較。

    關(guān)鍵詞:WINDRIVER PCI 動(dòng)態(tài)連接庫 應(yīng)用程序接口

VB集成化編程語言一種功能強(qiáng)大而容易上手的開發(fā)工具,在用戶界面、數(shù)據(jù)庫、多媒體、網(wǎng)絡(luò)編程等方面,VB可謂得心應(yīng)手。然而VB有限的硬件編程能力以又使得許多硬件開發(fā)者對(duì)此深感無奈。尤其在工業(yè)控制,測(cè)控技術(shù)等領(lǐng)域,自行設(shè)計(jì)開發(fā)的I/O卡,數(shù)據(jù)采集卡等在WIN32下的驅(qū)動(dòng)常常需要借助DDK,VtooIsD等工具進(jìn)行艱苦而又長(zhǎng)期的內(nèi)核模式開發(fā)。本文介紹了在VB開發(fā)環(huán)境下訪問PCI設(shè)備的方法。對(duì)于其他設(shè)備,方法與此大同小異。

在VB開發(fā)環(huán)境下,用戶要訪問諸如數(shù)據(jù)采集卡之類硬件上的PCI設(shè)備,一般來說有兩種途徑:一是直接訪問,即用VB直接編寫訪問PCI設(shè)備的接口函數(shù)(這種方法要有相關(guān)軟件的支持);二是間接訪問,即VB調(diào)用其它編程語言(如匯編,C/C++等)寫的底層驅(qū)動(dòng)模塊(一般封裝成動(dòng)態(tài)連接庫DLL的形式)實(shí)現(xiàn)。

1 PCI總線的配置空間

PCI規(guī)范定義了三種地址空間,除了存儲(chǔ)器和I/O地址空間外,為支持PCI設(shè)備系統(tǒng)資源的自動(dòng)配置,還定義了配置地址空羊。

PCI總線的配置空間由256個(gè)字節(jié)組成,分為預(yù)定首區(qū)和設(shè)備關(guān)聯(lián)區(qū)。預(yù)定首區(qū)包括開始64個(gè)字節(jié),對(duì)所有的PCI設(shè)備來說,都必須支持該區(qū)的設(shè)置;設(shè)備關(guān)聯(lián)區(qū)的寄存器有不同的的PCI設(shè)備廠家自己定義。

配置空間的預(yù)定的首區(qū)分兩個(gè)部分,前16個(gè)字節(jié)的定義對(duì)各類PCI設(shè)備而言都是相同的,后48個(gè)字節(jié)空間根據(jù)設(shè)備支持的功能有不同的分配。首區(qū)類型定義了該空間的分配情況(目前只有一種類型00H)。表1是首區(qū)的組織結(jié)構(gòu)。

所有的PCI設(shè)備必須支持首區(qū)的供應(yīng)商ID、設(shè)備ID、指令和狀態(tài)區(qū)。對(duì)于其他寄存器的使用可根據(jù)設(shè)備的楞能來選擇。對(duì)于不同的PCI設(shè)備,其供應(yīng)商ID由PCI SIG分配以確保唯一性,而設(shè)備ID則由供應(yīng)商自己分配。

2 PCI設(shè)備的配置過程

PCI總線的配置空間規(guī)范保證了所有PCI設(shè)備對(duì)“即插即用”的支持。

系統(tǒng)在上電后,“即插即用”BIOS通過隔離算法讀取每一個(gè)“即插即用”設(shè)備的資源申請(qǐng)數(shù)據(jù),并分配相應(yīng)的系統(tǒng)資源,同時(shí)檢查資源的沖突情況,然后引導(dǎo)、加載操作系統(tǒng),并將控制權(quán)交給操作系統(tǒng);如果加載的是“即插即用”操作系統(tǒng)(WINDOWS 95及以后版本),那么操作系統(tǒng)將接管系統(tǒng)的資源管理權(quán),它首先從BIOS讀取“即插即用”設(shè)備的資源配置信息,并仲載資源沖突情況,然后配置BIOS尚未配置的“即插即用”設(shè)備,將設(shè)備的配置信息寫入配置管理器,最后激活無資源沖突的“即插即用”設(shè)備,裝載相應(yīng)的設(shè)備驅(qū)動(dòng)程序。

對(duì)于PCI設(shè)備來說,系統(tǒng)完成引導(dǎo)之后,除了將資源的分配寫入系統(tǒng)的配置管理器外,還寫入了相應(yīng)的PCI配置寄存器。程序可以通過直接讀取設(shè)備的配置寄存器來得到設(shè)備的I/O,存儲(chǔ)器等資源配置情況。

3 VB下PCI設(shè)備的訪問

驅(qū)動(dòng)程序訪問PCI設(shè)備的過程一般包括掃描PCI總線,相找指定的PCI設(shè)備,確定I/O等資源分配情況,進(jìn)行I/O、存儲(chǔ)器、中斷以及DMA等操作。VB本身并不能實(shí)現(xiàn)上述對(duì)PCI設(shè)備的訪問過程,下面介紹在VB下通過其他途徑實(shí)現(xiàn)對(duì)PCI設(shè)備的訪問。

3.1 VB直接訪問

WINDRIVER為VB只提供了非常有限的I

    摘要:介紹了在VB開發(fā)環(huán)境下,對(duì)PCI設(shè)備進(jìn)行底層訪問的兩種方法:一種是通過用用戶自己編寫的動(dòng)態(tài)連接庫(DLL)實(shí)現(xiàn),二是利用WINDRIVER提供的VB運(yùn)行庫編寫直接訪問硬件接口函數(shù),并對(duì)兩種方法行了比較。

    關(guān)鍵詞:WINDRIVER PCI 動(dòng)態(tài)連接庫 應(yīng)用程序接口

VB集成化編程語言一種功能強(qiáng)大而容易上手的開發(fā)工具,在用戶界面、數(shù)據(jù)庫、多媒體、網(wǎng)絡(luò)編程等方面,VB可謂得心應(yīng)手。然而VB有限的硬件編程能力以又使得許多硬件開發(fā)者對(duì)此深感無奈。尤其在工業(yè)控制,測(cè)控技術(shù)等領(lǐng)域,自行設(shè)計(jì)開發(fā)的I/O卡,數(shù)據(jù)采集卡等在WIN32下的驅(qū)動(dòng)常常需要借助DDK,VtooIsD等工具進(jìn)行艱苦而又長(zhǎng)期的內(nèi)核模式開發(fā)。本文介紹了在VB開發(fā)環(huán)境下訪問PCI設(shè)備的方法。對(duì)于其他設(shè)備,方法與此大同小異。

在VB開發(fā)環(huán)境下,用戶要訪問諸如數(shù)據(jù)采集卡之類硬件上的PCI設(shè)備,一般來說有兩種途徑:一是直接訪問,即用VB直接編寫訪問PCI設(shè)備的接口函數(shù)(這種方法要有相關(guān)軟件的支持);二是間接訪問,即VB調(diào)用其它編程語言(如匯編,C/C++等)寫的底層驅(qū)動(dòng)模塊(一般封裝成動(dòng)態(tài)連接庫DLL的形式)實(shí)現(xiàn)。

1 PCI總線的配置空間

PCI規(guī)范定義了三種地址空間,除了存儲(chǔ)器和I/O地址空間外,為支持PCI設(shè)備系統(tǒng)資源的自動(dòng)配置,還定義了配置地址空羊。

PCI總線的配置空間由256個(gè)字節(jié)組成,分為預(yù)定首區(qū)和設(shè)備關(guān)聯(lián)區(qū)。預(yù)定首區(qū)包括開始64個(gè)字節(jié),對(duì)所有的PCI設(shè)備來說,都必須支持該區(qū)的設(shè)置;設(shè)備關(guān)聯(lián)區(qū)的寄存器有不同的的PCI設(shè)備廠家自己定義。

配置空間的預(yù)定的首區(qū)分兩個(gè)部分,前16個(gè)字節(jié)的定義對(duì)各類PCI設(shè)備而言都是相同的,后48個(gè)字節(jié)空間根據(jù)設(shè)備支持的功能有不同的分配。首區(qū)類型定義了該空間的分配情況(目前只有一種類型00H)。表1是首區(qū)的組織結(jié)構(gòu)。

所有的PCI設(shè)備必須支持首區(qū)的供應(yīng)商ID、設(shè)備ID、指令和狀態(tài)區(qū)。對(duì)于其他寄存器的使用可根據(jù)設(shè)備的楞能來選擇。對(duì)于不同的PCI設(shè)備,其供應(yīng)商ID由PCI SIG分配以確保唯一性,而設(shè)備ID則由供應(yīng)商自己分配。

2 PCI設(shè)備的配置過程

PCI總線的配置空間規(guī)范保證了所有PCI設(shè)備對(duì)“即插即用”的支持。

系統(tǒng)在上電后,“即插即用”BIOS通過隔離算法讀取每一個(gè)“即插即用”設(shè)備的資源申請(qǐng)數(shù)據(jù),并分配相應(yīng)的系統(tǒng)資源,同時(shí)檢查資源的沖突情況,然后引導(dǎo)、加載操作系統(tǒng),并將控制權(quán)交給操作系統(tǒng);如果加載的是“即插即用”操作系統(tǒng)(WINDOWS 95及以后版本),那么操作系統(tǒng)將接管系統(tǒng)的資源管理權(quán),它首先從BIOS讀取“即插即用”設(shè)備的資源配置信息,并仲載資源沖突情況,然后配置BIOS尚未配置的“即插即用”設(shè)備,將設(shè)備的配置信息寫入配置管理器,最后激活無資源沖突的“即插即用”設(shè)備,裝載相應(yīng)的設(shè)備驅(qū)動(dòng)程序。

對(duì)于PCI設(shè)備來說,系統(tǒng)完成引導(dǎo)之后,除了將資源的分配寫入系統(tǒng)的配置管理器外,還寫入了相應(yīng)的PCI配置寄存器。程序可以通過直接讀取設(shè)備的配置寄存器來得到設(shè)備的I/O,存儲(chǔ)器等資源配置情況。

3 VB下PCI設(shè)備的訪問

驅(qū)動(dòng)程序訪問PCI設(shè)備的過程一般包括掃描PCI總線,相找指定的PCI設(shè)備,確定I/O等資源分配情況,進(jìn)行I/O、存儲(chǔ)器、中斷以及DMA等操作。VB本身并不能實(shí)現(xiàn)上述對(duì)PCI設(shè)備的訪問過程,下面介紹在VB下通過其他途徑實(shí)現(xiàn)對(duì)PCI設(shè)備的訪問。

3.1 VB直接訪問

WINDRIVER為VB只提供了非常有限的I

相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

羅盤誤差及補(bǔ)償
    造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!