《ARM Linux入門與實踐》

《ARM Linux入門與實踐》

《ARM Linux入門與實踐》主要記錄的是作者學習Linux等相關的軟體部分的筆記,適用於高校學生、工程師使用。

基本信息

基本信息

作者:程昌南方強

書號:978-7-81124-422-9

配盤:光碟

《ARM Linux入門與實踐》封皮《ARM Linux入門與實踐》封皮

出版日期:200810

開本:787×10921/16開

字數:706千字

內容簡介

本書是以作者自學、套用嵌入式Linux時的筆記(包括實驗、出現的問題、調試過程、經驗總結等)為基礎,再增加套用到的硬體平台而成的。全書以親自製作實驗平台硬體,親自設計實驗軟體為線索,指導讀者從零開始學習到最終掌握ARM和Linux套用的方方面面。

全書可以分成ARM硬體、ARM前後台系統套用和基於Linux系統的套用3個部分。ARM硬體部分包括整個硬體的原理分析、原理圖、PCB板的繪製、元件焊接、硬體的檢測與調試。ARM前後台系統套用部分包括啟動代碼、處理器內部外設、擴展外部設備及接口等的所有底層軟體分析與實現,還有Bootloader、檔案系統、GUI等的原理與實現。Linux系統的套用部分包括基於PC機的操作、套用編程和驅動、嵌入式Linux的開發環境創建、各種硬體的驅動實現、網路編程、圖形用戶界面設計等。

本書可作為有志於掌握ARM、Linux等嵌入式技術的高校學生、工程師等的參考書。

前言

本書的使用與相關知識的同步學習曾經有一個朋友這樣告訴阿南:“如果看您的筆記就能掌握ARMLinux驅動,那就是最好的目的了”。對不起,阿南做不到,寫不出這種“葵花寶典”。這本

《ARM Linux入門與實踐》《ARM Linux入門與實踐》

書的前身是在21ICBBS上發表的《嵌入式Linux入門筆記》,主要是阿南在自學Linux和在項目中套用Linux時記錄的筆記、出現的錯誤和心得等,是自己平時工作中非常重要的參考手冊。發表後得到眾網友的喜愛、支持及北航出版社胡曉柏主任的鼓勵,故花更多的時間、精力將筆記豐富出版。

嵌入式是一門實踐性很強的技術,而《嵌入式Linux入門筆記》主要記錄的是Linux等相關的軟體部分,沒有包括硬體相關的部分,為了讓讀者能夠親自實踐,故增加了ARM及硬體部分。並且親自設計了AN2410SSB(最小系統板)和AN2410MB(擴展底板),給出了所有原理圖,介紹了製作過程,記錄了用裸板開始調試的步驟和過程,介紹了如何讓ARM運行及啟動等各方面的內容,以及前後台(無作業系統下)的套用等。本書沒有將所涉及的技術及理論都包括進來,不僅篇幅有限,而且也沒有必要,因為已有太多相當經典的資料。

本書第1章為概述。第2章分析了硬體的原理圖,讀者應該閱讀S3C2410A的數據手冊,特別是信號引腳功能描述,記憶體控制部分。第3章主要介紹了關於Protel原理圖和PCB板的繪製,如果讀者沒有Protel的基礎可以參考人民郵電出版社的《電路設計與製版——Protel99入門與提高》或其他Protel書。如果有Protel基礎,只是沒有繪製過多層板,那么可以參考人民郵電出版社的《Protel99SE多層電路板設計與製作》。第4章介紹了S3C2410A系統核心部分的調試方法和工具的使用,以及利用工具進行測試的方法、手段。該部分是整個系統的基礎,也是非常重要的,讀者需要多試驗,出現問題時多參考S3C2410A的數據手冊。第5章專門分析了S3C2410A的啟動代碼,用於理解S3C2410A的啟動過程,中斷處理過程及存儲器等相關部分,也是非常基礎和重要的。因為啟動代碼由彙編組成,此時可參考清華大學出版社的《ARM體系結構與編程》,學習理解ARM的彙編語言等相關知識。第6、7章為硬體平台上實現ARM的外圍實驗和擴展實驗,讀者仍然要參考S3C2410A的數據手冊,在仿真調試情況下理解ARM內部的暫存器、存儲器、狀態暫存器等與ARM體系相關的知識。另外還要閱讀如WAV音頻格式,SD卡規範及相關的數據手冊等。CPLD部分讀者可以參考電子工業出版社的《基於QuartusII的FPGA/CPLD設計》,學習基本的工程創建,圖形設計輸入,編譯和編程等。AlteraCPLD更詳細的資料可以去官網下載。第8章介紹了前後台系統還需要考慮的相關知識:NANDBootloader、檔案系統和圖形界面。圖形界面部分,讀者需要理解一些基本的繪圖原理和算法,可以參考機械工業出版社的《計算機圖形學的算法基礎》。第9章介紹了在PC機下的Linux各方面技術,這些都是嵌入式Linux的基礎,非常重要,涉及的知識內容也很多。在該章中,阿南只是總結了一些實踐操作的部分內容,所以還需要讀者自己去參考學習Linux的這些書籍:Linux系統的基本操作參考清畢大學出版社的《RedHatLinux9系統管理》(這本書應該被實踐安裝的桌面Linux系統相應版本的書替代),套用編程參考清華大學出版社的《GNU/Linux編程指南》或機械工業出版社的《Unix高級環境編程》,驅動編程參考中國電力出版社的《Linux設備驅動程式》。第10章主要介紹S3C2410A的嵌入式Linux開發環境的搭建及工具的使用。這裡採用的是MIZI公司的LinuxforS3C2410平台,讀者也可以直接參考《MIZILinuxSDKforS3C2410》文檔。第11章介紹在S3C2410A下實現Linux驅動,很多原理性的知識依然要參考《Linux設備驅動程式》一書,而且要多試驗驗證。讀者在調試實現過程中也可以直接參考LinuxforS3C2410的核心源碼中和硬體、驅動相關的代碼例子(可以在Windows系統下安裝SourceInsight軟體,方便閱讀Linux核心原始碼)。第12章介紹嵌入式Linux桌面系統,可讀寫檔案系統yaffs的實現,嵌入式Web伺服器BOA、NFS及WIFI。這些都是實踐性很強的套用操作,所以讀者主要是套用它們,出現問題時上網查找相關套用操作,尋找解決問題的思路,再測試驗證。第13章是網路編程方面的知識,主要參考清華大學出版社的《UNIX網路編程第1卷:套接口API》,目的是掌握TCP客服機/伺服器的實現及網路的調試方法。第14章介紹嵌入式GUI開發環境的創建和開發方法,桌面系統的移植。學習前讀者應該先學習基於Qt的套用編程,可以參考北航出版社的《C++GUIQt3編程》,如果沒有C++的基礎可以參考清華大學出版社的《C++程式設計教程》。

致謝

感謝我的導師(也是本書的另一位作者)——方強多年來的關心與指導,且對本書付出的辛苦勞動。

感謝我的公司——廣州市天譽創高科技有限公司及同事們,他們對本書提供了很大幫助

目錄

第一篇ARM硬體

第1章概述

1.1嵌入式系統、單片機、ARM及Linux概述3

1.2ARM處理器的選擇3

1.3S3C2410A簡介和公版資源4

1.4ARM開發工具及調試方法5

1.4.1集成開發環境5

1.4.2硬體仿真器6

1.4.3前後台系統的調試方法7

1.4.4嵌入式Linux的開發調試方法8

1.5親自製作實驗平台在ARM學習中的意義和可行性9

第2章實驗平台硬體分析

2.1平台概述及組成11

2.2地址空間分配13

2.2.1S3C2410A記憶體映射圖13

2.2.2AN2410平台地址空間分配14

2.3常用元件概述14

2.3.1電阻標稱值14

2.3.2肖特基二極體18

2.3.3功率電感18

2.3.4鐵氧體磁珠19

2.3.5自恢復保險絲PPTC19

2.3.6有源蜂鳴器和無源蜂鳴器20

2.4最小系統板AN2410SSB原理圖分析20

2.4.1CPU部分20

2.4.2BootROM設定和時鐘電路29

2.4.3JTAG接口電路30

2.4.4NANDFlash存儲器30

2.4.5SDRAM存儲器33

2.4.6調試串口34

2.4.710M乙太網35

2.4.8按鍵中斷和LED電路38

2.4.9ADC/PWM_DAC和蜂鳴器控制電路39

2.4.10復位電路39

2.4.11電源電路40

2.4.12最小系統板與底板的接口42

2.5底板AN2410MB原理圖分析42

2.5.1緩衝電路43

2.5.2NORFlash存儲器43

2.5.3USBHost/Device43

2.5.4100M乙太網46

2.5.5pcmcia接口46

2.5.6SD卡接口49

2.5.7IIS音頻電路50

2.5.8IIC存儲器51

2.5.9LCD顯示52

2.5.10觸控螢幕55

2.5.11RS485匯流排55

2.5.12IrDA、紅外遙控發射與學習電路57

2.5.13CPLD擴展電路58

2.5.14SC16C554串口擴展電路58

2.5.15I/O口和紅外遙控發射擴展電路60

2.5.16電源提供電路62

2.6下載板電路64

2.6.1S3C2410AFlash燒寫工具SJF241064

2.6.2CPLD下載工具ByteBlasterII64

2.7S3C2440A與S3C2410A的不同點及注意事項66

第3章硬體製作

3.1原理圖和PCB繪製過程及心得67

3.2PCB常用快捷鍵73

3.3焊接心得74

第4章系統核心部分硬體調試
4.1調試步驟及概述76
4.2電源/復位/時鐘/NANDFlash設定77
4.3Multi?ICE仿真器的使用78
4.3.1仿真器與目標板硬體安裝78
4.3.2ADS1.2/Multi?ICEServer安裝和配置78
4.4處理器核心檢測82
4.5仿真測試85
4.6SDRAM測試85
4.7調試串口測試91
4.8NANDFlash測試92
4.9Flash的燒寫92
4.9.1SJF2410的安裝92
4.9.2NANDFlash燒寫93
4.9.3NORFlash燒寫93
第二篇ARM前後台系統部分
第5章啟動代碼分析
5.1啟動代碼和Bootloader的區別99
5.2彙編基礎100
5.2.1偽操作100
5.2.2彙編指令及偽指令104
5.3啟動代碼功能模組分解108
5.3.1定義程式入口地址108
5.3.2看門狗及中斷的禁止112
5.3.3測試LED的顯示112
5.3.4系統時鐘初始化113
5.3.5低功耗模式114
5.3.6初始化記憶體控制器118
5.3.7堆疊初始化120
5.3.8中斷向量表122
5.3.9映像檔案運行域的初始化129
5.3.10進入C語言程式133
5.4S3C2410A啟動過程總結133
第6章基於AN2410SSB的外設實驗
6.1LED跑馬燈顯示實驗135
6.1.1實驗功能和目的135
6.1.2工程的創建135
6.1.3仿真調試及工程的設定138
6.1.4脫機運行及設定141
6.2按鍵輸入及中斷實驗143
6.2.1實驗功能和目的143
6.2.2GPIO口輸入實驗144
6.2.3外部中斷實驗145
6.3串口通信實驗147
6.3.1實驗功能和

相關詞條

相關搜尋

熱門詞條

聯絡我們