如何用雙端口RAM實(shí)現(xiàn)與PCI總線(xiàn)接口的數(shù)據(jù)通訊?
3 設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)工具通常有DDK、VtoolsD、WinDrvr等。為加快開(kāi)發(fā)速度,采用JUNDO公司的WinDrvr開(kāi)發(fā)設(shè)備驅(qū)動(dòng)程序。其使用簡(jiǎn)單,支持多種操作系統(tǒng)。
采用Windrvr開(kāi)發(fā)PCI橋接設(shè)備的驅(qū)動(dòng)程序有兩種方法。一種Wizard開(kāi)發(fā)向?qū)亲詣?dòng)生成驅(qū)動(dòng)程序框架代碼,然后根據(jù)實(shí)際需要,加入定制功能。這種方法生成的代碼較多,程序較復(fù)雜。另一種是在Vc++創(chuàng)建工程中直接利用Windrvr的API函數(shù)生成驅(qū)動(dòng)程序,比在Wizard生成的框架代碼上修改更為靈活。本文采用后一種方法。以下是用Windrvr開(kāi)發(fā)PCI9030橋芯片的驅(qū)動(dòng)代碼,只要稍加改動(dòng)就可以作為其他PCI芯片驅(qū)動(dòng)程序的一部分,例如PCI9050、PCI9052等。程序中出現(xiàn)的變量名都由其名稱(chēng)反映含義,具體可以參見(jiàn)Windrvr設(shè)計(jì)文檔說(shuō)明。
至此獲得了本地端映射到用戶(hù)的內(nèi)存地址,調(diào)用讀寫(xiě)函數(shù)就可以對(duì)本地芯片進(jìn)行操作。
評(píng)論