《嵌入式系統(tǒng)原理與開發(fā)》基于“七個一”嵌入式系統(tǒng)學(xué)習(xí)方案:一個體系結(jié)構(gòu)、一款微處理器、一款開發(fā)板、一種操作系統(tǒng)、一種驅(qū)動程序、一類開發(fā)環(huán)境、一類開發(fā)方法。優(yōu)選了ARM體系結(jié)構(gòu)、基于ARM7TDMI的S3C44B0X處理器、μC/OS-Ⅱ操作系統(tǒng)、RVDS開發(fā)環(huán)境,由淺入深地對其逐一詳細(xì)分析和研究,最終引導(dǎo)讀者自己獨(dú)立設(shè)計一款具有豐富外部接口的開發(fā)板、編寫B(tài)ootLoader、移植μC/OS-Ⅱ和開發(fā)主要驅(qū)動程序,全面地完成一款開發(fā)板軟硬件的研發(fā)。
《嵌入式系統(tǒng)原理與開發(fā)》強(qiáng)調(diào)“All in One”。一書貫通、速成高手!第1章對嵌入式系統(tǒng)的技術(shù)與應(yīng)用進(jìn)行了較全面地概述;第2章和第3章詳細(xì)介紹了ARM處理器技術(shù)和ARM指令系統(tǒng);第4章討論了ARM匯編語言程序設(shè)計方法并給出了設(shè)計實(shí)例;第5章詳細(xì)分析了μC/OS-Ⅱ嵌入式操作系統(tǒng);第6章介紹了S3C44B0X微處理器并給出了寄存器的配置方法;第7章基于S3C44B0X設(shè)計了一款多功能開發(fā)板;第8章基于自己設(shè)計的開發(fā)板詳細(xì)介紹了軟件系統(tǒng)的設(shè)計技術(shù)。
《嵌入式系統(tǒng)原理與開發(fā)》適合于作高等學(xué)校計算機(jī)類、電子信息類、儀器儀表類本科生教材,也可供從事基于ARM的嵌入式系統(tǒng)開發(fā)的工程技術(shù)人員參考。
嵌入式技術(shù)是繼網(wǎng)絡(luò)技術(shù)之后,又一個新的技術(shù)發(fā)展方向。嵌入式系統(tǒng)是計算機(jī)軟件與硬件的完美結(jié)合,廣泛地應(yīng)用于手持設(shè)備、信息家電、儀器儀表、汽車電子、醫(yī)療儀器、工業(yè)控制、航天航空等各個領(lǐng)域,并嵌入在各類設(shè)備之中,起著核心作用。
嵌入式系統(tǒng)已經(jīng)無處不在,嵌入式人才主要分為兩大類:一類是嵌入式硬件工程師,主要從事嵌入式系統(tǒng)硬件研發(fā),包括硬件系統(tǒng)原理圖的設(shè)計、PCB印制電路板的設(shè)計,開發(fā)與硬件相關(guān)的底層軟件(如BootLoader、嵌入式驅(qū)動程序等);另一類是嵌入式軟件工程師,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā),如果對嵌入式硬件原理和接口技術(shù)有較好的掌握,也可以從事嵌入式系統(tǒng)底層程序的開發(fā)。
在嵌入式系統(tǒng)的學(xué)習(xí)過程中,建議讀者抓住“七個一”來學(xué)習(xí):一個體系結(jié)構(gòu)、一款微處理器、一款開發(fā)板、一種操作系統(tǒng)、一種驅(qū)動程序、一類開發(fā)環(huán)境、一類開發(fā)方法。
實(shí)際上,雖然說嵌入式系統(tǒng)紛雜繁多,但是都符合“七個一”的組織結(jié)構(gòu)。因此,只要讀者能夠獨(dú)立地、完整地開發(fā)出一款嵌入式系統(tǒng)產(chǎn)品,就能夠掌握嵌入式系統(tǒng)開發(fā)的核心技術(shù),那么在以后的實(shí)際工作中,不論遇到何種嵌入式系統(tǒng),都能夠獨(dú)立開發(fā)了。
一個嵌入式系統(tǒng)必定是由嵌入式硬件和嵌入式軟件組成;嵌入式硬件主要包括嵌入式處理器、外設(shè)控制器、接口電路等;嵌入式軟件主要包括啟動程序、嵌入式操作系統(tǒng)、應(yīng)用軟件等。嵌入式處理器是嵌入式系統(tǒng)的硬件核心;嵌入式操作系統(tǒng)是嵌入式軟件的核心。
范延濱,1985年本科畢業(yè)于山東師范大學(xué)物理學(xué)專業(yè),1988年碩士研究生畢業(yè)于山東師范大學(xué)量子電子學(xué)專業(yè),2001年晉升為青島大學(xué)教授。現(xiàn)任青島大學(xué)信息工程學(xué)院體系結(jié)構(gòu)教研室主任,青島市計算機(jī)學(xué)會嵌入式分會秘書長。
多年來,主要從事嵌入式系統(tǒng)、小波應(yīng)用方面的教學(xué)與研究工作。已出版教材2部,發(fā)表學(xué)術(shù)論文30余篇,完成科研項(xiàng)目20余項(xiàng),受到各類獎勵10余項(xiàng)。
在嵌入式系統(tǒng)方面,從1990年開始從搴MCS-51單片機(jī)應(yīng)用開發(fā),至今已經(jīng)有20年的教學(xué)與研發(fā)經(jīng)歷;先后應(yīng)用過MCS-51、PIC、ARM7、ARM9、XScaIe、COrte x—M3等系列嵌入式處理器;應(yīng)用過μ Li nuX、μC/os—|1等嵌入式操作系統(tǒng);完成了從工業(yè)控制到信息家電的多個研發(fā)項(xiàng)目。在小波應(yīng)用方面,主要基于梯度矢量流動態(tài)輪廓模型(GVF Snake),應(yīng)用小波進(jìn)行醫(yī)學(xué)圖像分割;基于小波包和提升小波進(jìn)行數(shù)字水印技術(shù)的研究與應(yīng)用。
序
前言
第1章 嵌入式系統(tǒng)概述1
1.1 嵌入式系統(tǒng)的概念1
1.1.1 嵌入式系統(tǒng)定義1
1.1.2 嵌入式系統(tǒng)特點(diǎn)2
1.2 嵌入式系統(tǒng)分類4
1.3 嵌入式系統(tǒng)組成結(jié)構(gòu)5
1.4 嵌入式處理器簡介8
1.4.1 嵌入式處理器分類8
1.4.2 嵌入式微處理器9
1.4.3 嵌入式微控制器9
1.4.4 嵌入式數(shù)字信號處理器10
1.4.5 嵌入式片上系統(tǒng)10
1.5 嵌入式操作系統(tǒng)簡介10
1.5.1 嵌入式操作系統(tǒng)發(fā)展11
1.5.2 嵌入式實(shí)時操作系統(tǒng)11
1.5.3 嵌入式操作系統(tǒng)選型12
1.5.4 幾種嵌入式操作系統(tǒng)比較13
1.6 嵌入式系統(tǒng)設(shè)計流程14
.1.6.1 嵌入式系統(tǒng)開發(fā)模式15
1.6.2 嵌入式系統(tǒng)開發(fā)流程16
1.7 嵌入式系統(tǒng)應(yīng)用16
第2章 ARM處理器19
2.1 ARM系列處理器概述19
2.1.1 ARM系列處理器術(shù)語19
2.1.2 ARM處理器體系結(jié)構(gòu)21
2.1.3 ARM處理器產(chǎn)品系列22
2.1.4 ARM處理器技術(shù)進(jìn)展23
2.1.5 ARM處理器組成結(jié)構(gòu)27
2.2 ARM處理器的寄存器文件29
2.2.1 ARM處理器的工作狀態(tài)29
2.2.2 ARM處理器的工作模式30
2.2.3 ARM狀態(tài)下寄存器組織31
2.2.4 Thumb狀態(tài)下寄存器組織34
2.3 ARM處理器的異常與中斷36
2.4 ARM處理器的流水線結(jié)構(gòu)40
2.4.1 ARM流水線概述40
2.4.2 ARM7的3級流水線40
2.5 ARM處理器的存儲器組織41
2.5.1 ARM存儲器的層次42
2.5.2 ARM存儲器的管理44
2.5.3 ARM非對齊的存儲訪問操作45
2.6 ARM處理器的片上總線46
2.6.1 AMBA簡介46
2.6.2 AHB簡介47
2.6.3 ASB簡介48
2.6.4 APB簡介48
2.7 ARM處理器的指令體系結(jié)構(gòu)48
第3章 ARM指令系統(tǒng)50
3.1 ARM指令集概述50
3.2 ARM尋址方式54
3.3 ARM數(shù)據(jù)處理指令59
3.4 ARMLoad/Store指令67
3.5 ARM程序狀態(tài)寄存器傳送指令71
3.6 ARM轉(zhuǎn)移指令73
3.7 ARM異常中斷指令75
3.8 ARM協(xié)處理器指令76
第4章 ARM匯編語言程序設(shè)計80
4.1 概述80
4.1.1 開發(fā)工具選擇80
4.1.2 ADS開發(fā)工具81
4.2 ADS環(huán)境下的偽操作和偽指令82
4.2.1 符號定義類偽操作83
4.2.2 數(shù)據(jù)定義類偽操作85
4.2.3 匯編控制類偽操作89
4.2.4 信息報告類偽操作91
4.2.5 其他偽操作92
4.2.6 ARM匯編語言偽指令詳解96
4.2.7 Thumb匯編語言偽指令詳解98
4.3 ARM匯編語言程序設(shè)計98
4.3.1 ARM匯編語言程序設(shè)計概述98
4.3.2 ARM匯編語言語句格式99
4.4 GNUARM匯編語言102
4.5 ARM匯編語言程序設(shè)計實(shí)例106
4.5.1 ARM匯編語言子程序格式106
4.5.2 ARM匯編語言子程序107
4.5.3 ARM匯編語言子程序與C
語言112
第5章 μC/OS-II嵌入式操作系統(tǒng)113
5.1 μC/OS-II嵌入式操作系統(tǒng)的概念113
5.2 μC/OS-II中的任務(wù)115
5.2.1 任務(wù)定義116
5.2.2 任務(wù)堆棧119
5.2.3 任務(wù)控制塊120
5.2.4 任務(wù)調(diào)度123
5.2.5 任務(wù)創(chuàng)建130
5.2.6 任務(wù)的掛起和恢復(fù)132
5.2.7 其他任務(wù)管理133
5.3 μC/OS-II中的中斷135
5.3.1 中斷過程135
5.3.2 中斷服務(wù)程序136
5.3.3 中斷級任務(wù)切換函數(shù)137
5.3.4 臨界段137
5.4 μC/OS-II中的時鐘138
5.4.1 時鐘節(jié)拍138
5.4.2 時間管理140
5.5 μC/OS-II中任務(wù)的同步與通信142
5.5.1 同步142
5.5.2 事件143
5.5.3 事件控制塊144
5.5.4 事件方法147
5.6 μC/OS-II中的信號量150
5.7 μC/OS-II中的互斥信號量153
5.8 μC/OS-II中的消息郵箱155
5.9 μC/OS-II中的消息隊(duì)列157
5.1 0μC/OS-II中的信號量集162
5.1 0.1 信號量集的定義163
5.1 0.2 信號量集的操作166
5.1 1μC/OS-II中的內(nèi)存管理168
5.1 1.1 內(nèi)存控制塊168
5.1 1.2 動態(tài)內(nèi)存的管理170
第6章 S3C44B0X嵌入式微處理器173
6.1 S3C44B0X簡介173
6.1.1 S3C44B0X的功能173
6.1.2 S3C44B0X的內(nèi)特性174
6.1.3 S3C44B0X的外特性177
6.2 S3C44B0X存儲控制器功能及應(yīng)用開發(fā)181
6.2.1 S3C44B0X存儲空間概述181
6.2.2 S3C44B0X存儲控制器的SFR184
6.2.3 S3C44B0X存儲控制器應(yīng)用編程187
6.3 S3C44B0X的GPIO端口功能及應(yīng)用開發(fā)189
6.3.1 S3C44B0X的GPIO概述189
6.3.2 S3C44B0X的GPIO端口的SFR191
6.3.3 S3C44B0X的GPIO端口的應(yīng)用編程197
6.4 S3C44B0X時鐘電源管理功能及開發(fā)198
6.4.1 S3C44B0X的時鐘電源管理部件的簡述198
6.4.2 S3C44B0X的時鐘電源管理部件的SFR199
6.5 S3C44B0X的INTC功能及開發(fā)201
6.5.1 S3C44B0X的INTC概述201
6.5.2 S3C44B0X的INTC的SFR203
6.6 S3C44B0X的UART功能及應(yīng)用開發(fā)209
6.6.1 S3C44B0X的UART概述209
6.6.2 S3C44B0X的UART的SFR211
6.7 S3C44B0X的WDT定時器功能及應(yīng)用開發(fā)216
6.7.1 S3C44B0X的看門狗概述216
6.7.2 S3C44B0X的WDT的SFR217
6.8 S3C44B0X的IIC定時器功能及應(yīng)用開發(fā)217
6.8.1 S3C44B0X的IIC概述218
6.8.2 S3C44B0X的IIC的SFR219
6.9 S3C44B0X的LCD功能及應(yīng)用開發(fā)221
6.9.1 S3C44B0X的LCD控制器概述221
6.9.2 S3C44B0X的LCD控制器的SFR224
6.1 0S3C44B0X的DMAC功能及應(yīng)用開發(fā)227
6.1 0.1 S3C44B0X的DMAC概述227
6.1 0.2 S3C44B0X的DMAC的SFR229
6.1 1S3C44B0X的RTC功能及應(yīng)用開發(fā)234
6.1 1.1 S3C44B0X的RTC概述235
6.1 1.2 S3C44B0X的RTC的SFR236
6.1 2S3C44B0X的PWM定時器功能及應(yīng)用開發(fā)241
6.1 2.1 S3C44B0X的PWM概述241
6.1 2.2 S3C44B0X的PWM的SFR244
6.1 3S3C44B0X的IIS功能及應(yīng)用開發(fā)247
6.1 3.1 S3C44B0X的IIS概述248
6.1 3.2 S3C44B0X的IIS的SFR250
6.1 4S3C44B0X的SIO功能及應(yīng)用開發(fā)252
6.1 4.1 S3C44B0X的SIO概述252
6.1 4.2 S3C44B0X的SIO的SFR254
6.1 5S3C44B0X的ADC功能及應(yīng)用開發(fā)256
6.1 5.1 S3C44B0X的ADC概述256
6.1 5.2 S3C44B0X的ADC的SFR257
第7章 基于S3C44B0X硬件系統(tǒng)開發(fā)259
7.1 S3C44B0X硬件開發(fā)概述259
7.1.1 S3C44B0X開發(fā)板的結(jié)構(gòu)259
7.1.2 硬件設(shè)計技術(shù)260
7.2 S3C44B0X的硬件特性264
7.3 核心板的設(shè)計267
7.3.1 核心板的概述267
7.3.2 Flash的擴(kuò)展接口267
7.3.3 SDRAM的擴(kuò)展接口272
7.3.4 時鐘與復(fù)位電路設(shè)計277
7.3.5 JTAG調(diào)試電路設(shè)計279
7.4 電源板的設(shè)計280
7.5 UART接口的設(shè)計281
7.6 USB接口的設(shè)計283
7.7 NET接口的設(shè)計287
7.8 矩陣鍵盤和數(shù)碼管顯示接口的設(shè)計295
7.9 LCD接口的設(shè)計301
7.1 0CF卡/ATA接口的設(shè)計306
7.1 1PCB板圖313
第8章 基于S3C44B0X的軟件系統(tǒng)開發(fā)315
8.1 BootLoader技術(shù)315
8.1.1 BIOS技術(shù)315
8.1.2 BootLoader的基本概念316
8.1.3 基于Linux的BootLoader的基本原理318
8.1.4 開發(fā)板的主要配置324
8.2 基于S3C44B0X的BootLoader的設(shè)計324
8.2.1 異常中斷機(jī)制324
8.2.2 Stage1程序設(shè)計329
8.2.3 Stage2程序設(shè)計344
8.2.4 UART0初始化347
8.3 基于S3C44B0X的μC/OS-II移植354
8.3.1 μC/OS-II的移植技術(shù)354
8.3.2 OS_CPU.H357
8.3.3 OS_CPU_A.ASM358
8.3.4 OS_CPU_C.C362
8.4 基于μC/OS-II的串行口驅(qū)動程序開發(fā)364
8.4.1 無操作系統(tǒng)的串行口驅(qū)動程序開發(fā)364
8.4.2 基于μC/OS-II的串行口通信程序開發(fā)370
8.5 基于μC/OS-II的A/D驅(qū)動程序開發(fā)371
8.6 基于μC/OS-II的設(shè)備驅(qū)動程序統(tǒng)一框架373
參考文獻(xiàn)376
嵌入式系統(tǒng)(Embedded Sysl,em)是計算機(jī)技術(shù)、半導(dǎo)體技術(shù)、微電子技術(shù)、制造技術(shù)等多種先進(jìn)技術(shù)的高度融合。嵌入式技術(shù)是繼網(wǎng)絡(luò)技術(shù)之后,又一主流技術(shù)方向。嵌入式系統(tǒng)已經(jīng)滲透到人類社會的每個角落,如科學(xué)教育、工業(yè)生產(chǎn)、軍事國防、航空航天、醫(yī)療衛(wèi)生、汽車電子、網(wǎng)絡(luò)設(shè)備、消費(fèi)電子、信息家電等,都在廣泛地、深入地應(yīng)用著嵌入式系統(tǒng)。例如,小到微型機(jī)器人、手機(jī)、PDA等,大到飛機(jī)、導(dǎo)彈、航天器等,其中都嵌入著一個乃至多個獨(dú)立的“嵌入式系統(tǒng)”。
1.1嵌入式系統(tǒng)的概念
計算機(jī)系統(tǒng)有兩大分支:通用計算機(jī)系統(tǒng)和嵌入式計算機(jī)系統(tǒng)(簡稱嵌入式系統(tǒng))。
通用計算機(jī)系統(tǒng)采用標(biāo)準(zhǔn)化設(shè)計:例如PC,在硬件上采用標(biāo)準(zhǔn)架構(gòu),包含通用中央處理器(CPU)、標(biāo)準(zhǔn)輸入輸出(I/O設(shè)備)、標(biāo)準(zhǔn)存儲設(shè)備、標(biāo)準(zhǔn)總線結(jié)構(gòu)等;在軟件上也采用標(biāo)準(zhǔn)架構(gòu),通用操作系統(tǒng)、標(biāo)準(zhǔn)API函數(shù)等。因此,PC的軟硬件都是標(biāo)準(zhǔn)的,生產(chǎn)商也是相對集中的,主要有Intel、AMI)、Microsoft.等。
嵌入式計算機(jī)系統(tǒng)是非標(biāo)準(zhǔn)化設(shè)計:雖然嵌入式系統(tǒng)具有通用計算機(jī)系統(tǒng)的一般特點(diǎn),但它是以服務(wù)于所嵌入的應(yīng)用對象為目標(biāo)的,是一種專用計算機(jī)系統(tǒng),具有很多的特殊性。例如,一款手機(jī)除了具有一般的通話功能外,還可以具有(3PRS功能、照相功能、MP3功能等。因此,嵌入式系統(tǒng)需要根據(jù)具體應(yīng)用量身定制,通過選擇合適的嵌入式處理器、外圍功能模塊等來定制硬件系統(tǒng),通過選擇合適的嵌入式操作系統(tǒng)、應(yīng)用協(xié)議等來定制軟件系統(tǒng)。