国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Windows CE.NET下ADC驅(qū)動開發(fā)設(shè)計

發(fā)布時間:2010-8-10 14:33    發(fā)布者:lavida
關(guān)鍵詞: ADC , WINCE , 驅(qū)動
1 前言  

Windows CE 是為各種嵌入式系統(tǒng)和產(chǎn)品設(shè)計的一種壓縮的、高效的、可升級的操作系統(tǒng)。多線性、多任務、全優(yōu)先的操作系統(tǒng)環(huán)境是專門針對資源有限而設(shè)計的,它的模塊化設(shè)計使嵌入式系統(tǒng)開發(fā)者和應用者能夠?qū)⑵鋺糜诟鞣N產(chǎn)品,例如家用電器、專門的工業(yè)控制和嵌入式通信設(shè)備等。Windows CE 支持各種硬件外圍設(shè)備及網(wǎng)絡系統(tǒng),應用領(lǐng)域極為廣闊,是微軟專門為信息設(shè)備、移動通訊、電子產(chǎn)品、嵌入式應用等非 PC 領(lǐng)域而專門設(shè)計的一種戰(zhàn)略性操作系統(tǒng)產(chǎn)品。  

2 Samsung ARM 系列S3C2410 處理器  

S3C2410 是Samsung 公司推出的基于ARM920T 核的32 位RISC 微處理器芯片。S3C2410具有低功耗、低成本和高性能的特點,已成為PDA、智能手機、網(wǎng)絡計算機終端以及智能設(shè)備的終端產(chǎn)品等的熱門解決方案之一。  

S3C2410 內(nèi)部資源豐富、結(jié)構(gòu)復雜、接口眾多,具有相互獨立的16kB 指令緩存和16kB數(shù)據(jù)緩存,帶有MMU 虛擬存儲單元和AMBA 總線接口。S3C2410 支持的內(nèi)外圍設(shè)備包括外部存儲控制器、中斷控制器、LCD 控制器、8 通道10bit 精度的ADC觸摸屏控制器、SD/MMC 卡控制器、4 通道DMA、4 通道具有PW 入1 功能的定時器、具有日歷功能的實時時鐘、看門狗定時器、3 通道UART(包含IRDA 紅外線數(shù)據(jù)通訊口)、USB 主機/設(shè)備接口、I2C 總線接口、IIS 數(shù)字音頻總線接口、2 通道SPI 總線接口、通用I/O 端口以及具有鎖相環(huán)功能片上時鐘發(fā)生器等。同時,也可以根據(jù)需要進行功能擴展從而支持以太網(wǎng)接口、PCMCIA接口以及IDE 接口等。  

3 Windows CE.net 下的驅(qū)動程序  

目前基于 Windows CE.net 的兩種模型是本機設(shè)備驅(qū)動程序和流接口驅(qū)動程序。本機設(shè)備驅(qū)動程序用于低級、內(nèi)置設(shè)備,提供一組定制的接口可通過移植、定制微軟提供的驅(qū)動樣例來實現(xiàn)。流接口驅(qū)動程序?qū)崿F(xiàn)一組固定的流接口函數(shù),所有的CE 設(shè)備皆可使用此模型實現(xiàn)。開發(fā)工具Platform. Builder 中包含的樣本設(shè)備驅(qū)動程序分為兩種:單片驅(qū)動程序和分層的驅(qū)動程序如圖1 所示。單片驅(qū)動程序基于單個碼片,該碼片直接把硬件設(shè)備的功能傳遞給操作系統(tǒng)。與彈片驅(qū)動程序相比,分層驅(qū)動程序由兩個設(shè)置好的層組成,上層是模型設(shè)備驅(qū)動程序(Model Device Driver,MDD),下層是依賴平臺的驅(qū)動程序(Platform. Dependent Driver,PDD)。大多數(shù)的樣本設(shè)備驅(qū)動程序都配置成分層的。  

分層驅(qū)動程序要利用微軟提供的與應用程序通信的上層,這是一個與硬件平臺無關(guān)的上層,稱為模塊驅(qū)動程序?qū)覯DD(Model Device Driver),MDD 層通過設(shè)備驅(qū)動程序接口DDI(Device Driver Interface)與應用程序通信,開發(fā)驅(qū)動程序通常不修改MDD 層,主要關(guān)心與具體硬件相關(guān)的下層,依賴平臺的設(shè)備驅(qū)動程序?qū)覲DD(Platform. Dependent Driver),PDD層通過設(shè)備驅(qū)動服務接口DDSI(Device Driver Service Interface)直接管理硬件。單片驅(qū)動程序所驅(qū)動的設(shè)備通常與微軟提供的應用程序沒有直接的關(guān)系,如LCD 背光條開關(guān)的驅(qū)動。通常要求單片驅(qū)動程序提供一個特定DDI 接口如上層應用通信,通過編寫相應的動態(tài)鏈接庫DDL 實現(xiàn)這個功能。  



4 基于 Windows CE 的流驅(qū)動程序的實現(xiàn)  

4.1 選擇代表設(shè)備的文件名前綴  

設(shè)備前綴名在系統(tǒng)中必須唯一,并且文件前綴名必須是 3 個字母,若有多個同類設(shè)備,則通過后綴1 個阿拉伯數(shù)字區(qū)分,例如COM1、LPT3 等等。文件前綴名將會在驅(qū)動的標準接口函數(shù)中體現(xiàn),比如XXX_Init、XXX_Close 等,其中的“XXX”即是我們選擇的設(shè)備的文件名前綴。  

4.2 實現(xiàn)驅(qū)動的各個標準接口函數(shù)  

需要實現(xiàn)的函數(shù)在前文已經(jīng)論述,現(xiàn)在只需按照其功能編寫具體的代碼。下面給出ADC_Init、ADC_Read、ADC_Write 部分程序代碼。




4.3 導出接口函數(shù)集  

流驅(qū)動一般以 DLL 形式存在,與在windows 98/2000/XP 系統(tǒng)下用VC++開發(fā)DLL 工程一樣,如果我們愿意把DLL 中的某些函數(shù)暴露給應用程序或者操作系統(tǒng)調(diào)用,就需要將這些函數(shù)導出,否則外部程序?qū)⒉荒苷{(diào)用 DLL 中的函數(shù)。DEF 文件定義了DLL 需要導出的接口函數(shù)集,且名稱與設(shè)備驅(qū)動名稱相同[DEF 示例文件]  

LIBRARY ADC  

EXPORTS  

ADC_Open  

ADC_Close  

ADC_Init  

ADC_Deinit  

ADC_Read  

ADC_Write  

本示例表明從 ADC.dll 中導出ADC_Init 等函數(shù),其中 ADC 即為我們選擇的代表設(shè)備的文件名前綴,DLLEntry 是驅(qū)動程序的入口函數(shù)。  

4.4 在注冊表中增加驅(qū)動項  

注冊表是一個龐大的數(shù)據(jù)庫,它記錄了用戶安裝在機器上的軟件和每個程序的相互關(guān)聯(lián)信息;它包含了計算機的硬件配置,包括自動配置的即插即用的設(shè)備和已有的各種設(shè)備說明、狀態(tài)屬性以及各種狀態(tài)信息和數(shù)據(jù)。在 Windows 系統(tǒng)中,很多驅(qū)動都要通過設(shè)備管理器來查詢注冊表,再根據(jù)注冊表項來加載驅(qū)動程序,所以必須在注冊表中增加相應的驅(qū)動項。假定ADC.dll 為驅(qū)動程序,通常,注冊項位于注冊表的Root Key 下,一般為[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\ADC]。其中 ADC 是為我們驅(qū)動程序而添加的。我們需要在 ADC下建立必要的子鍵和鍵值,“Prefix”和“DLL”是2 個重要而且必須的鍵,分別描述了設(shè)備前綴名和驅(qū)動程序的動態(tài)連接庫名。如果還有需要的話,可以建立驅(qū)動程序需要的其子他鍵。  

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\ADC]  

"Index"=dword:1  

"Prefix"="ADC"  

"DLL"="ADC.dll"  

"Order"=dword:0  

"Irq"=dword:2  

4.5 修改.BIB 文件  

要想驅(qū)動的動態(tài)鏈接庫加入 Windows CE 系統(tǒng)中,還必須修改Windows CE 二進制映像生成的文件platform.bib。在platform.bib 文件中加入:ADC.dll $(_ FLATRELEASEDIR) \ ADC.dll NK SH  

5 驅(qū)動編譯、加載和調(diào)用  

增加兩個文件 makefile (定義了編譯規(guī)則)和sources(使用的頭文件,自定義函數(shù)庫,系統(tǒng)函數(shù)庫等),重新編譯Windows CE, ADC 驅(qū)動程序即可加載進操作系統(tǒng)。把編譯好的 WindowsCE 鏡像NK.bin 下載到博創(chuàng)嵌入式開發(fā)平臺(S3C2410 處理器),使用PB 的模塊查看器,可以看到驅(qū)動程序adc.dll 已經(jīng)被成功加載, 如圖2 所示。  



搭建一個簡單的電路,對S3C2410 處理器第六路ADC 輸入一個電壓信號,運行ADC_EXE。根據(jù)應用程序的運行結(jié)果,可以發(fā)現(xiàn)ADC.dll 被成功調(diào)用。以下是截取的是不同輸入電壓時的轉(zhuǎn)換結(jié)果,如圖3 所示。  



6 結(jié)束語  

通過本文介紹、分析Windows CE 下ADC 驅(qū)動程序的開發(fā), 讀者可以對Windows CE 的驅(qū)動程序的結(jié)構(gòu)、編寫以及實際應用能有一定的了解。本文作者創(chuàng)新點:在Windows CE.net系統(tǒng)下進行底層設(shè)備驅(qū)動開發(fā),采用流接口的方式,實現(xiàn)了三星公司ARM9 內(nèi)核的芯片S3C2410 ADC 驅(qū)動程序。
本文地址:http://www.qingdxww.cn/thread-20562-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節(jié)省時間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91啦中文成人 | 青在线视频| 黄色在线免费观看网站 | 一区二区三区毛片免费 | 成人免费牛牛在线视频 | 91国内精品久久久久怡红院 | 国内外成人免费视频 | 成人在线视频网 | 农奴完整版在线观看 | 停停色| 欧美高清一区二区三区欧美 | 成年免费大片黄在线观看一 | 大伊香蕉精品一区视频在线 | 国产日韩精品一区二区 | 97在线观看免费观看高清 | 红纸鹤免费高清在线观看 | 国产在线精品福利一区二区三区 | 99在线观看视频免费 | 国产二区在线播放 | 欧美色成人| 国产一精品一aⅴ一免费 | 和阿同居的日子hd | 91视频青青草 | 免费高清不卡毛片在线看 | 成人精品视频一区二区三区尤物 | 中文字幕乱码人成乱码在线视频 | 九九在线精品视频 | 欧美精品香蕉在线观看网 | 婷婷色六月| 国产一区二卡三区四区 | 天天干天天操天天爽 | 国产日韩欧美一区 | 在线免费观看日韩视频 | 女教师韩国无删减完整版 | 综合国产在线 | 一级不卡毛片 | 国产日韩欧美在线一二三四 | 日本高清一区二区三区不卡免费 | 操青青| 亚洲成人tv | 国产日韩欧美swag在线观看 |