青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

milkyway的窩

最初想法的誕生地

 

wince驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)筆記

??????? 因?yàn)檎n題前期調(diào)研沒(méi)做好,用的CPU板卡和數(shù)據(jù)采集卡來(lái)自?xún)蓚€(gè)部門(mén)。加上買(mǎi)的是裸板,自己定制的OS,技術(shù)支持不愛(ài)搭理。所以給的AI板卡的驅(qū)動(dòng)一直裝不上,自己在郁悶中尋找答案,就扎進(jìn)了wince驅(qū)動(dòng)的知識(shí)庫(kù)里了。不管驅(qū)動(dòng)裝不上是不是這個(gè)原因,學(xué)點(diǎn)東西總沒(méi)有壞處。做點(diǎn)記錄備查:)
???????? 首先是wince驅(qū)動(dòng)的分類(lèi)問(wèn)題。按照書(shū)上講的說(shuō)CE下驅(qū)動(dòng)分成單體驅(qū)動(dòng)和分層驅(qū)動(dòng),而看到另一種說(shuō)法是本機(jī)驅(qū)動(dòng)和流式驅(qū)動(dòng)。經(jīng)過(guò)microsun大哥的指點(diǎn),把這兩種分類(lèi)法分開(kāi)了。在這里引用一下:
“單體與分層只是從代碼的形式上做的分類(lèi).分層驅(qū)動(dòng)代碼上分為PDD與MDD,一般的微軟已經(jīng)實(shí)現(xiàn)了MDD,可能也實(shí)現(xiàn)了PDD,我們只需要對(duì)PDD做些修改就能使用,比如音頻的驅(qū)動(dòng),顯示的驅(qū)動(dòng)。單層驅(qū)動(dòng)是把PDD與MDD寫(xiě)在一起,沒(méi)有做嚴(yán)格的區(qū)分,通常這種驅(qū)動(dòng)比較簡(jiǎn)單,比如:ATADISK。
至于本地驅(qū)動(dòng)和流式驅(qū)動(dòng)是從驅(qū)動(dòng)與系統(tǒng)其它模塊(調(diào)用者)的接口形式上做的分類(lèi).其實(shí),本地驅(qū)動(dòng)這個(gè)名稱(chēng)不大恰當(dāng),可能叫專(zhuān)用驅(qū)動(dòng)或其它名字更為合適.它是指調(diào)用它的模塊給它有特定的接口,比如電源驅(qū)動(dòng)和通用LED驅(qū)動(dòng)。而串口,網(wǎng)卡等就是流接口驅(qū)動(dòng)程序.
所以,一個(gè)驅(qū)動(dòng)程序可以是單體的流式驅(qū)動(dòng),例如:ATADISK.也可以是分層的流式: 如OHCI?”
??????? 按照我的理解,單體和分層是驅(qū)動(dòng)實(shí)現(xiàn)方式上的分類(lèi),而本地和流式則是驅(qū)動(dòng)模型上的分類(lèi),所謂本地驅(qū)動(dòng)就是操作系統(tǒng)有保留專(zhuān)門(mén)的接口,所謂流式是指編寫(xiě)的DLL文件里可以導(dǎo)出各種流式接口函數(shù)。
?????????第二點(diǎn):驅(qū)動(dòng)的功能屬性。設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和硬件的接口,操作系統(tǒng)定義了一組標(biāo)準(zhǔn)的接口,編寫(xiě)驅(qū)動(dòng)的過(guò)程也就是實(shí)現(xiàn)這些接口。從應(yīng)用程序到具體硬件間有如下這些環(huán)節(jié)起作用:應(yīng)用程序-調(diào)用OS函數(shù)-操作系統(tǒng)-驅(qū)動(dòng)接口-驅(qū)動(dòng)程序-硬件操作函數(shù)-硬件。在wince里驅(qū)動(dòng)都以用戶(hù)態(tài)的DLL存在,需要通過(guò)進(jìn)程加載到slot里。共有三類(lèi)系統(tǒng)進(jìn)程用來(lái)加載:Device.exe,GWES.exe,FileSys.exe.絕大多數(shù)設(shè)備驅(qū)動(dòng)都是通過(guò)Device.exe加載的。需要注意的是,不同的OS保留的設(shè)備驅(qū)動(dòng)接口是不一樣的,如桌面windows和wince就不同。
?????第三點(diǎn):wince下設(shè)備的初始化分為兩個(gè)階段:Device.exe的初始化;外設(shè)的枚舉和加載。其流程是:上電-啟動(dòng)bootloader-啟動(dòng)NK-啟動(dòng)注冊(cè)表init鍵(Device.exe啟動(dòng))-初始化數(shù)據(jù)結(jié)構(gòu),I/O,電源管理等-加載BusEnum.dll(總線枚舉器)-枚舉注冊(cè)表下Driver/buildin的所有子鍵。這里的枚舉過(guò)程就是循環(huán)調(diào)用ActivateDeviceEx()函數(shù)加載驅(qū)動(dòng)的過(guò)程。在OS啟動(dòng)完畢后,我們可以用PB的Remote Registry Tool查看H_L_M/drivers/active包含的子鍵,看哪些驅(qū)動(dòng)隨啟動(dòng)而加載 。
?????第四點(diǎn):流接口驅(qū)動(dòng)的概念。暴露流式接口函數(shù)的驅(qū)動(dòng)即是流驅(qū)動(dòng),它把外設(shè)抽象成一個(gè)文件。過(guò)程是:應(yīng)用程序使用文件API對(duì)設(shè)備進(jìn)行訪問(wèn),OS接受API調(diào)用FileSys.exe,轉(zhuǎn)到device.exe,調(diào)用流接口,與硬件交互。所謂流接口函數(shù)有十個(gè),包括XXX_InitXXX_DeinitXXX_OpenXXX_CloseXXX_ReadXXX_WriteXXX_PowerUpXXX_PowerDownXXX_SeekXXX_IOControl,在wince5.0中增加le了XXX_PreClose,XXX_PreDeinit.而我們?cè)趹?yīng)用程序里對(duì)應(yīng)的文件API有CreateFileDeviceIoControl ReadFile WriteFile,CloseHandle,SetFilePointer.??
?????第五點(diǎn):編寫(xiě)流驅(qū)動(dòng)的步驟。有兩種實(shí)現(xiàn)途徑:1。寫(xiě)DLL,做成Project,加入到OS里。2。改BSP,把驅(qū)動(dòng)寫(xiě)在BSP里,再選擇那個(gè)BSP做OS。第一種方法步驟是在PB中新建一個(gè)DLL項(xiàng)目,編寫(xiě)一些輸入函數(shù),寄存器,外設(shè)的聲明,寫(xiě)DLLENTRY函數(shù);實(shí)現(xiàn)流接口函數(shù);編寫(xiě)DLL的導(dǎo)出函數(shù)文件.DEF;為驅(qū)動(dòng)程序?qū)懭胱?cè)表項(xiàng),還需要修改bib文件。 第二種方法就是在platform/BSP/drivers下新建一個(gè)目錄,然后在drivers目錄中的dirs文件中加入新建的目錄名。在新建的目錄下,新建你的源代碼文件,在其中實(shí)現(xiàn)DLL函數(shù)。新建名稱(chēng)分別為sources, makefile, ***.def的文件;修改platform.regplatform.bib文件。

????????

posted on 2006-12-18 21:59 milkyway 閱讀(9569) 評(píng)論(5)  編輯 收藏 引用 所屬分類(lèi): Wince學(xué)習(xí)小結(jié)

評(píng)論

# re: wince驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)筆記 2006-12-18 22:07 相思酸中有甜

幾個(gè)小知識(shí)點(diǎn):
(1)應(yīng)用程序可以通過(guò)ActivateDeviceEx()加載設(shè)備驅(qū)動(dòng); (2)注冊(cè)表里的設(shè)備前綴Prefix項(xiàng)應(yīng)該用三個(gè)字母表示,驅(qū)動(dòng)的索引是Index.如果應(yīng)用程序用CreateFile()來(lái)打開(kāi)驅(qū)動(dòng)程序時(shí),第一個(gè)參數(shù)應(yīng)該是這個(gè)Prefix項(xiàng)加上Index的值。(3)驅(qū)動(dòng)程序中要用DMA,需要為其保留一段物理空間, 就要修改config.bib給驅(qū)動(dòng)程序共享數(shù)據(jù)用。(4)查看驅(qū)動(dòng)是否加載,可以用遠(yuǎn)程工具看注冊(cè)表buildin/active鍵,或者是看device.exe的進(jìn)程是否包含DLL文件。(5)DLL的入口函數(shù)名稱(chēng)默認(rèn)是DllMain,但我們可以改成別的名稱(chēng),在SOURCES文件中加入這樣一行,DLLENTRY=ABCD
入口函數(shù)就被改成了ABCD,我們就應(yīng)該實(shí)現(xiàn)名為ABCD的函數(shù).
  回復(fù)  更多評(píng)論   

# re: wince驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)筆記 2006-12-20 13:55 相思酸中有甜

感覺(jué)寫(xiě)驅(qū)動(dòng)無(wú)從下手的時(shí)候,可以嘗試看現(xiàn)有的代碼
與平臺(tái)無(wú)關(guān)驅(qū)動(dòng)源碼位于public\common\OAK\Drivers
與平臺(tái)相關(guān)驅(qū)動(dòng) platform\{bsp}\srv\Drivers  回復(fù)  更多評(píng)論   

# re: wince驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)筆記 2006-12-29 16:03 相思酸中有甜

在嘗試通過(guò)打包c(diǎn)ab文件中的*.dll時(shí),發(fā)現(xiàn)自己理解存在問(wèn)題.
只有在開(kāi)發(fā)驅(qū)動(dòng)程序的DLL文件時(shí)才需要寫(xiě)DEF和SOURCES文件,在生成DLL文件時(shí),編譯器會(huì)根據(jù)DEF文件的內(nèi)容而定義導(dǎo)出函數(shù).現(xiàn)在已經(jīng)有了DLL文件,就不用寫(xiě)這兩個(gè)文件了.
只需要把DLL加到NK中,再加上相關(guān)的注冊(cè)表信息就行.

感謝microsun大哥的指點(diǎn).  回復(fù)  更多評(píng)論   

# re: wince驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)筆記 2007-04-09 14:51 漂流者

我也是在windows CE的泥淖中艱難前行的人,你的文章對(duì)我來(lái)說(shuō)是雪中送炭啊,我剛開(kāi)始學(xué)windows CE的,很多東西還不懂,以后有機(jī)會(huì)向你請(qǐng)教,我QQ77614381,漂流者  回復(fù)  更多評(píng)論   

# re: wince驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)筆記 2007-07-12 17:54 小熊它歌

我也是剛接觸wince的,總工給了我一大堆電路圖,讓我先看懂,然后再寫(xiě)相應(yīng)的驅(qū)動(dòng),光看懂電路圖已經(jīng)非常痛苦了,況且我對(duì)wince還是個(gè)生手,真的希望以后大家能多交流,我的QQ是275102799.  回復(fù)  更多評(píng)論   

導(dǎo)航

統(tǒng)計(jì)

公告

隨筆皆原創(chuàng),文章乃轉(zhuǎn)載. 歡迎留言!

常用鏈接

留言簿(37)

隨筆分類(lèi)(104)

隨筆檔案(101)

文章分類(lèi)(51)

文章檔案(53)

wince牛人

搜索

積分與排名

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            羞羞漫画18久久大片| 久久精品日产第一区二区| 欧美三区免费完整视频在线观看| 米奇777超碰欧美日韩亚洲| 久久天天躁夜夜躁狠狠躁2022| 久久久国产成人精品| 久久国产黑丝| 欧美岛国激情| 国产精品老牛| 亚洲电影成人| 亚洲一区在线观看免费观看电影高清 | 亚洲黄色在线视频| 99视频日韩| 久久国产主播精品| 欧美国产日韩亚洲一区| 亚洲乱码国产乱码精品精| 亚洲一区二区欧美日韩| 久久久久国产精品一区三寸| 欧美激情视频一区二区三区免费 | 欧美激情第9页| 国产精品欧美日韩| 久久激情婷婷| 欧美夫妇交换俱乐部在线观看| 欧美视频一区二区三区…| 韩日视频一区| 亚洲视频在线观看网站| 久久天天躁狠狠躁夜夜av| 亚洲美洲欧洲综合国产一区| 久久精品1区| 欧美视频免费在线| 亚洲风情亚aⅴ在线发布| 亚洲一区二区三区精品动漫| 免费短视频成人日韩| 亚洲一区二区在| 欧美日本国产一区| 亚洲国产二区| 久久久久久九九九九| 亚洲视频欧美视频| 欧美另类视频| 在线观看国产日韩| 久久精品国产亚洲5555| 中文久久精品| 欧美日韩视频专区在线播放| 亚洲国产精品日韩| 美女国产一区| 久久人人97超碰国产公开结果| 国产精品影音先锋| 亚洲性视频h| 亚洲片区在线| 久久综合久久久久88| 国产一区二区久久精品| 欧美在线网址| 亚洲专区一区| 国产嫩草一区二区三区在线观看| 亚洲视频在线二区| a4yy欧美一区二区三区| 欧美精品在线一区二区三区| 日韩亚洲欧美综合| 亚洲美女网站| 国产精品国产亚洲精品看不卡15| 亚洲天堂av在线免费观看| 在线视频日韩| 国产欧美综合在线| 久久久午夜精品| 久久久噜噜噜| 亚洲乱码国产乱码精品精98午夜| 亚洲国产精品黑人久久久 | 国外精品视频| 久久久久久穴| 免费观看在线综合| 亚洲乱码视频| 99国内精品久久| 国产伦精品一区二区三区在线观看| 欧美亚洲午夜视频在线观看| 亚洲男女自偷自拍图片另类| 国产亚洲人成网站在线观看| 麻豆成人av| 欧美精品在线播放| 羞羞答答国产精品www一本 | 国产伦精品一区二区三区在线观看 | 国产精品美女www爽爽爽| 亚洲综合色噜噜狠狠| 亚洲一区日本| 国产在线精品自拍| 欧美激情欧美激情在线五月| 欧美久色视频| 久久精品99久久香蕉国产色戒 | 国产日韩欧美精品一区| 美女日韩在线中文字幕| 欧美韩日高清| 欧美一区二区黄| 久久综合色一综合色88| 日韩亚洲欧美高清| 欧美亚洲在线视频| 日韩视频第一页| 午夜在线电影亚洲一区| 亚洲国产综合在线| 亚洲一区三区在线观看| 在线精品国产欧美| 亚洲午夜精品一区二区| 亚洲第一精品福利| 亚洲制服丝袜在线| 99精品国产一区二区青青牛奶| 亚洲欧美国产日韩天堂区| 亚洲第一黄网| 午夜精品久久久久久久久| 亚洲精品乱码久久久久久蜜桃91 | 欧美 亚欧 日韩视频在线| 欧美日韩网站| 亚洲缚视频在线观看| 国产伦精品一区二区三区免费 | 亚洲欧美日韩成人高清在线一区| 久久九九有精品国产23| 一区二区三区视频免费在线观看| 久久精品国产清高在天天线| 亚洲自拍电影| 欧美日韩国产一区二区| 欧美va天堂| 狠狠色综合一区二区| 亚洲在线视频观看| 亚洲综合色在线| 欧美精品在线极品| 亚洲电影免费在线| 伊人精品成人久久综合软件| 欧美一区二区三区四区在线观看 | 美女任你摸久久| 久久人91精品久久久久久不卡| 国产精品毛片高清在线完整版 | 欧美高清视频一区| 欧美日本视频在线| 亚洲美女视频| 性亚洲最疯狂xxxx高清| 亚洲与欧洲av电影| 国产精品xxxav免费视频| 日韩视频一区二区三区| 91久久精品国产| 欧美高清视频一二三区| 亚洲福利视频三区| 亚洲国产一区二区三区高清| 可以免费看不卡的av网站| 母乳一区在线观看| 亚洲日本成人| 欧美精品在线网站| 亚洲免费激情| 午夜亚洲福利| 国产视频一区二区三区在线观看| 午夜欧美不卡精品aaaaa| 久久精品亚洲| 在线成人性视频| 欧美大片第1页| 夜夜嗨av一区二区三区| 亚洲永久网站| 国内一区二区在线视频观看| 另类欧美日韩国产在线| 最新国产成人在线观看| 亚洲素人在线| 国产一区二区无遮挡| 可以看av的网站久久看| 99riav久久精品riav| 性久久久久久久久| 狠狠综合久久av一区二区老牛| 麻豆精品一区二区综合av| 亚洲日本中文| 性欧美大战久久久久久久久| 黄色成人精品网站| 欧美日韩国产精品自在自线| 亚洲欧美欧美一区二区三区| 狂野欧美性猛交xxxx巴西| 99精品国产在热久久婷婷| 国产伦精品一区二区三区照片91| 久久另类ts人妖一区二区| 99国产精品视频免费观看| 久久天天躁夜夜躁狠狠躁2022| 亚洲最新合集| 激情视频亚洲| 国产精品av免费在线观看 | 久久福利精品| 日韩网站在线| 噜噜噜躁狠狠躁狠狠精品视频| 一区二区欧美日韩| 精品1区2区| 国产精品一区毛片| 欧美激情视频网站| 久久久国产精品一区二区三区| 一本色道久久综合亚洲精品不卡 | 免费一级欧美片在线播放| 亚洲综合欧美日韩| 亚洲国产欧美日韩精品| 久久久久久91香蕉国产| 亚洲午夜av| 日韩一区二区精品葵司在线| 狠狠噜噜久久| 国产乱码精品一区二区三区不卡| 欧美精品www| 免费成人毛片| 久久久国际精品| 欧美一级一区| 欧美一区二区三区精品电影| 欧美日韩中文字幕| 欧美成人福利视频|