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