基于$3C45108處理器,以軟、硬件開發(fā)流程為主線,詳細介紹嵌入式系統(tǒng)的開發(fā)技術(shù)。全書共分為6章,主要內(nèi)容包括:32位嵌入式系統(tǒng)的基本概念、構(gòu)成、應(yīng)用和一般開發(fā)流程;ARM7TDMl處理器的內(nèi)核架構(gòu)、指令系統(tǒng)、混合語言編程,開發(fā)工具軟件ADS的使用方法;$3C45108處理器芯片的內(nèi)部結(jié)構(gòu)、嵌入式系統(tǒng)電路設(shè)計、板級測試,開發(fā)流程細節(jié)與設(shè)計要點:無操作系統(tǒng)和有操作系統(tǒng)情況下的嵌入式軟件開發(fā)流程,程序的編寫、調(diào)試和固化等;嵌入式Linux下設(shè)備驅(qū)動程序的編寫方法。
《32位ARM嵌入式系統(tǒng)開發(fā)技術(shù):流程、技巧與實現(xiàn)》面向?qū)嶋H應(yīng)用,不僅提供了大量的開發(fā)流程框圖和電路原理圖,而且每章均配有習題、參考答案和配套實驗內(nèi)容。
《32位ARM嵌入式系統(tǒng)開發(fā)技術(shù):流程、技巧與實現(xiàn)》內(nèi)容歷經(jīng)三年的修改和教學實踐檢驗,適用于電子信息類高年級本科生和研究生的相關(guān)專業(yè)課程,也可作為企、事業(yè)在職技術(shù)人員嵌入式系統(tǒng)培訓的教材和參考書。
清晰的開發(fā)流程圖——軟硬兼施,展現(xiàn)ARM系統(tǒng)的開發(fā)脈絡(luò);
豐富的實驗與指導——步步為營,攻克ARM學習的難點;
自己動手搭建平臺——身體力行,體驗ARM開發(fā)的成就感。
相關(guān)圖書:
ARM原理與嵌入式應(yīng)用——基于LPC2400系列處理器和IAR開發(fā)環(huán)境桂電一豐寶聯(lián)合實驗室;
嵌入式系統(tǒng)及其開發(fā)應(yīng)用 沈連豐;
嵌入式32位微處理器系統(tǒng)設(shè)計與應(yīng)用 何加銘;
嵌入式系統(tǒng)——使用68HC12和HCS12的設(shè)計與應(yīng)用 鄭扣根;
嵌入式系統(tǒng)——基于SEP3203微處理器的應(yīng)用開發(fā) 時龍興;
嵌入式系統(tǒng)開發(fā)基礎(chǔ)——基于ARM微處理器和Linux操作系統(tǒng) 滕英巖;
嵌入式軟件開發(fā)及C語言實現(xiàn)——MiniGUl剖析 魏永明;
嵌入式系統(tǒng) 張大波。
隨著信息技術(shù)的迅猛發(fā)展,21世紀以來,人類已進入后PC時代。32位嵌入式系統(tǒng)作為以應(yīng)用為核心、軟硬件可裁剪,并能滿足實際系統(tǒng)對功能、可靠性、成本、體積和功耗有特殊要求的專用計算機系統(tǒng),已被廣泛應(yīng)用于通信、雷達、測試、工業(yè)控制、消費電子等眾多領(lǐng)域,正進入千家萬戶,成為后PC時代的主力軍。ARM公司設(shè)計的基于RISC結(jié)構(gòu)的32位微處理器內(nèi)核在低功耗、低成本的嵌入式應(yīng)用領(lǐng)域占據(jù)市場主導地位,鑒于這種現(xiàn)狀,國內(nèi)許多院校已開設(shè)基于ARM 32位微處理器的嵌入式系統(tǒng)相關(guān)課程,嵌入式系統(tǒng)開發(fā)技術(shù)正成為高校教學的熱點。
嵌入式系統(tǒng)開發(fā)的實質(zhì)就是完成一臺專用計算機系統(tǒng)的開發(fā),嵌入式系統(tǒng)的兩大特點是軟、硬件密切聯(lián)系和以應(yīng)用為中心。因此,教學內(nèi)容中涉及較多的軟、硬件知識與技巧,內(nèi)容龐雜,且教學過程具有較強的實踐性。在教學實施中,必然會產(chǎn)生課程內(nèi)容與學時的矛盾,以及教學目標與培養(yǎng)效果的矛盾。目前,在國內(nèi)高校所開展的嵌入式系統(tǒng)課程教學中,普遍存在兩點不足:(1)部分高校開設(shè)的嵌入式課程僅僅局限于理論學習和軟件開發(fā),忽視了嵌入式系統(tǒng)的硬件開發(fā)和動手實踐,或者暫時不具備開展基于具體硬件的嵌入式系統(tǒng)實驗的條件;(2)有相當多高校是借助于市售的嵌入式系統(tǒng)實驗箱來完成課程教學的,而在這些實驗箱中,由于添加了過多的外圍器件,學生們望而生畏,并且價格昂貴;同時,廠商屏蔽了大量底層內(nèi)容,讓學生們停留在上層軟件開發(fā),無法通過實踐來學習、掌握一個完整的嵌入式系統(tǒng)開發(fā)流程。這就導致許多走上工作崗位的高校畢業(yè)生,不能自行設(shè)計和實現(xiàn)嵌入式系統(tǒng)硬件平臺,即使完成了硬件電路,也時常無法將應(yīng)用程序加載上去,更談不上讓系統(tǒng)上電后能自動運行。
在開發(fā)技術(shù)上,32位ARM嵌入式系統(tǒng)與過去常見的8位/16位單片機存在較大的差異。專用計算機系統(tǒng)的性質(zhì)決定了32位嵌入式系統(tǒng)教學重點更側(cè)重于硬件,其中包括芯片選型、外圍電路設(shè)計、PCB設(shè)計、板級測試、引導程序編寫、操作系統(tǒng)裁剪、驅(qū)動程序編寫等內(nèi)容。因此,作為一門技術(shù)課程的教學,僅僅對學生進行應(yīng)用程序的編寫訓練是不夠的。而嵌入式系統(tǒng)中的應(yīng)用程序往往采用C/C++語言來編寫,與通用計算機上的編程方法差異不大。
正因如此,本書始終以嵌入式系統(tǒng)的軟、硬件開發(fā)流程為主線,清晰地展現(xiàn)出嵌入式系統(tǒng)開發(fā)涉及的各種技術(shù)和細節(jié),并采用流程框圖的形式,直觀形象地展現(xiàn)在讀者面前,給人以耳目一新的感覺。本書在正式出版前,作為大學講義,已在四川大學試用三年,取得了良好的教學效果。在教學中,要求學生利用課余時間,按2-3人/組的分組方式,在寢室和學校電子實驗室中,與課程同步地獨立完成硬件板卡的設(shè)計、裝焊與調(diào)測工作,以及后續(xù)的引導程序、操作系統(tǒng)程序、驅(qū)動程序、應(yīng)用程序開發(fā)工作;并對學生自己所制作完成的嵌入式系統(tǒng)實驗板進行評定打分,計入期末綜合成績。這種新穎的教學模式極大地調(diào)動了學生的學習積極性和主動性,他們在教學過程中變得主動,并且每次上課前心中充滿了疑問,而這些疑問在課程中得到了解答。教學實踐表明,“興趣是最好的老師”,在實際動手過程中,學生將一次次經(jīng)歷發(fā)現(xiàn)問題的困惑和解決問題的喜悅。使學生帶著問題去思索、學習、研討、實踐,是學好該課程的一條極其有效的途徑。
第1章 嵌入式系統(tǒng)概論
1.1 32位嵌入式系統(tǒng)簡介
1.2 32位嵌入式處理器
1.2.1 ARM嵌入式處理器
1.2.2 其他類型嵌入式處理器
1.3 嵌入式操作系統(tǒng)
1.4 嵌入式系統(tǒng)開發(fā)流程
1.5 習題
第2章 ARM7TDMl處理器編程基礎(chǔ)
2.1 ARM7TDMl內(nèi)核架構(gòu)
2.1.1 ARMTTDMl內(nèi)核特點
2.1.2 處理器工作狀態(tài)
2.1.3 處理器數(shù)據(jù)存儲格式
2.1.4 處理器數(shù)據(jù)類型和長度
2.1.5 處理器模式
2.1.6 寄存器組織
2.1.7 程序狀態(tài)寄存器
2.1.8 異常模式
2.1.9 存儲管理單元(MMU)
2.2 ARM指令系統(tǒng)
2.2.1 ARM指令尋址方式
2.2.2 ARM指令集
2.3 嵌入式系統(tǒng)程序設(shè)計
2.3.1 偽指令介紹
2.3.2 匯編語言編程
2.3.3 C語言編程
2.3.4 混合語言編程
2.4 ARM嵌入式開發(fā)工具ADS
2.4.1 ADS概述
2.4.2 ADS開發(fā)流程
2.4.3 ADS開發(fā)實例
2.5 本章實驗
2.5.1 實驗一ADS使用與匯編指令實驗
2.5.2 實驗二匯編語言和C語言的混合編程
2.6 習題
第3章 嵌入式系統(tǒng)硬件開發(fā)
3.1 S3C45108處理器概述
3.1.1 S3C45108芯片特點
3.1.2 S3C45108引腳描述
3.2 實驗板硬件系統(tǒng)開發(fā)
3.2.1 實驗板硬件系統(tǒng)概述
3.2.2 電源電路
3.2.3 復位電路
3.2.4 晶振電路
3.2.5 處理器電路
3.2.6 JTAG調(diào)試電路
3.2.7 SDRAM存儲器電路
3.2.8 Flash存儲器電路
3.2.9 輸入/輸出電路
3.2.10 RS-232串口通信電路
3.2.11 以太網(wǎng)接口電路
3.2.12 字符型LCD顯示電路
3.2.13 步進電動機電路
3.3 硬件系統(tǒng)測試
3.3.1 電源、復位、晶振電路測試
3.3.2 處理器與JTAG接口電路測試
3.3.3 SDRAM存儲器測試
3.3.4 Flash存儲器測試
3.4 硬件系統(tǒng)開發(fā)流程與要點
3.4.1 硬件開發(fā)流程
3.4.2 硬件設(shè)計要點
3.5 本章實驗
3.5.1 實驗三LED控制混合編程
3.5.2 實驗四UART串口通信混合編程
3.6 習題
第4章 無操作系統(tǒng)的
應(yīng)用軟件開發(fā)
4.1 軟件開發(fā)數(shù)據(jù)流向圖
4.2 無操作系統(tǒng)的軟件運行模式
4.3 軟件系統(tǒng)開發(fā)概述
4.4 嵌入式系統(tǒng)引導程序
4.4.1 BootLoader概述
4.4.2 S3C4510B編址空間和存儲器映射
4.4.3 BootLoader啟動過程分析
4.5 無操作系統(tǒng)下單任務(wù)應(yīng)用程序開發(fā)
4.5.1 應(yīng)用程序調(diào)試階段
4.5.2 應(yīng)用程序調(diào)試完成階段
4.6 固化程序到FIash存儲器
4.6.1 使用H.JTAG燒寫Flash
4.6.2 編寫Flash燒寫程序燒寫Flash
4.7 本章實驗
4.7.1 實驗五燒寫添加L,ED應(yīng)用程序后的BootLoader到Flash
4.7.2 實驗六通過GPIO控制步進電動機實驗
4.7.3 實驗七通過總線和中斷控制步進電動機
4.8 習題
第5章 有操作系統(tǒng)的嵌入式系統(tǒng)軟件開發(fā)
5.1 有操作系統(tǒng)的嵌入式系統(tǒng)軟件開發(fā)概述
5.2 有操作系統(tǒng)的軟件運行模式
5.3 uClinux操作系統(tǒng)概述
5.4 建立開發(fā)環(huán)境
5.4.1 建立主機IJnux平臺
5.4.2 開發(fā)中常用Linux命令與vi編輯器
5.4.3 安裝交叉編譯工具
5.5 uCHnux裁剪與編譯
5.5.1 uClinux內(nèi)核文件結(jié)構(gòu)
5.5.2 Shell簡介
5.5.3 使用make和Makefile
5.5.4 裁剪uClinux內(nèi)核并編譯生成映像文件
5.6 操作系統(tǒng)下多任務(wù)應(yīng)用程序開發(fā)
5.6.1 編寫串口、LED應(yīng)用程序
5.6.2 添加應(yīng)用程序至內(nèi)核
5.6.3 操作系統(tǒng)下應(yīng)用程序的調(diào)試
5.7 固化操作系統(tǒng)到Flash存儲器
5.8 本章實驗
5.8.1 實驗八Linux使用
5.8.2 實驗九uClinux內(nèi)核編譯與下載
5.8.3 實驗十uClinux多任務(wù)編程與自啟動
5.9 習題
第6章 嵌入式Linux設(shè)備驅(qū)動
6.1 驅(qū)動程序開發(fā)概述
6.1.1 驅(qū)動程序原理
6.1.2 驅(qū)動程序開發(fā)流程
6.2 驅(qū)動程序運行模式
6.3 驅(qū)動程序編寫模板與實現(xiàn)方式
6.3.1 驅(qū)動程序編寫模板
6.3.2 驅(qū)動程序?qū)崿F(xiàn)方式
6.4 驅(qū)動程序開發(fā)實例
6.4.1 設(shè)備文件分類和設(shè)備號
6.4.2 用戶空間和內(nèi)核空間
6.4.3 設(shè)備驅(qū)動程序的file.0perations結(jié)構(gòu)
6.4.4 設(shè)備驅(qū)動程序常用函數(shù)和使用方法
6.4.5 編寫LED驅(qū)動程序
6.4.6 添加u,E-D驅(qū)動程序至操作系統(tǒng)內(nèi)核
6.4.7 驅(qū)動程序調(diào)試方法
6.5 本章 實驗
6.5.1 實驗十一編寫LCD驅(qū)動程序
6.5.2 實驗十二編寫步進電動機驅(qū)動程序(連接到GPIO口)
6.5.3 實驗十三編寫步進電動機驅(qū)動程序(連接到總線和中斷輸入口)
6.6 習題
附錄A ARM指令速查表
附錄B 習題參考答案
B.1
第1章 習題答案
B.2
第2章 習題答案
B.3
第3章 習題答案
B.4
第4章 習題答案
B.5
第5章 習題答案
B.6
第6章 習題答案
附錄C U.Boot移植
C.1 幾種通用BootLoader簡介
C.1.1 Redboot
C.1.2 Blob
C.2 U-Boot簡介
C.2.1 U-Boot概述
C.2.2 U-Boot命令
C.2.3 U-Boot重要代碼
C.2.4 U-Boot編譯過程
C.2.5 U-Boot移植
參考文獻