《ARM9嵌入式系統開發與實踐》

《ARM9嵌入式系統開發與實踐》,作者王黎明、陳雙橋、閆曉玲、史毓達、葛德宏,北京航空航天大學出版社2008年10月1日出版。

基本信息

基本信息

作者:王黎明陳雙橋閆曉玲史毓達葛德宏

類別:單片機與嵌入式系統→ARM

價格:69元

字數:1030千字

ISBN:978-7-81124-239-3

出版社:北京航空航天大學出版社

開本:787×10921/16開

出版時間:2008年10月1日

內容簡介

本書主要講述了以SAMSUNG公司的S3C2410為代表的ARM9微處理器的開發流程,內容涵蓋了嵌入式系統的軟、硬體開發兩個方面:一是微處理器的接口電路設計、接口時序、電氣特性等內容的分析;二是對應的軟體的實現方法和μC/OS-II、Linux、WinCE及Qt在ARM9上的移植方法。

本書的特點是在分析以s3c2410為代表的ARM9微處理器的開發過程中,首先為開發者搭建一個可以運行的最小系統;然後分析在最小系統下可以方便擴展的外設功能部件,對每個擴展的外設功能部件進行分析,包括原理、接口電路設計、基本操作及詳細的實例分析;最後開發者可以按照自身的需要選取不同的外設部件,完成套用系統的開發。本書分析了μC/OS-II、Linux、WinCE及Qt在S3C2410處理器上的移植,特別是在國內,WinCE及Qt套用方面的著作很少,本書是對這一領域的補充。每一章都為讀者留有思考與練習題,幫助讀者更好地掌握本書的內容。隨書附光碟1張,含書中原代碼,供讀者參考。

本書可作為機電控制、信息家電、工業控制、手持儀器、醫療器械、機器人技術等方面嵌入式系統開發與套用參考書,也可以作為高等院校有關嵌入式系統教學的本科生或研究生教材。

前言

嵌入式系統已經進入32位時代,在當前數字信息技術和網路技術高速發展的後PC時代,嵌入式系統已經廣泛地滲透到消費電子、航空航天、汽車電子、醫療保健、網路通信、工業控制等各個領域。“嵌入式系統”這個名詞已經被各行業的人所熟悉,正在以不同的形式悄悄地改變著人們的生產、生活方式。毋庸置疑,嵌入式系統已經成為當今計算機領域的一個亮點。

從技術角度來講,嵌入式系統是軟體和硬體的有機結合體。一名合格的嵌入式系統設計人員往往要求同時具備軟體和硬體兩個方面的知識。因此,做系統底層設計的軟體工程師很希望學習到相關的硬體設計知識,以便寫出效率更高、可移植性更強、接口更簡單的軟體模組;硬體設計者則希望學到針對硬體的驅動開發程式,從而更好地考慮什麼樣的硬體設計更容易編寫驅動程式;嵌入式系統的總體設計者則需要綜合考慮軟硬體的設計。因此,本書在軟體和硬體兩個方面做了很好的兼顧,讓不同需求的讀者都能從本書中找到自身開發的靈感和解決問題的方法。

本書以頻率高達200MHz的ARM9處理器為對象平台,介紹了基於ARM9核心處理器嵌入式系統開發的各個主要環節。本書沒有過多的講述原理,而是從功能需求出發,以分析的角度來學習嵌入式系統開發的各種技術,內容涵蓋了軟體和硬體的兩個層面。每一章都獨立為一個主題,較全面地向讀者展現了嵌入式系統開發的全過程。

本書的組織結構

第1章為基礎部分。首先介紹了嵌入式系統的概念、嵌入式系統的組成,包括嵌入式平台的硬體構架、板級支持包和嵌入式系統上的應用程式;然後介紹了嵌入式系統的開發流程,ARM處理器的分類、結構和選型;最後簡述了市面上流行的嵌入式作業系統的種類以及選型規則。本章主要是讓讀者對嵌入式系統有一個整體的印象,從而引導讀者進入嵌入式系統開發的大門。

第2章為嵌入式開發的工具介紹。首先介紹了ADS集成開發環境的組成及使用方法,ADS創建、編譯、連線實際工程的步驟方法,使用AXD進行代碼調試的方法;然後介紹了ARM-JTAG調試器的製作、驅動安裝和使用方法。本章為後面章節程式的開發提供了必要的軟體開發環境和調試工具。

第3章為S3C2410處理器的體系結構與外設以及最小系統的設計方法。首先講述了S3C2410處理器的內部結構、引腳功能、硬體資源;然後分析了基於S3C2410處理器建立最小系統的硬體結構設計和相應的啟動代碼。通過學習本章,讀者可以深入了解ARM9核心典型處理器S3C2410的模組結構及最小系統的軟硬體開發,從而為後面章節介紹的S3C2410功能的擴展提供一個基礎的軟硬體平台。

第4章基於S3C2410的最小系統擴展集成功能模組,包括ADC、DMA、IIC、LCD、NandFlash、NorFlash、PWM、RTC、SD卡、UART、USB、觸控螢幕、WatchDog、音頻接口及定時器中斷等,對每個功能模組都進行了詳細的描述,包括簡單的原理、相關的暫存器、硬體設計原理圖、驅動程式的開發、測試方法等。通過學習本章,讀者可以更深入了解S3C2410處理器集成的接口控制器,可以針對不同的功能需求進行不同模組的擴展。

第5章基於S3C2410處理器進行功能模組的擴展,包括8×8點陣、CAN、CF卡、GPRS、GPS、IDE、RS-485、TFTP、VGA、步進電動機控制、行列式鍵盤等。本章是在讀者對S3C2410處理器有了深入理解的基礎上的功能擴展,包括每個模組的原理、硬體設計原理圖、驅動程式的開發、測試方法等。通過本章的介紹,使讀者能夠根據功能需求,對S3C2410處理器進行功能模組的擴展開發。

第6章介紹S3C2410開發平台的Bootloader。首先介紹了Bootloader的概念,分析了vivi和U-Boot兩種Bootloader;然後給出了作者自行開發的簡單的Bootloader。通過本章的介紹,使讀者掌握如何編寫Bootloader,建議讀者在閱讀本章之前,先熟悉一下ARM的彙編語言。

第7章為嵌入式實時多任務作業系統μc/OS-II在S3C2410處理器上的移植。首先概括地介紹了μc/OS-II作業系統的特點和作業系統移植過程中需要修改的代碼檔案;然後介紹了μc/OS-II作業系統的任務之間的通信和同步方法;最後給出了一個多任務作業系統的例程分析。通過本章的介紹,使讀者掌握μc/OS-II作業系統的移植方法。

第8章為WinCE嵌入式作業系統在ARM9S3C2410上的移植,包括WinCE的開發環境PB的安裝、構建開發平台、新平台的配置編譯以及WinCE映像檔案的運行。通過本章的介紹,使讀者掌握WinCE嵌入式作業系統的移植和應用程式開發方法。

第9章為Linux作業系統在ARM9核心處理器上的移植方法。首先介紹了嵌入式Linux作業系統的核心結構、編譯環境的建立、編譯工具的安裝以及核心編譯的步驟;然後講述了根檔案系統製作的方法以及設備驅動程式的開發方法;最後詳細分析了幾種設備驅動程式的開發方法。通過本章的介紹,使讀者掌握嵌入式Linux作業系統移植和驅動程式開發的方法。

第10章為基於ARM9核心的S3C2410平台圖形系統的開發。首先介紹了嵌入式系統下的Microwindows的實現;然後講述了嵌入式系統下MiniGUI的實現;最後詳細介紹了Qt/Embedded圖形系統的開發,包括工具包、開發環境、套用開發等。通過本章的學習,讀者可以掌握基於嵌入式圖形系統開發的方法。

第11章是全書知識的總結與套用。主要在前10章的基礎上引導讀者開發一套自己的基於ARM9核心的嵌入式開發系統。首先介紹了系統的硬體設計包括電源設計、存儲器設計、復位時鐘電路設計以及LCD設計等;接著介紹了硬體PCB設計應注意的問題;最後介紹了軟體的開發與調試。

相關說明

本書花費了大量篇幅講述一些驅動程式代碼的分析。講述代碼是一個很令人頭痛的問題,要想把程式的來龍去脈講清楚,就不得不貼上一些源碼上來。怎么貼?貼多少?太長的源碼印在紙上,即使有詳細的注釋,也實在不容易前後對照地看清楚。因此,本書很多地方僅僅列出了一些關鍵性的代碼,幫助讀者分析,次要的部分用省略號帶過。同時書中的全部代碼都可以在所附光碟中找到。

書中經常會省略很多基礎知識和原理的討論,請讀者參考相關的文檔。因為嵌入式系統涉及的範圍太廣了,讀者的確需要相當多的參考資料,而不僅僅指望一本書。本書的目的在於結合作者實際工作中的一些經驗,給讀者一個思路和解決問題的辦法,讓讀者能夠舉一反三。

在科技術語方面,書中儘量採用中英文結合的方式。多數縮寫和英文都在附錄給出了對應的中文。書中儘量採用中文術語進行描述,但是有些術語實在找不到對應的確切中文,則直接使用英文。

讀者對象

本書是一本介紹嵌入式系統開發的書籍,同時也介紹了一些關於嵌入式作業系統驅動程式開發的知識,適合下列人員閱讀:
想學習或剛剛進入嵌入式系統領域的開發人員。
想學習ARM9處理器的開發人員。
對嵌入式作業系統的移植感興趣的人員。
使用S3C2410進行快速開發產品的開發人員。
想快速上手學習ARM9系統軟硬體的人員。

儘管本書面向初級嵌入式系統開發人員,但讀者需要熟悉相關的硬體知識以及C語言和彙編語言,至少能讀懂書中提到的代碼。特別還要熟悉一些Linux的基本指令。如果以前沒有接觸過Linux,那么最好先閱讀一些Linux入門的書。

相關軟體

本書提到的很多軟體是GNU軟體,可以從網際網路免費獲得,比如binutils、GCC、Glibc、gdb等。Linux核心可以從www.kernel.org下載。其他代碼包含在所附光碟中。相關的硬體晶片手冊可以從晶片提供商網站獲得。

致 謝

本書的編寫過程得到了很多人的支持和熱心關注。首先感謝我的愛人,是她在一直默默地支持我將這本書順利完成。還有我的父母,是他們培養我對新技術的興趣和學習能力,是他們影響了我的人生觀和待人處事的態度。感謝我的博士生導師王明哲教授多年來對我的指導和信任。感謝海軍工程大學電氣與信息學院的夏立、卜樂平、邵英、宋立忠教授多年來對我的關心與鼓勵。感謝好友劉平、焦少光、單勇、楊忠林、馬賽、徐襲、侯新國、黃海、周衛平尹陽、王征、魏建華、馮源、毛海濤、黃楠、錢美、歐陽華、尹為民、王仲東、周雲超、楊宣訪、江漢紅、吳漢松、易曙光等在生活中真誠的幫助。
其次感謝深圳優龍科技有限公司,他們為本書的完成提供了非常完美的測試環境,提供了FS2410XP實驗平台和ST2410開發板兩個硬體測試平台,同時第4、5、10章的部分內容是由該公司提供的。

目錄

第1章嵌入式系統體系結構概述
1.1嵌入式系統的概念1
1.2嵌入式系統的組成2
1.2.1嵌入式平台的硬體結構2
1.2.2板級支持包和嵌入式系統2
1.2.3嵌入式系統上的應用程式2
1.3嵌入式系統的開發流程和優勢3
1.4ARM微處理器概述4
1.4.1ARM簡介4
1.4.2ARM微處理器的套用領域及特點4
1.4.3ARM微處理器系列5
1.4.4ARM微處理器結構7
1.4.5ARM微處理器的套用選型8
1.5典型的嵌入式作業系統9
1.5.1Linux9
1.5.2WinCE10
1.5.3VxWorks10
1.5.4μC/OS-II11
1.5.5PalmOS11
1.5.6QNX12
1.5.7LynxOS13
1.5.8OS-913
1.5.9WindowsXPEmbedded13
1.5.10eCos13
1.5.11NucleusPLUS14
1.6嵌入式作業系統類型的選擇15
1.6.1嵌入式作業系統的選擇分類15
1.6.2嵌入式作業系統的選擇標準16
1.7小結16
思考與練習16
第2章ADS集成開發環境及簡易JTAG仿真器的使用
2.1ADS集成開發環境組成17
2.1.1應用程式到調試目標17
2.1.2根據目標硬體定製存儲器映射21
2.1.3GUI開發環境27
2.2使用ADS創建工程31
2.2.1建立一個工程31
2.2.2編譯和連結工程33
2.2.3ASM的參考代碼37
2.3用AXD進行代碼調試38
2.3.1安裝並運行ARM-JTAG調試代理ARM938
2.3.2為ARM-JTAG調試代理配置AXDDebugger39
2.3.3使用ARM-JTAG在ADS1.20環境下進行仿真調試40
2.3.4ARM-JTAG設計電路圖40
2.4小結41
思考與練習41
第3章S3C2410體系結構與外設及最小系統設計
3.1S3C2410處理器介紹43
3.1.1S3C2410處理器概述43
3.1.2S3C2410處理器引腳描述44
3.1.3S3C2410的核心結構49
3.2S3C2410特性介紹50
3.3S3C2410最小系統設計53
3.3.1最小系統框圖53
3.3.2時鐘與電源管理54
3.3.3系統時鐘控制55
3.3.4電源管理58
3.3.5時鐘與電源管理相關暫存器描述60
3.3.6存儲器控制概述62
3.3.7BootROM設計62
3.3.8EEPROM/SRAMBank設計65
3.3.9NandBoot設計66
3.3.10SDRAM接口設計67
3.3.11存儲器相關暫存器68
3.3.12S3C2410兩種啟動方式74
3.3.13nGCS片選存儲器時序操作75
3.3.14S3C2410最小系統硬體電路設計76
3.3.15最小系統的程式代碼分析82
3.3.16最小系統程式的Flash編程109
3.4利用最小系統調試或燒寫程式124
3.4.1用MDS通過串口來全速運行和調試應用程式124
3.4.2用MDS通過串口燒寫應用程式到Flash里124
3.5小結124
思考與練習125
第4章S3C2410主要外設及功能部件詳解
4.1ARM指令126
4.1.1常用ARM指令的功能介紹126
4.1.2實驗電路分析129
4.1.3ARM彙編程式編程實例129
4.1.4實驗測試方法及步驟分析130
4.2彙編與C語言混合編程132
4.2.1ARM過程調用ATPCS132
4.2.2彙編與C語言的相互調用133
4.2.3彙編與C語言混合編程應用程式134
4.2.4實驗測試方法與步驟135
4.3通用I/O連線埠控制135
4.3.1通用I/O口概述135
4.3.2通用I/O口相關暫存器描述136
4.3.3通用I/O口兩種套用電路137
4.3.4使用示例及注意事項138
4.3.5通用I/O控制單LED實例分析139
4.3.6實驗檢測方法及步驟142
4.4UART異步串口通信142
4.4.1UART異步串口概述142
4.4.2S3C2410的UART控制器143
4.4.3UART異步串列口的相關暫存器146
4.4.4異步串口套用電路150
4.4.5使用示例及注意事項150
4.4.6UART串列通信套用編程實例152
4.5A/D轉換153
4.5.1A/D轉換的原理153
4.5.2A/D轉換器概述154
4.5.3A/D轉換相關暫存器描述155
4.5.4A/D轉換套用電路157
4.5.5A/D轉換基本操作和使用示例158
4.5.6單通道A/D轉換實例分析159
4.5.7ADC實驗測試方法及步驟161
4.6DMA訪問161
4.6.1DMA訪問的原理161
4.6.2DMA傳送的方式162
4.6.3DMA訪問相關暫存器描述162
4.6.4DMA的操作及注意事項167
4.6.5DMA應用程式編程實例169
4.6.6DMA實驗測試方法及步驟173
4.7NandFlash控制器173
4.7.1NandFlash簡介174
4.7.2典型的NandFlash引腳定義和內部結構框圖174
4.7.3NandFlash定址方式175
4.7.4NandFlash的指令與時序176
4.7.5S3C2410的NandFlash控制器176
4.7.6NandFlash相關暫存器179
4.7.7NandFlash暫存器設定舉例181
4.7.8如何從NandFlash中讀出數據182
4.7.9NandFlash接口電路套用模組182
4.7.10NandFlash應用程式編程實例183
4.7.11實驗測試方法及步驟189
4.8NorFlash訪問189
4.8.1NorFlash簡介189
4.8.2典型NorFlash引腳及內部結構190
4.8.3NorFlash讀寫時序191
4.8.4NorFlash接口套用電路191
4.8.5NorFlash應用程式實例194
4.8.6實驗測試方法及步驟197
4.9PWM控制蜂鳴器和直流電動機198
4.9.1PWM簡介198
4.9.2S3C2410的PWM控制器198
4.9.3PWM相關暫存器描述201
4.9.4PWM控制器的基本操作204
4.9.5PWM套用接口電路圖204
4.9.6PWM控制蜂鳴器相關函式和功能205
4.9.7實驗測試方法及步驟207
4.9.8PWM控制直流電動機套用電路207
4.9.9PWM控制直流電動機相關函式和功能208
4.9.10PWM控制直流電動機實驗測試方法及步驟210
4.10RTC實時時鐘210
4.10.1實時時鐘在嵌入式系統中的作用210
4.10.2S3C2410的實時時鐘單元211
4.10.3RTC實時時鐘的結構211
4.10.4實時時鐘(RTC)相關暫存器212
4.10.5RTC實時時鐘接口套用電路215
4.10.6RTC實時時鐘基本操作及注意事項215
4.10.7RTC應用程式編程實例216
4.10.8實驗測試方法及步驟217
4.11IIC匯流排串列通信218
4.11.1IIC匯流排介紹218
4.11.2IIC雙向傳輸的接口特性219
4.11.3IIC匯流排數據傳送格式和傳送過程220
4.11.4S3C2410的IIC匯流排控制器221
4.11.5IIC匯流排相關暫存器描述221
4.11.6IIC套用電路圖分析224
4.11.7IIC匯流排的基本操作及注意事項224
4.11.8IIC套用編程實例225
4.11.9IIC匯流排實驗測試方法及步驟229
4.12定時器中斷230
4.12.1ARM相關暫存器230
4.12.2ARM的異常中斷類型236
4.12.3異常中斷回響過程和返回過程237
4.12.4異常中斷程式的安裝238
4.12.5S3C2410的中斷控制器238
4.12.6異常中斷相關暫存器描述239
4.12.7定時器中斷例程分析及注意事項244
4.12.8使用中斷的步驟245
4.12.9定時器中斷套用編程246
4.12.10定時器中斷實驗方法及步驟248
4.13WatchDog看門狗定時器249
4.13.1看門狗功能簡述249
4.13.2看門狗的工作原理250
4.13.3看門狗控制器的結構250
4.13.4看門狗定時器相關暫存器250
4.13.5看門狗基本操作和使用示例252
4.13.6看門狗套用編程實例252
4.13.7實驗步驟254
4.14USBDevice254
4.14.1USB匯流排協定及工作原理254
4.14.2USB通信255
4.14.3USBDevice控制器256
4.14.4USBDevice套用電路258
4.14.5USBDevice應用程式編程實例258
4.14.6實驗測試方法及步驟261
4.15LCD顯示控制261
4.15.1LCD顯示原理簡介261
4.15.2S3C2410的內部LCD控制器262
4.15.3LCD控制器接口信號263
4.15.4LCD控制器操作263
4.15.5LCD相關暫存器描述267
4.15.6LCD電路接口設計273
4.15.7LCD編程方法及注意事項274
4.15.8LCD顯示套用編程實例275
4.15.9實驗測試方法及步驟279
4.16LCD觸控螢幕控制279
4.16.1觸控螢幕簡介279
4.16.2觸控螢幕的坐標281
4.16.3觸控螢幕控制器的接口模式281
4.16.4觸控螢幕接口信號282
4.16.5觸控螢幕相關暫存器描述283
4.16.6觸控螢幕應用程式編程實例285
4.16.7實驗檢測方法及步驟289
4.17IIS串列音頻接口289
4.17.1IIS匯流排規範及工作原理290
4.17.2S3C2410的IIS控制器模組290
4.17.3IIS相關暫存器描述293
4.17.4IIS接口電路設計295
4.17.5WAV聲音格式296
4.17.6音頻應用程式編程實例297
4.17.7實驗測試方法與步驟302
4.18USBHost通信302
4.18.1USB匯流排協定及工作原理302
4.18.2驅動程式的移植304
4.18.3USBHost實驗操作304
4.19SD卡接口304
4.19.1SD卡匯流排協定及工作原理305
4.19.2S3C2410的SD卡控制暫存器309
4.19.3SDI編程操作和SDIO編程操作311
4.19.4S3C2410的SD卡硬體接口設計313
4.19.5SD卡應用程式編程實例314
4.19.6實驗方法及步驟316
4.20小結316
思考與練習316
第5章S3C2410外部功能擴展
5.1步進電動機控制318
5.1.1步進電動機介紹318
5.1.2步進電動機參數和指標319
5.1.3步進電動機控制系統319
5.1.4接口套用電路319
5.1.5步進電動機應用程式編程320
5.1.6實驗測試方法及步驟323
5.28×8點陣驅動323
5.2.1LED相關知識323
5.2.28×8LED點陣的接口原理圖324
5.2.38×8點陣基本操作及注意事項325
5.2.48×8LED點陣應用程式編程實例325
5.2.5實驗檢測方法及步驟327
5.316行列式按鍵掃描327
5.3.1鍵盤原理介紹328
5.3.2行列式鍵盤原理328
5.3.3S3C2410xP的鍵盤硬體電路329
5.3.4行列式鍵盤按鍵程式流程330
5.3.5按鍵應用程式編程實例330
5.3.6實驗測試方法及步驟333
5.4TFTP乙太網通信334
5.4.1乙太網協定334
5.4.2IP、UDP和TFTP協定介紹335
5.4.3乙太網接口套用電路336
5.4.4應用程式編程實例339
5.4.5實驗檢測方法及步驟342
5.5VGA顯示342
5.5.1VGA接口介紹342
5.5.2VGA接口掃描方式343
5.5.3TFT接口到VGA接口的轉換343
5.5.4VGA顯示應用程式編程344
5.5.5實驗檢測方法及步驟346
5.6CAN匯流排通信347
5.6.1CAN匯流排簡介347
5.6.2CAN的分層結構及通信協定347
5.6.3CAN匯流排接口套用電路349
5.6.4MPC2510區域網路控制器350
5.6.5CAN匯流排通信套用編程357
5.6.6實驗測試方法及步驟369
5.7CF卡接口擴展369
5.7.1CF卡簡介370
5.7.2CF卡工作原理370
5.7.3CF卡協定371
5.7.4CF卡接口套用電路372
5.7.5CF卡基本操作及使用示例373
5.7.6CF應用程式編程實例374
5.8IDE硬碟掛接377
5.8.1IDE接口介紹377
5.8.2IDE硬碟讀/寫操作378
5.8.3IDE硬碟接口套用電路379
5.8.4IDE接口套用編程380
5.8.5在Linux下掛接硬碟的流程384
5.9RS-485通信384
5.9.1RS-422與RS-485串列接口標準384
5.9.2RS-485串列接口套用電路385
5.9.3RS-485通信套用編程386
5.9.4程式測試方法及步驟388
5.10GPS全球定位389
5.10.1GPS簡介389
5.10.2GPS原理389
5.10.3GPS定位信息的提取390
5.10.4GPS接口套用電路391
5.10.5GPS應用程式編程實例391
5.10.6實驗方法與步驟396
5.11GPRS/GSM無線通信396
5.11.1GPRS簡介396
5.11.2GSM工作原理396
5.11.3AT命令語法397
5.11.4SMS短訊息傳送和接收模式397
5.11.5GPRS硬體電路設計400
5.11.6GPRS/GSM發短訊息套用編程實例401
5.11.7實驗測試方法與步驟405
5.12小結405
思考與練習405
第6章S3C2410開發平台Bootloader詳解
6.1Bootloader的介紹407
6.2Bootloader操作模式407
6.3Bootloader的啟動流程408
6.4Bootloader的vivi409
6.4.1vivi簡介409
6.4.2vivi的配置與編譯410
6.4.3vivi代碼第一階段410
6.4.4vivi代碼第二階段418
6.5Bootloader之U-Boot437
6.5.1U-Boot簡介437
6.5.2U-Boot主要目錄結構438
6.5.3U-Boot支持的主要功能438
6.5.4U-Boot在S3C2410上的移植438
6.6自行開發S3C2410的Bootloader448
6.6.1Bootloader的功能說明和結構框架449
6.6.2Bootloader的套用編程449
6.6.3測試方法及步驟452
6.7小結453
思考與練習453
第7章μC/OS-II在ARM9上的移植
7.1μC/OS-II介紹454
7.2μC/OS-II移植454
7.2.1OS_CPU.H455
7.2.2OS_CPU_C.C檔案457
7.2.3處理器相關彙編部分OS_CPU_A.S實現460
7.3μC/OS-II任務之間的通信與同步方式464
7.3.1信號量464
7.3.2信箱464
7.3.3訊息佇列465
7.4簡單多任務程式編程465
7.4.1多任務主程式465
7.4.2任務1voidTask1(void*Id)466
7.4.3任務2voidTask2(void*Id)466
7.4.4主測試函式Main467
7.5小結467
思考與練習468
第8章WinCE系統在ARM9上的移植
8.1WinCE的安裝469
8.1.1安裝開發環境469
8.1.2安裝目錄470
8.1.3構建新的平台471
8.1.4新平台的配置、編譯475
8.2WinCE的image的運行477
8.2.1通過USB口下載運行WinCE映像477
8.2.2通過乙太網燒寫WinCE映像檔案479
8.3在WinCE和桌面系統之間建立通信連線484
8.4WinCE結構與開發488
8.4.1WinCE開發流程488
8.4.2用戶開發WinCE控制項驅動程式的流程488
8.4.3用戶硬體平台和WinCE核心的接口程式的開發步驟490
8.4.4執行中斷相關函式496
8.4.5執行實時時鐘和定時器功能499
8.4.6配置暫存器501
8.4.7使能電源管理501
8.5小結501
思考與練習501
第9章Linux系統在ARM9平台的移植
9.1移植的概念502
9.2Linux核心結構與移植502
9.2.1核心結構503
9.2.2Linux作業系統移植504
9.3閱讀ARMLinux核心源碼510
9.3.1編譯環境的建立510
9.3.2安裝編譯工具512
9.3.3編譯Linux核心512
9.4cramfs根檔案系統的製作515
9.5linux設備驅動程式概述516
9.5.1設備驅動和檔案系統的關係516
9.5.2LINUX設備驅動程式接口517
9.5.3程式的設備號和入口點518
9.5.4Linux驅動程式的載入519
9.6Linux下字元設備驅動的添加519
9.6.1字元設備的驅動源程式519
9.6.2該驅動程式的Makefile檔案523
9.6.3該驅動相應的測試程式523
9.6.4測試過程524
9.6.5將應用程式添加到根檔案系統525
9.7Linux下添加音頻設備驅動525
9.8Linux下添加IIC匯流排驅動528
9.8.1Linux下IIC匯流排驅動程式體系結構528
9.8.2S3C2410上的IIC匯流排驅動程式分析528
9.8.3IIC匯流排驅動測試程式532
9.9Linux終端與控制台體系534
9.9.1Linux終端概述534
9.9.2Linux控制台的初始化過程535
9.9.3Linux啟動命令行與控制台定義537
9.9.4控制台與printk輸出539
9.9.5Linux串口驅動程式與分析540
9.9.6Linux串口的套用545
9.9.7通過Linux串口實現GPRS撥接547
9.10Linux下如何掛載隨身碟549
9.11小結552
思考與練習552
第10章基於S3C2410平台圖形系統開發
10.1嵌入式系統下Microwindows的實現553
10.1.1兩種API:Win32和Nano-X554
10.1.2創建一個簡單的Nano-X應用程式556
10.1.3Exposeevent機制557
10.2嵌入式系統下MiniGUI的實現559
10.2.1圖形用戶界面MiniGUI簡介559
10.2.2MiniGUI在S3C2410處理器上的移植過程559
10.3認識Qt/Embedded嵌入式工具開發包561
10.3.1Qt介紹562
10.3.2Qt/Embedded系統要求563
10.3.3Qt架構564
10.4Qt/Embedded嵌入式圖形開發基礎565
10.4.1Qt/Embedded開發環境的安裝565
10.4.2Qt/Embedded開發環境567
10.4.3窗體570
10.4.4Qt圖形設計器對話框576
10.4.5Qt桌面外形與感覺581
10.4.6Qt/Embedded國際化582
10.5Qt/Embedded實戰套用開發583
10.5.1嵌入式硬體開發平台的選擇584
10.5.2安裝Qt/Embedded工具開發包585
10.5.3交叉編譯Qt/Embedded的庫585
10.5.4Hello,World的例子586
10.5.5發布一個Qt/Embedded套用到FS2410XP開發平台593
10.5.6添加一個Qt/Embedded套用到QPE595
10.6小結596
思考與練習597
第11章基於S3C2410完整開發系統的設計
11.1開發系統硬體電路設計598
11.1.1開發板的資源598
11.1.2開發板的硬體布置框圖598
11.1.3核心板電路分析599
11.1.4擴展板電路分析606
11.1.5存儲器空間分配611
11.1.6PCB設計方法611
11.1.7電路調試方法614
11.2軟體驅動的開發與調試615
11.3小結618
思考與練習618
附錄書中常用術語縮寫解析619
參考文獻623

相關詞條

相關搜尋

熱門詞條

聯絡我們