ARM處理器是一種16/32位的高性能、低成本、低功耗的嵌入式RISC微處理器,由ARM公司設(shè)計,然后授權(quán)給各半導(dǎo)體廠商生產(chǎn),它目前已經(jīng)成為應(yīng)用最為廣泛的嵌入式處理器!禔RM體系結(jié)構(gòu)與編程(第3版)》分為16章,對ARM處理器的體系結(jié)構(gòu)、指令系統(tǒng)和開發(fā)工具進(jìn)行了較全面的介紹。其中包括ARM體系結(jié)構(gòu)、ARM程序設(shè)計模型、ARM匯編語言程序設(shè)計、ARMC/C++編譯器、ARM連接器的使用、ARM集成開發(fā)環(huán)境CodeWarriorIDE及高性能調(diào)試工具ADW的使用。此外還介紹一些典型的基于ARM體系的嵌入式應(yīng)用系統(tǒng)設(shè)計的基本技術(shù)。最后講述了STM32微控制器應(yīng)用開發(fā)和自動駕駛系統(tǒng)應(yīng)用開發(fā)。通過閱讀《ARM體系結(jié)構(gòu)與編程(第3版)》,讀者可以掌握開發(fā)基于ARM應(yīng)用系統(tǒng)各方面的知識!禔RM體系結(jié)構(gòu)與編程(第3版)》可作為學(xué)習(xí)ARM技術(shù)的材料,也可作為嵌入式系統(tǒng)開發(fā)人員的參考手冊。
對ARM處理器的體系結(jié)構(gòu)、指令系統(tǒng)和開發(fā)工具進(jìn)行了比較全面的介紹,可以使讀者掌握開發(fā)基于ARM的應(yīng)用系統(tǒng)的各方面的知識。
前 言
嵌入式系統(tǒng)是指以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積和功耗嚴(yán)格要求的專用計算機(jī)系統(tǒng)。
嵌入式系統(tǒng)并不是最近出現(xiàn)的新技術(shù),只是隨著微電子技術(shù)和計算機(jī)技術(shù)的發(fā)展,微控制芯片功能越來越強(qiáng)大,嵌入微控制芯片的設(shè)備和系統(tǒng)也越來越多,從而使得這種技術(shù)越來越引人注目。嵌入式系統(tǒng)與通用的計算機(jī)系統(tǒng)既有相似之處,也有明顯的區(qū)別。通常,嵌入式系統(tǒng)中的系統(tǒng)程序(包括操作系統(tǒng))與應(yīng)用程序是渾然一體的,這些程序被編譯連接成一個可執(zhí)行的二進(jìn)制映像文件(Image),這個二進(jìn)制映像文件被固化在系統(tǒng)中,在系統(tǒng)復(fù)位后自動執(zhí)行。嵌入式系統(tǒng)的開發(fā)系統(tǒng)與實際運(yùn)行的系統(tǒng)并不相同,需要交叉編譯系統(tǒng)和適當(dāng)?shù)恼{(diào)試系統(tǒng)。
ARM嵌入式處理器是一種高性能、低功耗的RISC芯片。它由英國ARM公司設(shè)計,世界上幾乎所有的主要半導(dǎo)體廠商都生產(chǎn)基于ARM體系結(jié)構(gòu)的通用芯片,或在其專用芯片中嵌入ARM相關(guān)技術(shù)。如TI、Motorola、Intel、NS、Philips、Altera、Agilent、Atmel、Hynix、Sharp、Triscend、NEC、Cirrus Logic、Samsung和LinkUp等公司都有相應(yīng)的產(chǎn)品。目前ARM芯片廣泛應(yīng)用于無線產(chǎn)品、PDA、GPS、網(wǎng)絡(luò)、消費(fèi)電子產(chǎn)品、STB及智能卡中,基于ARM內(nèi)核的處理器年產(chǎn)量突破90億個,已經(jīng)成為業(yè)界的龍頭。本書較全面地介紹基于ARM技術(shù)的嵌入式應(yīng)用系統(tǒng)的開發(fā)技術(shù)。
1. 本書的主要讀者
本書對ARM處理器的體系結(jié)構(gòu)、指令系統(tǒng)、開發(fā)工具做了較全面的介紹。并在此基礎(chǔ)上討論一些典型的基于ARM體系嵌入式應(yīng)用系統(tǒng)設(shè)計時的基本技術(shù)。通過閱讀本書,讀者可以掌握開發(fā)基于ARM應(yīng)用系統(tǒng)各方面的知識。它可作為學(xué)習(xí)ARM技術(shù)的材料,也可作為嵌入式系統(tǒng)開發(fā)人員的參考手冊。
2. 本書的主要內(nèi)容
本書以可執(zhí)行的二進(jìn)制映像文件為中心,介紹基于ARM微處理器的嵌入式系統(tǒng)的開發(fā)過程所涉及的知識,主要包括以下幾部分內(nèi)容。
?Image文件的“原材料”,包括*.c、*.h、*.obj、*.asm及*.lib文件。這些文件包括操作系統(tǒng),通常以*.lib形式提供,也有一些操作系統(tǒng)附屬的源代碼,可以是*.c、*.h、*.asm;BSP(其實也是操作系統(tǒng)的一部分,因為它對于不同的計算機(jī)主板是不同的,這里將其單獨列出),它通常為*.c、*.h、*.asm;語言庫(如C語言運(yùn)行庫),通常為*.lib;用戶自己的應(yīng)用程序,通常為*.c、*.h、*.asm。
本書將對應(yīng)地介紹ARM體系結(jié)構(gòu);ARM指令系統(tǒng);ARM匯編語言,對應(yīng)于*.asm文件;ARM C語言的獨特部分(與標(biāo)準(zhǔn)C相同的部分這里不再介紹),對應(yīng)于*.c;ARM編程指南;ARM編譯器使用。
本書還將介紹ARM公司提供的集成開發(fā)環(huán)境CodeWarrior IDE的使用方法。
?Image文件各部分的組織方法以及在內(nèi)存中的安排。
本書將對應(yīng)地介紹ELF格式映像文件的組成、ARM連接器的使用、程序在 ROM中的存放技術(shù)。
?Image文件中各部分的功能。
本書將對應(yīng)地介紹一個嵌入式系統(tǒng)各部分的功能,著重介紹系統(tǒng)啟動部分的設(shè)計。這部分內(nèi)容是嵌入式系統(tǒng)涉及的難點,將通過一些實例來介紹。
?Image的調(diào)試。
本書主要介紹ARM公司的調(diào)試工具ADW的使用方法,同時將介紹嵌入式系統(tǒng)的基本調(diào)試方法。
3. 本書的結(jié)構(gòu)安排
全書包括16章。各章主要內(nèi)容說明如下。
第1章簡要介紹ARM公司的情況以及基于ARM技術(shù)的嵌入式系統(tǒng)的應(yīng)用情況,比較詳細(xì)地介紹了ARM系列處理器及其特點,并介紹了ARM的寄存器及其使用方法、ARM的存儲系統(tǒng)和異常中斷等知識。通過對本章的學(xué)習(xí),讀者可以對ARM技術(shù)有一個總體了解。
第2章簡要介紹了ARM指令集和主要尋址方式。通過學(xué)習(xí)本章,讀者能夠詳細(xì)了解ARM指令集的相關(guān)知識,同時能夠掌握ARM指令的尋址方式,為下一章學(xué)習(xí)各種ARM指令集打下堅實的基礎(chǔ)。
第3章詳細(xì)介紹了ARM指令集。通過介紹各指令的編碼格式、語法格式、執(zhí)行的操作以及應(yīng)用方法,向讀者全面闡述了ARM指令集的用法,同時通過介紹一些常用的ARM指令代碼段,幫助讀者進(jìn)一步理解各指令的應(yīng)用方法,從而使讀者能夠快速理解和掌握ARM指令的應(yīng)用,為進(jìn)行嵌入式編程積累經(jīng)驗。
第4章介紹ARM匯編語言程序設(shè)計的基本方法以及ARM匯編器armasm的使用方法。其中包括ARM匯編語言中的偽操作(Directives)、宏指令(Pseudo-instruction)、匯編語言格式、armasm的使用方法以及一些匯編語言程序示例。通過這些介紹,讀者可以掌握ARM匯編語言設(shè)計的方法。
第5章介紹ARM體系的存儲系統(tǒng)。在一個嵌入式系統(tǒng)中,存儲系統(tǒng)是非常重要的一部分。這里將介紹ARM體系中用于存儲管理的協(xié)處理器CP15、存儲管理單元MMU、寫緩沖以及高速緩存、快速上下文切換技術(shù),還將介紹有關(guān)存儲系統(tǒng)的程序設(shè)計。并以LinkUp公司ARM處理器芯片L7210中的存儲系統(tǒng)為例,介紹ARM存儲系統(tǒng)的設(shè)計技術(shù)。其中沒有介紹存儲保護(hù)單元MPU,這是因為MPU更簡單,而MMU的應(yīng)用更為廣泛。本章對于虛擬存儲技術(shù)、緩沖技術(shù)以及高速緩存技術(shù)都將做比較詳細(xì)的介紹,使那些從事基于低端單片機(jī)應(yīng)用的開發(fā)人員更容易理解ARM體系中存儲系統(tǒng)的設(shè)計技術(shù)。
第6章介紹ARM/Thumb過程調(diào)用的標(biāo)準(zhǔn)。為了能使單獨編譯的C語言程序和匯編程序之間能夠相互調(diào)用,必須為子程序間的調(diào)用制定一定的規(guī)則。ATPCS規(guī)定了ARM程序和Thumb程序中子程序調(diào)用的基本規(guī)則。這些基本規(guī)則包括子程序調(diào)用過程中寄存器的使用規(guī)則、數(shù)據(jù)棧的使用規(guī)則和參數(shù)的傳遞規(guī)則等。同時,該章還將介紹支持?jǐn)?shù)據(jù)棧檢查的ATPCS以及與代碼/數(shù)據(jù)位置無關(guān)的ATPCS。
第7章介紹ARM程序和Thumb程序混合使用的方法。如果程序遵守支持ARM程序和Thumb程序混合使用的ATPCS,則程序中的ARM子程序和Thumb子程序可以相互調(diào)用。對于C/C++源程序而言,只要在編譯時指定-apcs /interwork選項,編譯器生成的代碼就遵守支持ARM程序和Thumb程序混合使用的ATPCS。而對于匯編源程序而言,用戶必須編寫的代碼遵守支持ARM程序和Thumb程序混合使用的ATPCS。該章還將介紹相關(guān)的選項和編程技術(shù)。
第8章介紹ARM匯編程序以及C/C++程序之間相互調(diào)用的技術(shù)。其中將介紹C編譯器中內(nèi)嵌的匯編器的使用方法。
第9章詳細(xì)介紹ARM體系中的異常中斷技術(shù)。其中包括異常中斷處理的過程,各種異常中斷處理的進(jìn)入和返回機(jī)制,在應(yīng)用程序中使用異常中斷處理的方法以及各種異常中斷的詳細(xì)使用技術(shù)。
第10章主要介紹ARM體系中C/C++語言程序設(shè)計的基本知識。其中包括ARM C/C++語言的一些特性、ARM C/C++編譯器的使用方法,以及ARM C/C++運(yùn)行時庫的使用方法。通過這些介紹,可以使讀者掌握開發(fā)嵌入式C/C++應(yīng)用程序的基本知識和方法,進(jìn)一步了解嵌入式應(yīng)用系統(tǒng)的特點。
第11章介紹如何由目標(biāo)文件以及庫文件得到可執(zhí)行的映像文件。其中包括ELF格式的可執(zhí)行映像文件的組成、ARM連接器的使用方法,以及連接過程所執(zhí)行的各種操作。最后通過一些實例介紹在
陳長生,河南省教育廳學(xué)術(shù)技術(shù)帶頭人,河南省文明教師;數(shù)據(jù)安全與恢復(fù)競賽指導(dǎo)、評委;河南省高職高專院校電工電子示范性實訓(xùn)基地建設(shè)項目負(fù)責(zé)人;主要從事電子技術(shù)和嵌入式物聯(lián)網(wǎng)技術(shù)的研究和教學(xué)工作。先后發(fā)表論文17篇,出版專著、教材7部,參與省部級以上科研項目3項。
目 錄
第1章 ARM概述及其基本編程模型 1
1.1 ARM技術(shù)的應(yīng)用領(lǐng)域及其特點 1
1.1.1 ARM技術(shù)的應(yīng)用領(lǐng)域 1
1.1.2 ARM技術(shù)的特點 2
1.2 ARM體系結(jié)構(gòu)的版本及命名方法 3
1.2.1 ARM體系結(jié)構(gòu)的版本 3
1.2.2 ARM體系的變種 6
1.2.3 ARM/Thumb體系版本的命名
格式 8
1.3 ARM處理器系列 9
1.3.1 ARM7系列 10
1.3.2 ARM9系列 10
1.3.3 ARM9E系列 11
1.3.4 ARM10E系列 12
1.3.5 SecurCore系列 12
1.4 ARM處理器的運(yùn)行模式 13
1.5 ARM寄存器介紹 14
1.5.1 通用寄存器 15
1.5.2 程序狀態(tài)寄存器 17
1.6 ARM體系的異常中斷 19
1.6.1 ARM中異常中斷的種類 20
1.6.2 ARM處理器對異常中斷的
響應(yīng)過程 20
1.6.3 從異常中斷處理程序中返回 21
1.7 ARM體系中的存儲系統(tǒng) 21
1.7.1 ARM體系中的存儲空間 21
1.7.2 ARM存儲器格式 22
1.7.3 非對齊的存儲訪問操作 22
1.7.4 指令預(yù)取和自修改代碼 23
第2章 ARM指令分類及其尋址方式 24
2.1 ARM指令集概述 24
2.1.1 ARM指令的分類 24
2.1.2 ARM指令的一般編碼格式 24
2.1.3 ARM指令的條件碼域 25
2.2 ARM指令的尋址方式 26
2.2.1 數(shù)據(jù)處理指令的操作數(shù)的尋址
方式 26
2.2.2 字及無符號字節(jié)的Load/Store
指令的尋址方式 36
2.2.3 雜類Load/Store指令的尋址
方式 48
2.2.4 批量Load/Store指令的尋址
方式 53
2.2.5 協(xié)處理器Load/Store指令的
尋址方式 58
第3章 精通ARM指令集 62
3.1 ARM指令集 62
3.1.1 跳轉(zhuǎn)指令 62
3.1.2 數(shù)據(jù)處理指令 66
3.1.3 乘法指令 79
3.1.4 雜類的算術(shù)指令 85
3.1.5 狀態(tài)寄存器訪問指令 85
3.1.6 Load/Store 內(nèi)存訪問指令 88
3.1.7 批量Load/Store 內(nèi)存訪問
指令 98
3.1.8 信號量操作指令 103
3.1.9 異常中斷產(chǎn)生指令 105
3.1.10 ARM協(xié)處理器指令 106
3.2 一些基本的ARM指令代碼段 111
3.2.1 算術(shù)邏輯運(yùn)算指令的應(yīng)用 111
3.2.2 跳轉(zhuǎn)指令的應(yīng)用 113
3.2.3 Load/Store指令的應(yīng)用 114
3.2.4 批量Load/Store指令的
應(yīng)用 116
3.2.5 信號量指令的應(yīng)用 116
3.2.6 與系統(tǒng)相關(guān)的一些指令
代碼段 117
3.3 Thumb指令概述 121
第4章 ARM匯編語言程序設(shè)計 122
4.1 偽操作 122
4.1.1 符號定義偽操作 122
4.1.2 數(shù)據(jù)定義偽操作 126
4.1.3 匯編控制偽操作 135
4.1.4 數(shù)據(jù)幀描述偽操作 138
4.1.5 信息報告?zhèn)尾僮?138
4.1.6 其他的偽操作 141
4.2 ARM匯編語言偽指令 150
4.3 ARM匯編語言語句的格式 153
4.3.1 ARM匯編語言中的符號 154
4.3.2 ARM匯編語言中的表達(dá)式 156
4.4 ARM匯編語言程序及子程序調(diào)用的
格式 162
4.4.1 匯編語言程序的格式 162
4.4.2 匯編語言子程序調(diào)用的
格式 163
4.5 ARM匯編編譯器的使用 163
4.6 匯編程序設(shè)計舉例 166
4.6.1 ARM中偽操作的實例 166
4.6.2 ARM匯編程序的實例 168
第5章 ARM的存儲系統(tǒng) 174
5.1 ARM存儲系統(tǒng)概述 174
5.2 ARM中用于存儲管理的系統(tǒng)控制
協(xié)處理器CP15 175
5.2.1 訪問CP15寄存器的指令 175
5.2.2 CP15中的寄存器 177
5.3 存儲器管理單元MMU 185
5.3.1 存儲器管理單元MMU
概述 185
5.3.2 禁止/使能MMU 186
5.3.3 MMU中的地址變換過程 188
5.3.4 MMU中的存儲訪問權(quán)限
控制 197
5.3.5 MMU中的域 197
5.3.6 關(guān)于快表的操作 197
5.3.7 ARM中的存儲訪問失效 200
5.4 高速緩沖存儲器和寫緩沖區(qū) 203
5.4.1 基本概念 203
5.4.2 Cache的工作原理和地址
映像方法 204
5.4.3 Cache的分類 206
5.4.4 Cache的替換算法 207
5.4.5 緩沖技術(shù)的使用注意事項 208
5.4.6 存儲系統(tǒng)的一致性問題 209
5.4.7 Cache內(nèi)容鎖定 211
5.4.8 與Cache和寫緩沖區(qū)相關(guān)的
編程接口 212
5.5 快速上下文切換技術(shù) 215
5.5.1 快速上下文切換技術(shù)原理 215
5.5.2 快速上下文切換技術(shù)編程
接口 216
5.6 與存儲系統(tǒng)相關(guān)的程序設(shè)計指南 217
5.6.1 地址空間 217
5.6.2 存儲器的格式 218
5.6.3 非對齊的存儲訪問操作 219
5.6.4 指令預(yù)取和自修改代碼 220
5.6.5 IMB技術(shù) 221
5.6.6 存儲器映射的I/O空間 222
5.7 ARM存儲系統(tǒng)的實例 223
5.7.1 L7205的存儲系統(tǒng)概述 223
5.7.2 L7205中的SDRAM 224
5.7.3 L7205中的MMU 232
第6章 ATPCS規(guī)則 239
6.1 ATPCS概述 239
6.2 基本ATPCS 239
6.2.1 寄存器的使用規(guī)則 240
6.2.2 數(shù)據(jù)棧的使用規(guī)則 241
6.2.3 參數(shù)的傳遞規(guī)則 242
6.3 幾種特定的ATPCS 243
6.3.1 支持?jǐn)?shù)據(jù)棧限制檢查的
ATPCS 243
6.3.2 支持只讀段位置無關(guān)
(ROPI)的ATPCS 245
6.3.3 支持可讀寫段位置無關(guān)
(RWPI)的ATPCS 245
6.3.4 支持ARM程序和Thumb程序
混合使用的ATPCS 245
6.3.5 處理浮點運(yùn)算的ATPCS 246
第7章 ARM程序和Thumb程序混合
使用 247
7.1 概述 247
7.2 在匯編語言程序中通過用戶代碼
支持interwork 248
7.2.1 可以實現(xiàn)程序狀態(tài)切換的
指令 248
7.2.2 與程序狀態(tài)切換相關(guān)的
偽操作 251
7.2.3 進(jìn)行狀態(tài)切換的匯編程序
實例 252
7.3 在C/C++程序中實現(xiàn)interwork 253
7.4 在匯編語言程序中通過連接器
支持interwork 255
7.4.1 利用veneers實現(xiàn)匯編程序
間的程序狀態(tài)切換 256
7.4.2 利用veneers實現(xiàn)匯編程序
與C/C++程序間的程序狀態(tài)
切換 257
第8章 C/C++以及匯編語言的混合
編程 259
8.1 內(nèi)嵌匯編器的使用 259
8.1.1 內(nèi)嵌的匯編指令用法 259
8.1.2 內(nèi)嵌的匯編器和armasm的
區(qū)別 261
8.1.3 在C/C++程序中使用內(nèi)嵌的
匯編指令 261
8.1.4 內(nèi)嵌匯編指令應(yīng)用舉例 263
8.2 從匯編程序中訪問C程序變量 266
8.3 匯編程序、C程序以及C++程序的
相互調(diào)用 267
8.3.1 在C++程序中使用C程序
頭文件 267
8.3.2 匯編程序、C程序以及C++
程序的相互調(diào)用舉例 268
第9章 異常中斷處理 272
9.1 ARM中的異常中斷處理概述 272
9.1.1 ARM體系中的異常中斷
種類 272
9.1.2 異常中斷向量表及異常中斷
優(yōu)先級 273
9.1.3 異常中斷使用的寄存器 274
9.2 進(jìn)入和退出異常中斷的過程 275
9.2.1 ARM處理器對異常中斷的
響應(yīng)過程 275
9.2.2 從異常中斷處理程序中
返回 278
9.3 在應(yīng)用程序中安排異常中斷處理
程序 281
9.3.1 在系統(tǒng)復(fù)位時安排異常中斷
處理程序 281
9.3.2 在C程序中安排異常中斷
處理程序 282
9.4 SWI異常中斷處理程序 284
9.4.1 SWI異常中斷處理程序的
實現(xiàn) 284
9.4.2 SWI異常中斷調(diào)用 288
9.5 FIQ和IRQ異常中斷處理程序 293
9.5.1 IRQ/FIQ異常中斷處理
程序 293
9.5.2 IRQ異常中斷處理程序
舉例 296
9.6 復(fù)位異常中斷處理程序 297
9.7 未定義指令異常中斷 298
9.8 指令預(yù)取中止異常中斷處理程序 298
9.9 數(shù)據(jù)訪問中止異常中斷處理程序 299
第10章 ARM C/C++編譯器 300
10.1 ARM C/C++編譯器概述 300
10.1.1 ARM C/C++編譯器及語言庫
介紹 300
10.1.2 ARM編譯器中與搜索路徑
相關(guān)的一些基本概念 301
10.2 ARM編譯器命令行格式 302
10.2.1 過程調(diào)用標(biāo)準(zhǔn) 303
10.2.2 設(shè)置源程序語言類型 304
10.2.3 指定搜索路徑 305
10.2.4 設(shè)置預(yù)處理選項 305
10.2.5 設(shè)置輸出文件的類型 306
10.2.6 指定目標(biāo)處理器和ARM
體系版本 307
10.2.7 生成調(diào)試信息 308
10.2.8 代碼生成的控制 309
10.2.9 控制警告信息的產(chǎn)生 311
10.2.10 編譯時進(jìn)行的一些額外
檢查 313
10.2.11 控制錯誤信息 314
10.3 ARM編譯器中的pragmas 314
10.4 ARM編譯器特定的關(guān)鍵詞 316
10.4.1 用于聲明函數(shù)的關(guān)鍵詞 317
10.4.2 用于聲明變量的關(guān)鍵詞 328
10.4.3 用于限定數(shù)據(jù)類型的
關(guān)鍵詞 329
10.5 ARM編譯器支持的基本數(shù)據(jù)
類型 330
10.6 ARM編譯器中的預(yù)定義宏 332
10.7 ARM中的C/C++庫 334
10.7.1 ARM中的C/C++運(yùn)行時庫
概述 334
10.7.2 建立一個包含C/C++運(yùn)行時
庫的C/C++應(yīng)用程序 336
10.7.3 建立不包含C運(yùn)行時庫的
應(yīng)用程序 339
10.7.4 裁剪C/C++運(yùn)行時庫以適應(yīng)
特定的目標(biāo)運(yùn)行環(huán)境 340
第11章 ARM連接器 342
11.1 ARM映像文件 342
11.1.1 ARM映像文件的組成 342
11.1.2 ARM映像文件的入口點 344
11.1.3 輸入段的排序規(guī)則 345
11.2 ARM連接器概述 346
11.3 ARM連接器生成的符號 348
11.3.1 連接器生成的與域相關(guān)的
符號 348
11.3.2 連接器生成的與輸出段
相關(guān)的符號 349
11.3.3 連接器生成的與輸入段
相關(guān)的符號 349
11.4 連接器的優(yōu)化功能 349
11.5 運(yùn)行時庫的使用 350
11.5.1 C/C++運(yùn)行時庫與目標(biāo)
文件 351
11.5.2 查找需要的C/C++
運(yùn)行時庫 351
11.5.3 選擇合適種類的C/C++
運(yùn)行時庫 352
11.5.4 掃描C/C++運(yùn)行時庫 354
11.6 從一個映像文件中使用另一個映像
文件中的符號 354
11.6.1 symdefs文件 354
11.6.2 建立symdefs文件 356
11.6.3 symdefs文件的使用 356
11.7 隱藏或者重命名全局符號 357
11.7.1 steering文件的格式 357
11.7.2 steering文件中的命令 357
11.8 ARM連接器的命令行選項 358
11.9 使用scatter文件定義映像文件的
地址映射 365
11.9.1 scatter文件概述 366
11.9.2 scatter文件中各部分的
介紹 368
11.9.3 scatter文件使用舉例 370
第12章 設(shè)計嵌入式應(yīng)用程序案