出版時(shí)間:2008-10 出版社:中國電力出版社 作者:李大為 頁數(shù):399 字?jǐn)?shù):646000
Tag標(biāo)簽:無
前言
2006年的11月份,微軟正式發(fā)布了Windows CE的6.O版本,全名為Windows EmbeddedCE 6.0。伴隨Windows CE 6.0版本的操作系統(tǒng)開發(fā)工具一起,微軟還公開了它的全部內(nèi)核態(tài)的源代碼。對于有志于深入鉆研Windows CE操作系統(tǒng)的技術(shù)人員來說,這無疑是一個(gè)特大的好消息。市面上充斥著大量的解析Linux內(nèi)核源代碼的書籍,卻沒有一本與之相應(yīng)的解析Windows CE內(nèi)核源代碼的書,原因是顯而易見的,因?yàn)檫@是微軟首次向中國內(nèi)地完全免費(fèi)地公布Windows CE操作系統(tǒng)的內(nèi)核源代碼。當(dāng)時(shí)我正在微軟的一家代理商那里做微軟嵌入式Windows產(chǎn)品的技術(shù)支持工作,面對著這種有利的形勢,當(dāng)時(shí)我就萌生了寫一本解析Windows CE內(nèi)核源代碼的書,內(nèi)容應(yīng)該包括:Windows CE操作系統(tǒng)的進(jìn)程(線程)調(diào)度機(jī)制、內(nèi)存管理技術(shù)、設(shè)備驅(qū)動(dòng)程序管理機(jī)制等。但是隨后結(jié)合我所接觸的Windows CE的使用者的情況來看,我發(fā)現(xiàn)他們中的大多數(shù)最需要的不是線程調(diào)度、內(nèi)存管理之類的深入的技術(shù)內(nèi)容,而是實(shí)實(shí)在在的Windows CE操作系統(tǒng)的底層移植。由于嵌入式硬件的無標(biāo)準(zhǔn)、非規(guī)范的特性,嵌入式的操作系統(tǒng)都存在著一個(gè)底層移植的問題。廠商所提供的嵌入式操作系統(tǒng)一般都只是與特定嵌入式硬件平臺無關(guān)的操作系統(tǒng)中間層,使用這些嵌入式操作系統(tǒng)開發(fā)具體的電子產(chǎn)品的開發(fā)者需要實(shí)現(xiàn)底層驅(qū)動(dòng)軟件以供操作系統(tǒng)的中間層使用。離開了這些底層的驅(qū)動(dòng)軟件,操作系統(tǒng)的中間層就無法操作硬件,于是整個(gè)操作系統(tǒng)的啟動(dòng)運(yùn)行就無從談起。微軟將Windows CE的底層驅(qū)動(dòng)軟件使用標(biāo)準(zhǔn)的目錄結(jié)構(gòu)進(jìn)行打包,并且命名為BSP,意思是板級支持包(Board Support Package),這里所謂的“板”就是特定嵌入式硬件的電路設(shè)計(jì)主板,與之相應(yīng)的,不同的嵌入式硬件設(shè)計(jì)就有不同的BSP軟件包。由于為嵌入式操作系統(tǒng)開發(fā)底層驅(qū)動(dòng)軟件同時(shí)涉及操作系統(tǒng)的底層接口機(jī)制和對特定硬件操作的技術(shù),這對開發(fā)者的技術(shù)能力提出了更高的要求,事實(shí)上對任何一款嵌入式操作系統(tǒng)開發(fā)底層驅(qū)動(dòng)軟件比開發(fā)上層應(yīng)用軟件的難度都要大得多。大的嵌入式電子產(chǎn)品廠商通常以商業(yè)運(yùn)作的手段解決技術(shù)所帶來的問題。由于國家的法律不能夠充分地保護(hù)知識產(chǎn)權(quán),企業(yè)在技術(shù)方面的投資成果很容易隨著技術(shù)人員的跳槽而被帶走,甚至是帶到企業(yè)的競爭對手那里。而國內(nèi)的大多數(shù)企業(yè)管理水平都不夠,不能夠很有效地應(yīng)對高科技產(chǎn)品的研發(fā)和技術(shù)積累的工作。此外,在中國的人才市場上獲得合格的技術(shù)人才并不是很容易,企業(yè)的管理者們在有些情況下不得不遷就技術(shù)人才。所有這些都對國內(nèi)的企業(yè)投資技術(shù)不利,技術(shù)的含量越高,投資的風(fēng)險(xiǎn)也就越大。
內(nèi)容概要
本書是《Windows CE項(xiàng)目開發(fā)實(shí)踐叢書》之一。 本書講述了Windows CE操作系統(tǒng)底層驅(qū)動(dòng)軟件開發(fā)技術(shù)。全書共分5篇25章,內(nèi)容包括開發(fā)Windows CE的BootLoader、OAL、顯示設(shè)備驅(qū)動(dòng)程序、串口驅(qū)動(dòng)程序和PC卡總線接口驅(qū)動(dòng)程序,通過解析和研讀微軟的DeviceEmulator開發(fā)板的BSP的源代碼,旨在幫助讀者系統(tǒng)、全面、具體地了解Windows Embedded CE的BSP的原理與開發(fā)技術(shù),從而達(dá)到理解和實(shí)踐Windows CE嵌入式系統(tǒng)軟件開發(fā)目的。 本書注重系統(tǒng)性、先進(jìn)性和實(shí)用性,具有特色鮮明、邏輯性強(qiáng)、針對性強(qiáng)的特點(diǎn)。本書適合于從事Windows CE操作系統(tǒng)軟件開發(fā)的工程技術(shù)人員使用,也可作為高等院校自動(dòng)化、電子、計(jì)算機(jī)、通信工程等專業(yè)師生的科研參考書。
書籍目錄
前言緒論第一篇 開發(fā)Windows CE的BootLoader 第1章 BootLoader的理論知識介紹 1.1 BootLoader是大多數(shù)嵌入式操作系統(tǒng)運(yùn)行最初的開始 1.2 微軟建議Windows CE的BootLoader所應(yīng)實(shí)現(xiàn)的功能 1.3 BootLoader并不是基于Windows CE的嵌入式軟件系統(tǒng)的必不可少的組成部分 第2章 Windows CE BootLoader的軟件框架和支持庫 2.1 以Eboot為實(shí)例學(xué)習(xí)WindOWS CE BootLoader的軟件框架 2.2 BLCOMMON支持庫 2.3 Eboot支持庫 2.4 EthDbg驅(qū)動(dòng)程序 第3章 案例解說開發(fā)實(shí)現(xiàn)OEM函數(shù) 3.1 DeviceEmulator虛擬平臺的硬件設(shè)計(jì) 3.2 開天辟地的Startup函數(shù) 3.3 控制流OEM函數(shù) 3.4 調(diào)試功能OEM函數(shù) 3.5 下載功能OEM函數(shù) 3.6 以太網(wǎng)收發(fā)幀OEM函數(shù) 3.7 Flash操作OEM函數(shù) 3.8 時(shí)鐘功能OEM函數(shù) 3.9 可選實(shí)現(xiàn)的OEM函數(shù) 3.10 在BootLoacler和操作系統(tǒng)之間共享信息的數(shù)據(jù)結(jié)構(gòu) 3.11 保存用戶選項(xiàng)配置參數(shù)的數(shù)據(jù)結(jié)構(gòu) 第4章 認(rèn)識Windows CE操作系統(tǒng)鏡像文件的格式第二篇 開發(fā)Windows CE的OAL 第5章 Windows CE操作系統(tǒng)的系統(tǒng)啟動(dòng)執(zhí)行流程 5.1 圖覽Windows CE的初始化啟動(dòng)流程 5.2 開天辟地的StartUp函數(shù) 5.3 KemelStart函數(shù) 5.4 ARMlnit函數(shù) 5.5 kernel.d11模塊的入口點(diǎn)函數(shù)NKStartup 5.6 ARMSetup函數(shù) 5.7 KemelStart函數(shù) 第6章 案例解說WindOWS CE OAL的開發(fā)任務(wù)匯總 6.1 OAL是什么 6.2 OEMGLOBAL結(jié)構(gòu)體及其全局變量 6.3 OEM地址映射表 6.4 OEMIoControl函數(shù) 6.5 OAL的Cache操作OEM函數(shù) 第7章 Windows CE操作系統(tǒng)的中斷處理機(jī)制 7.1 ISR和IST協(xié)同處理外設(shè)的中斷請求 7.2 設(shè)置系統(tǒng)中斷向量表 7.3 初始化函數(shù)OEMInit并啟用硬件中斷處理機(jī)制 7.4 實(shí)現(xiàn)OEMInterruptHandler函數(shù)供操作系統(tǒng)處理IRQ中斷 7.5 實(shí)現(xiàn)OEMInterruptHandlerFIQ函數(shù)處理FIQ中斷 7.6 案例解說中斷處理的另一組成部分IST 7.7 為IST做哪些事情 第8章 系統(tǒng)時(shí)鐘管理 8.1 初始化函數(shù)OEMInit并啟用系統(tǒng)時(shí)鐘 8.2 ISR必須處理系統(tǒng)時(shí)鐘的定時(shí)中斷請求 第9章 TOC的秘密 9.1 初識pTOC指針 9.2 解析實(shí)例以加深認(rèn)識TOC數(shù)據(jù) 9.3 TOC的條目 9.4 TOC數(shù)據(jù)的實(shí)質(zhì) 第10章 KITL調(diào)試技術(shù) 10.1 什么是KITL 10.2 圖覽KITL的初始化流程 10.3 初始化KITL庫 10.4 初始化Windows CETL連接 10.5 0AL KITL ARGS結(jié)構(gòu)體 10.6 0AL KITL DEVICE結(jié)構(gòu)體 10.7 主動(dòng)的KITL模式與被動(dòng)的KITL模式 10.8 KITLTRANSPORT結(jié)構(gòu)體 10.9 匯總OAL的開發(fā)者需要為啟用KITL功能做哪些事情 第11章 案例解說以太網(wǎng)端口設(shè)備EthDbg驅(qū)動(dòng)程序的開發(fā) 11.1 CS8900A的硬件原理知識 11.2 讀寫ReadlPacketPage和WritePacketPage 11.3 硬件初始化函數(shù)CS8900AInit 11.4 發(fā)送以太網(wǎng)數(shù)據(jù)幀函數(shù)CS8900ASendFrame 11.5 接收以太網(wǎng)數(shù)據(jù)幀函數(shù)CS8900AGetFrame 11.6 啟用與禁用CS8900A的中斷功能的函數(shù)CS8900AEnableInts和CS8900ADisableInts 11.7 CS8900A的配置地址過濾機(jī)制的函數(shù)CS8900ACurrentPacketFilter和 CS8900AMultleastList第三篇 開發(fā)Windows CE的顯示設(shè)備驅(qū)動(dòng)程序 第12章 從DDI系列函數(shù)開始 12.1 DDI函數(shù)是什么 12.2 WindLOWS CE的GWES子系統(tǒng)如何獲得DDI函數(shù) 12.3 DrvGradientFill和DrvAlphaBlend函數(shù) 12.4 DrvEnablePDEV和DrvDisablePDEV函數(shù) 12.5 DrvEnableSurface和DrvDisableSurfaee函數(shù) 12.6 DrvCreateDeviceBitmap和DrvDeleteDeviceBitmap函數(shù) 12.7 DrvRealizeBrush函數(shù) 12.8 DrvStrokePath函數(shù) 12.9 DrvFillPath函數(shù) 12.10 DrvPaim函數(shù) 12.11 塊傳輸功能函數(shù)DrvAnyBlt、DrvBitBlt、DrvCopyBits和DrvTransparentBlt 12.12 DrvSetPalette函數(shù) 12.13 DrvSetPointerShape函數(shù) 12.14 DrvMovePointer函數(shù) 12.15 DrvGetModes函數(shù) 12.16 DrvRealizeColor和DrvlJnrealizeColol‘函數(shù) 12.17 DrvGetMasks函數(shù) 12.18 DrvContrastControl函數(shù) 12.19 DrvPowerHandler函數(shù) 12.20 DrvEscape函數(shù) 12.21 DrvDisableDriver函數(shù) 第13章 Windows CE的顯示表面及與之相關(guān)的數(shù)據(jù)結(jié)構(gòu) 13.1 顯示表面 13.2 調(diào)色板、顏色轉(zhuǎn)換對象和顏色轉(zhuǎn)換類 13.3 SLIRFOBJ結(jié)構(gòu)體和TmpGPESmf類 13.4 路徑 13.5 剪切板對象CLIPOBJ 13.6 畫筆 第14章 GPE類是用戶開發(fā)WindOWS CE的顯示設(shè)備驅(qū)動(dòng)程序工作的起點(diǎn) 14.1 從DDI到CPE 14.2 GPE類 14.3 GPE類和塊傳輸操作 14.4 GPE類和畫線操作 14.5 DeviceEmulator的顯示設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)——S3C2410DISP類 第15章 顯示設(shè)備及其驅(qū)動(dòng)程序?qū)irOCtDraw功能的支持 15.1 由導(dǎo)出函數(shù)HALInit引出DDHALINFO結(jié)構(gòu)體 15.2 DDHALINFO結(jié)構(gòu)體 15.3 DDCAPS結(jié)構(gòu)體 15.4 DDHAL DDCALLBACKS結(jié)構(gòu)體 15.5 DDHAL_DDSURFACECALLBACKS結(jié)構(gòu)體 15.6 DirectDraw顯示表面 15.7 DDGPE類第四篇 開發(fā)Windows CE的串口驅(qū)動(dòng)程序 第16章 設(shè)備管理器和流式接口設(shè)備驅(qū)動(dòng)程序 16.1 串口驅(qū)動(dòng)程序是典型的流式接口設(shè)備驅(qū)動(dòng)程序 16.2 設(shè)備管理器以總線枚舉的方式加載流式接口的設(shè)備驅(qū)動(dòng)程序 16.3 總線枚舉器加載一個(gè)設(shè)備驅(qū)動(dòng)程序的具體步驟 第17章 串口設(shè)備句柄和串口文件句柄 17.1 從COM—Init導(dǎo)出函數(shù)到HW INDEP INFO結(jié)構(gòu)體 17.2 pHWObji成員 17.3 pHWHead成員 17.4 DCB成員 17.5 CommTimeouts成員 17.6 RxBufferInfo和TxBufferInfo成員 17.7 pAccessOwner、0penList、OpenCS和OpenCnt成員 17.8 fEventMask成員 17.9 pDispatchThread、PIiority256、hKillDispatchThread、KillRxThread和 hSerialEvent成員 17.10 hReadEvent和hTransmitEvem成員 17.11 fAbortRead和fAboffTransmit成員 17.12 DroppedBytesMDD、DroppedIBytesPDD、RxBytes、TxBytes、TxBytesPendillg和 TxBytesSent成員 17.13 XFlow、StopXmit、SentXoff、DtrFlow和RtsFlow成員 17.14 ReceiveCritSecl和TransmitCritSecl成員 17.15 dwMddErrors成員 第18章 CSeriaIPDD類是OEM用戶開發(fā)WindOWS CE串口驅(qū)動(dòng)程序PDD層工作的起點(diǎn) 18.1 CSerialPDD類定義 18.2 CSerialPDD類的初始化部分 18.3 CserialPDD類的串口設(shè)備操作部分 18.4 CSerialPDD類的中斷接口部分 18.5 CSerialPDD類的數(shù)據(jù)發(fā)送與接收部分 18.6 CSerialPDD類的MODEM功能部分 18.7 CSerialPDD類的線路功能部分 18.8 CSerialPDD類的串口配置部分 18.9 CSerialPDD類的IR特殊處理部分和錯(cuò)誤處理部分 第19章 Windows CE操作系統(tǒng)對外設(shè)的電源狀態(tài)管理 19.1 電源管理架構(gòu)和電源管理器 19.2 設(shè)備電源狀態(tài)和系統(tǒng)電源狀態(tài) 19.3 電源管理器與設(shè)備驅(qū)動(dòng)程序之間的編程接口 19.4 電源管理器與應(yīng)用程序之間的編程接口 19.5 例說設(shè)備驅(qū)動(dòng)程序開發(fā)中的電源管理實(shí)務(wù) 第20章 案例解說串口驅(qū)動(dòng)程序的具體開發(fā) 20.1 DeviceEmulator的串口驅(qū)動(dòng)程序PDD層的類定義 20.2 CReg2410uan類 20.3 S3C2410串口驅(qū)動(dòng)程序PDD層的初始化 20.4 CPdd2410Uart類的PostInit成員函數(shù) 20.5 串口數(shù)據(jù)接收中斷請求處理函數(shù)Recei、veInterruptHandler 20.6 串口MODEM事件中斷請求處理函數(shù):ModemInterruptHandler 20.7 串口線路中斷請求處理函數(shù)LineInterruptHandler 20.8 串口驅(qū)動(dòng)程序PDD層的流控功能函數(shù)xmitcomchaT、SetDTlR和SetRTs 20.9 串口數(shù)據(jù)發(fā)送中斷請求處理函數(shù)XmitInterruptHandler 20.10 串口發(fā)送間斷信號的功能函數(shù)SetBreak 20.11 CancelReceive函數(shù)和CantelXlmit函數(shù) 20.12 SetOutputMode函數(shù)和SetBaudRate函數(shù)第五篇 開發(fā)Windows CE的PC卡總線接口驅(qū)動(dòng)程序 第21章 PC卡總線橋驅(qū)動(dòng)程序 21.1 PC卡驅(qū)動(dòng)程序的分層結(jié)構(gòu) 21.2 PC卡接口驅(qū)動(dòng)程序?qū)嶓w分離的MDD層和PDD層 21.3 PC卡總線橋驅(qū)動(dòng)程序 第22章 CPCCardBusBridgeBase類是OEM開發(fā)者開發(fā)PC卡總線橋驅(qū)動(dòng)程序工作的起點(diǎn) 22.1 CPCCardBusBridgeBase類定義 22.2 CPcmciaWindowlnfo類 22.3 CPCCardBusBridgeBase類的數(shù)據(jù)成員和成員函數(shù) 第23章 CPcmciaBusBridge類——DeviceEmulator的PC卡總線橋驅(qū)動(dòng)程序具體實(shí)現(xiàn) 23.1 CPcmciaBusBridge類的抽象意義及繼承關(guān)系 23.2 CPcmciaBusBradge類的數(shù)據(jù)成員 23.3 CPcmciaBusBridge類的構(gòu)造函數(shù)要負(fù)責(zé)生成PC卡總線橋驅(qū)動(dòng)程序的IST線程 23.4 CPcmciaBusBridge類的Init成員函數(shù)負(fù)責(zé)初始化PC卡總線橋硬件和向上提交Socket Service 第24章 PC卡的Socket 24.1 Socket Service的內(nèi)容 24.2 DeviceEmulator的Pc卡Socket的類數(shù)據(jù)結(jié)構(gòu)及其繼承關(guān)系 24.3 Socket的屬性(信息)和狀態(tài) 24.4 PC卡Socket在系統(tǒng)中的組織管理 24.5 Socket的句柄 24.6 Socket的電源管理 24.7 PC卡總線橋設(shè)備與Pc卡Socket在軟件數(shù)據(jù)結(jié)構(gòu)上的關(guān)聯(lián) 第25章 PCMCIA橋驅(qū)動(dòng)程序的lST線程和ISR 25.1 CPcmciaBusBridge類成員函數(shù)Installlsr初始化PCMCIA控制器的卡狀態(tài)改變中斷 25.2 PC卡總線橋驅(qū)動(dòng)程序的IST線程負(fù)責(zé)處理PC卡插拔和Socket電源狀態(tài)改變事件參考文獻(xiàn)
章節(jié)摘錄
插圖:
編輯推薦
《Windows CE工程實(shí)踐完全解析》適合于從事Windows CE操作系統(tǒng)軟件開發(fā)的工程技術(shù)人員使用,也可作為高等院校自動(dòng)化、電子、計(jì)算機(jī)、通信工程等專業(yè)師生的科研參考書。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Windows CE工程實(shí)踐完全解析 PDF格式下載