日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]嵌入式開發(fā)技術:wince驅動開發(fā)學習筆記

嵌入式開發(fā)技術:wince驅動開發(fā)學習筆記

首先是wince驅動的分類問題。按照書上講的說CE下驅動分成單體驅動和分層驅動,而看到另一種說法是本機驅動和流式驅動。經過microsun大哥的指點,把這兩種分類法分開了。在這里引用一下:

“單體與分層只是從代碼的形式上做的分類.分層驅動代碼上分為PDD與MDD,一般的微軟已經實現(xiàn)了MDD,可能也實現(xiàn)了PDD,我們只需要對PDD做些修改就能使用,比如音頻的驅動,顯示的驅動。單層驅動是把PDD與MDD寫在一起,沒有做嚴格的區(qū)分,通常這種驅動比較簡單,比如:ATADISK。

嵌入式 嵌入式開發(fā) 嵌入式系統(tǒng) wince驅動開發(fā)

至于本地驅動和流式驅動是從驅動與系統(tǒng)其它模塊(調用者)的接口形式上做的分類.其實,本地驅動這個名稱不大恰當,可能叫專用驅動或其它名字更為合適.它是指調用它的模塊給它有特定的接口,比如電源驅動和通用LED驅動。而串口,網(wǎng)卡等就是流接口驅動程序.

所以,一個驅動程序可以是單體的流式驅動,例如:ATADISK.也可以是分層的流式: 如OHCI ”

       按照我的理解,單體和分層是驅動實現(xiàn)方式上的分類,而本地和流式則是驅動模型上的分類,所謂本地驅動就是操作系統(tǒng)有保留專門的接口,所謂流式是指編寫的DLL文件里可以導出各種流式接口函數(shù)。

         第二點:驅動的功能屬性。設備驅動程序是操作系統(tǒng)內核和硬件的接口,操作系統(tǒng)定義了一組標準的接口,編寫驅動的過程也就是實現(xiàn)這些接口。從應用程序到具體硬件間有如下這些環(huán)節(jié)起作用:應用程序-調用OS函數(shù)-操作系統(tǒng)-驅動接口-驅動程序-硬件操作函數(shù)-硬件。在wince里驅動都以用戶態(tài)的DLL存在,需要通過進程加載到slot里。共有三類系統(tǒng)進程用來加載:Device.exe,GWES.exe,FileSys.exe.絕大多數(shù)設備驅動都是通過Device.exe加載的。需要注意的是,不同的OS保留的設備驅動接口是不一樣的,如桌面windows和wince就不同。

     第三點:wince下設備的初始化分為兩個階段:Device.exe的初始化;外設的枚舉和加載。其流程是:上電-啟動bootloader-啟動NK-啟動注冊表init鍵(Device.exe啟動)-初始化數(shù)據(jù)結構,I/O,電源管理等-加載BusEnum.dll(總線枚舉器)-枚舉注冊表下Driver/buildin的所有子鍵。這里的枚舉過程就是循環(huán)調用ActivateDeviceEx()函數(shù)加載驅動的過程。在OS啟動完畢后,我們可以用PB的Remote Registry Tool查看H_L_M/drivers/active包含的子鍵,看哪些驅動隨啟動而加載 。

     第四點:流接口驅動的概念。暴露流式接口函數(shù)的驅動即是流驅動,它把外設抽象成一個文件。過程是:應用程序使用文件API對設備進行訪問,OS接受API調用FileSys.exe,轉到device.exe,調用流接口,與硬件交互。所謂流接口函數(shù)有十個,包括XXX_Init、XXX_Deinit、XXX_Open、XXX_Close、XXX_Read、XXX_Write、XXX_PowerUp、XXX_PowerDown、XXX_Seek、XXX_IOControl,在wince5.0中增加le了XXX_PreClose,XXX_PreDeinit.而我們在應用程序里對應的文件API有CreateFile、DeviceIoControl、 ReadFile、 WriteFile,CloseHandle,SetFilePointer. 

      第五點:編寫流驅動的步驟。有兩種實現(xiàn)途徑:1。寫DLL,做成Project,加入到OS里。2。改BSP,把驅動寫在BSP里,再選擇那個BSP做OS。第一種方法步驟是在PB中新建一個DLL項目,編寫一些輸入函數(shù),寄存器,外設的聲明,寫DLLENTRY函數(shù);實現(xiàn)流接口函數(shù);編寫DLL的導出函數(shù)文件.DEF;為驅動程序寫入注冊表項,還需要修改bib文件。 第二種方法就是在platform/BSP/drivers下新建一個目錄,然后在drivers目錄中的dirs文件中加入新建的目錄名。在新建的目錄下,新建你的源代碼文件,在其中實現(xiàn)DLL函數(shù)。新建名稱分別為sources, makefile, ***.def的文件;修改platform.reg和platform.bib文件

 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

IAR Embedded Workbench for Arm 支持全新 Arm Cortex-M85 處理器,幫助開發(fā)者為未來的物聯(lián)網(wǎng)、智能家居和 AI/ML 應用創(chuàng)建強大的嵌入式開發(fā)解決方案

關鍵字: IAR Systems 處理器 嵌入式開發(fā)

隨著嵌入式技術的飛速發(fā)展,互聯(lián)網(wǎng)已經進入了物聯(lián)網(wǎng)時代。物聯(lián)網(wǎng)所需的大量設備并不依賴于人與人之間的交互來建立連接,更多的是通過協(xié)議、通信、編程等方式連接到一個地方。也就是說,物聯(lián)網(wǎng)的目的是使所有的物品都具有計算機智能,而不...

關鍵字: 嵌入式技術 嵌入式開發(fā) 物聯(lián)網(wǎng)

嵌入式開發(fā)是指利用分立元件或集成器件進行電路設計、結構設計,再進行軟件編程(通常是高級語言),實驗,經過多輪修改設計、制作,最終完成整個系統(tǒng)的開發(fā)。

關鍵字: 嵌入式開發(fā) 電路設計 結構設計

星標「嵌入式大雜燴」,一起進步!鏈接:https://www.cnblogs.com/jozochen/p/8541714.html一、問題復現(xiàn)穩(wěn)定復現(xiàn)問題才能正確的對問題進行定位、解決以及驗證。一般來說,越容易復現(xiàn)的問...

關鍵字: 嵌入式開發(fā) 函數(shù) 代碼 寄存器

信息時代,數(shù)字時代使得嵌入式產品獲得了巨大的發(fā)展契機,為嵌入式市場展現(xiàn)了美好的前景,同時也對嵌入式生產廠商提出了新的挑戰(zhàn),從中我們可以看出未來嵌入式系統(tǒng)的幾大發(fā)展趨勢。

關鍵字: 信息時代 嵌入式開發(fā) 網(wǎng)絡化

星標「嵌入式大雜燴」,一起進步!作者:RT-Thread社區(qū)團隊?liukang原文鏈接:https://club.rt-thread.org/ask/article/2944.htmlRust是什么Rust是一門賦予每...

關鍵字: 嵌入式開發(fā)

嵌入式系統(tǒng)是計算機軟件和硬件的綜合體,崗位包括:ESE(嵌入式軟件工程師);ADE(嵌入式應用開發(fā)工程師);FWE(嵌入式底層開發(fā)工程師);FEC(嵌入式固件開發(fā)工程師),你可以先下載全套嵌入式視頻課自學,看是否感興趣。...

關鍵字: 嵌入式開發(fā) C語言

學習嵌入式就業(yè)前景廣泛,你可以做手機、PDA、MP3、MP4、遙控玩具、psp、相機、家電控制(洗衣機、電飯煲等)、汽車導航儀,只要跟電子控制相關的。此外,嵌入式這個行業(yè)也利于個人創(chuàng)業(yè),這也是為什么越來越多的人參加 嵌入...

關鍵字: 嵌入式開發(fā) C語言

在嵌入式開發(fā)中,代碼的體積和運行效率非常重要,代碼體積往往和芯片的FLASH、RAM容量對應,程序的運行效率也要求在相應能力的處理器上運行。在大多數(shù)情況下,成熟的開發(fā)人員都希望降低代碼體積、提高代碼運行效率,然而具體該怎...

關鍵字: IAR Systems 嵌入式開發(fā) 編譯器

星標「嵌入式大雜燴」,一起進步!作者:RT-Thread社區(qū)團隊?liukang原文鏈接:https://club.rt-thread.org/ask/article/2944.htmlRust是什么Rust是一門賦予每...

關鍵字: 嵌入式開發(fā)

嵌入式軟件

15715 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉