內(nèi)容簡(jiǎn)介
《ARM體系結(jié)構(gòu)與編程》分14章對(duì)ARM處理器的體系結(jié)構(gòu)、指令系統(tǒng)和開發(fā)工具作了比較全面的介紹。其中包括ARM體系介紹、ARM程序設(shè)計(jì)模型、ARM匯編語言程序設(shè)計(jì)、ARMC/C++語言程序設(shè)計(jì)、ARM連接器的使用、ARM集成開發(fā)環(huán)境CodeWarriorIDE的介紹及高性能的調(diào)試工具ADW的使用。并在此基礎(chǔ)之上介紹一些典型的基于ARM體系的嵌入式應(yīng)用系統(tǒng)設(shè)計(jì)時(shí)的基本技術(shù)。
目錄
1.1ARM技術(shù)的應(yīng)用領(lǐng)域及其特點(diǎn)
1.2ARM體系結(jié)構(gòu)的版本及命名方法
1.2.1ARM體系結(jié)構(gòu)的版本
1.2.2ARM體系的變種
1.2.3ARM/Thumb體系版本的命名格式
l.3ARM處理器系列
1.3.1ARM7系列
1.3.2ARM9系列
1.3.3ARM9E系列
1.3.4ARM1OE系列
1.3.5SecurCore系列
l.4ARM處理器模式
1.5ARM寄存器介紹
1.5.l通用寄存器
1.5.3程序狀態(tài)寄存器
1.6ARM體系的異常中斷
1.6.1ARM中異常中斷種類
1.6.2ARM處理器對(duì)異常中斷的響應(yīng)過程
1.6.3從異常中斷處理程序中返回
1.7ARM體系中存儲(chǔ)系統(tǒng)
1.7.1ARM體系中的存儲(chǔ)空間
1.7.2ARM存儲(chǔ)器格式
1.7.3非對(duì)齊的存儲(chǔ)訪問操作
1.7.4指令預(yù)取和自修改代碼
第2章ARM指令分類及其尋址方式
2.1ARM指令集概要介紹
2.1.1ARM指令的分類
2.1.2ARM指令的一般編碼格式
2.1.3ARM指令的條件碼域
2.2ARM指令尋址方式
2.2.l數(shù)據(jù)處理指令的操作數(shù)的尋址方式
2.2.2字及無符號(hào)字節(jié)的Load/Store指令的尋址方式
2.2.3雜類Load/Store指令的尋址方式
2.2.4批量Load/Store指令的尋址方式
2.2.5協(xié)處理器Load/Store指令的尋址方式
第3章ARM指令集介紹
3.1ARM指令集
3.1.l跳轉(zhuǎn)指令
3.l.2數(shù)據(jù)處理指令
3.1.3乘法指令
3.1.4雜類的算術(shù)指令
3.1.5狀態(tài)寄存器訪問指令
3.l.6Load/Store內(nèi)存訪問指令
3.1.7批量Load/Store內(nèi)存訪問指令
3.1.8信號(hào)量操作指令
3.1.9異常中斷產(chǎn)生指令
3.1.10ARM協(xié)處理器指令
3.2一些基本的ARM指令功能段
3.2.l算術(shù)邏輯運(yùn)算指令的應(yīng)用
3.2.2跳轉(zhuǎn)指令的應(yīng)用
3.2.3Loacl/Store指令的應(yīng)用
3.2.4批量Load/Store指令的應(yīng)用
3.2.5信號(hào)量指令的應(yīng)用
3.2.6與系統(tǒng)相關(guān)的一些指令代碼段
3.3Thumb指令介紹
第4章ARM匯編語言程序設(shè)計(jì)
4.1偽操作
4.1.l符號(hào)定義偽操作
4.1.2數(shù)據(jù)定義偽操作
4.1.3匯編控制偽操作
4.1.4棧中數(shù)據(jù)幀描述偽操作
4.1.5信息報(bào)告?zhèn)尾僮?br /> 4.1.6其他的偽操作
4.2ARM匯編語言偽指令
4.3ARM匯編語言語句格式
4.3.1ARM匯編語言中的符號(hào)
4.3.2ARM匯編語言中的表達(dá)式
4.4ARM匯編語言程序格式.
4.4.l匯編語言程序格式
4.4.2匯編語言子程序調(diào)用
4.5ARM匯編編譯器的使用
4.6匯編程序設(shè)計(jì)舉例
4.6.1ARM中偽操作使用實(shí)例
4.6.2ARM中匯編程序?qū)嵗?br /> 第5章ARM存儲(chǔ)系統(tǒng)
5.1ARM存儲(chǔ)系統(tǒng)概述
5.2ARM中用于存儲(chǔ)管理的系統(tǒng)控制協(xié)處理器CP15
5.2.1訪問CP15寄存器的指令
5.2.2CP15中的寄存器
5.3存儲(chǔ)器管理單元MMU
5.3.l存儲(chǔ)器管理單元MMU概述
5.3.2禁止/使能MMU
5.3.3MMU中地址變換過程
5.3.4MMU中存儲(chǔ)訪問權(quán)限控制
5.3.5MMU中的域
5.3.6關(guān)于快表的操作
5.3.7ARM中的存儲(chǔ)訪問失效
5.4高速緩沖存儲(chǔ)器和寫緩沖區(qū)
5.4.1基本概念
5.4.2cache的工作原理和地址映像方法
5.4.3cache的分類
5.4.4cache的替換算法
5.4.5緩沖技術(shù)的使用注意事項(xiàng)
5.4.6存儲(chǔ)系統(tǒng)的一致性問題
5.4.7cache內(nèi)容鎖定
5.4.8與cache和寫緩沖區(qū)相關(guān)的編程接口
5.5快速上下文切換技術(shù)
5.5.l快速上下文切換技術(shù)原理
5.5.2快速上下文切換技術(shù)編程接口
5.6與存儲(chǔ)系統(tǒng)相關(guān)的程序設(shè)計(jì)指南
5.6.l地址空間
5.6.2存儲(chǔ)器格式
5.6.3非對(duì)齊的存儲(chǔ)訪問操作
5.6.4指令預(yù)取和自修改代碼
5.6.5IMB
5.6.6存儲(chǔ)器映射的I/O空間
5.7AIOA存儲(chǔ)系統(tǒng)的實(shí)例
5.7.1L7205的存儲(chǔ)系統(tǒng)概述
5.7.2L7205中的SDRAM
5.7.3L7205中的MMU
第6章ATPCS介紹
6.1ATPCS概述
6.2基本ATPCS
6.2.l寄存器的使用規(guī)則
6.2.2數(shù)據(jù)棧使用規(guī)則
6.2.3參數(shù)傳遞規(guī)則
6.3幾種特定的ATPCS
6.3.l支持?jǐn)?shù)據(jù)棧限制檢查的ATPCS
6.3.2支持只讀段位置無關(guān)(ROPI)的ATPCS
6.3.3支持可讀寫段位置無關(guān)(RWPI)的ATPCS
6.3.4支持ARM程序和Thumb程序混合使用的ATPCS
6.3.5處理浮點(diǎn)運(yùn)算的ATPCS
第7章ARM程序和Thumb程序混合使用
7.1概述
7.2在匯編語言程序中通過用戶代碼支持interwork
7.2.l可以實(shí)現(xiàn)程序狀態(tài)切換的指令
7.2.2與程序狀態(tài)切換相關(guān)的偽操作
7.2.3進(jìn)行狀態(tài)切換的匯編程序?qū)嵗?br /> 7.3在C/C++程序中實(shí)現(xiàn)interwork
7.4在匯編語言程序中通過連接器支持interwork
7.4.l利用veneers實(shí)現(xiàn)匯編程序間的程序狀態(tài)切換
7.4.2利用veneers實(shí)現(xiàn)匯編程序與C/C++程序間的程序狀態(tài)切換
第8章C\C++以及匯編語言的混合編程
8.l內(nèi)嵌匯編器的使用
8.1.l內(nèi)嵌的匯編指令用法
8.1.2內(nèi)嵌的匯編器和armasm的區(qū)別
8.l.3在C\C++程序中使用內(nèi)嵌的匯編指令
8.1.4內(nèi)嵌匯編指令的應(yīng)用舉例
8.2從匯編程序中訪問C程序變量
8.3匯編程序.C程序以及C++程序的相互調(diào)用
8.3.l在C++程序中使用C程序頭文件
8.3.2匯編程序.C程序以及C++程序的相互調(diào)用舉例
第9章異常中斷處理
9.1ARM中異常中斷處理概述
9.1.1ARM體系中異常中斷種類
9.1.2異常中斷向量表及異常中斷優(yōu)先級(jí)
9.1.3異常中斷使用的寄存器
9.2進(jìn)入和退出異常中斷的過程
9.2.1ARM處理器對(duì)異常中斷的響應(yīng)過程
9.2.2從異常中斷處理程序中返回
9.3在應(yīng)用程序中安裝異常中斷處理程序
9.3.1在系統(tǒng)復(fù)位時(shí)安裝異常中斷處理程序
9.3.2在C程序中安裝異常中斷處理程序
9.4SWI異常中斷處理程序
9.4.1SWI異常中斷處理程序的實(shí)現(xiàn)
9.4.2SWI異常中斷調(diào)用
9.5FIQ和IRQ異常中斷處理程序
9.5.1IRQ/FIQ異常中斷處理程序
9.5.2IRQ異常中斷處理程序舉例
9.6復(fù)位異常中斷處理程序
9.7未定義指令異常中斷
9.8指令預(yù)取中止異常中斷處理程序
9.9數(shù)據(jù)訪問中止異常中斷處理程序
第10章ARMC/0++編譯器
10.1ARMC/C++編譯器概述
10.1.1ARMC/C++編譯器及語言庫介紹
10.l.2ARM編譯器中與搜索路徑相關(guān)的一些基本概念
10.2ARM編譯器命令行格式
10.2.l過程調(diào)用標(biāo)準(zhǔn)
10.2.2設(shè)置源程序語言類型
10.2.3指定搜索路徑
10.2.4設(shè)置預(yù)處理選項(xiàng)
10.2.5設(shè)置輸出文件類型
10.2.6指定目標(biāo)處理器和ARM體系版本
10.2.7生成調(diào)試信息
10.2.8代碼生成的控制
10.2.9控制警告信息的產(chǎn)生
10.2.10編譯時(shí)進(jìn)行的一些額外的檢查
10.2.11控制錯(cuò)誤信息
10.3ARM編譯器中的pragmas
10.4ARM編譯器特定的關(guān)鍵詞
10.4.1用于聲明函數(shù)的關(guān)鍵詞
10.4.2用于聲明交量的關(guān)鍵詞
10.4.3用于限定數(shù)據(jù)類型的關(guān)鍵詞
10.5ARM編譯器支持的基本數(shù)據(jù)類型
10.6ARM編譯器中預(yù)定義宏
10.7ARM中C/C++庫
10.7.1ARM中C/C++運(yùn)行時(shí)庫概述
10.7.2建立一個(gè)包含C/C++運(yùn)行時(shí)庫的C/C++應(yīng)用程序
10.7.3建立不包含C運(yùn)行時(shí)庫的應(yīng)用程序
10.7.4裁減C/C++運(yùn)行時(shí)庫以適應(yīng)特定的目標(biāo)運(yùn)行環(huán)境
第11章ARM連接器
11.1ARM映像文件
11.1.1ARM映像文件的組成
11.1.2ARM映像文件的入口點(diǎn)
11.1.3輸入段的排序規(guī)則
11.2ARM連接器介紹
11.3ARM連接器生成的符號(hào)
11.3.1連接器生成的與域相關(guān)的符號(hào)
11.3.2連接器生成的與輸出段相關(guān)的符號(hào)
11.3.3連接器生成的與輸入段相關(guān)的符號(hào)
11.4連接器的優(yōu)化功能
11.5運(yùn)行時(shí)庫的使用
11.5.1C/C++運(yùn)行時(shí)庫與目標(biāo)文件
11.5.2查找需要的C/C++運(yùn)行時(shí)庫
11.5.3選擇合適種類的C/C++運(yùn)行時(shí)庫
11.5.4掃描C/C++運(yùn)行時(shí)庫
11.6從一個(gè)映像文件中使用另一個(gè)映像文件中的符號(hào)
11.6.1symdefs文件
11.6.2建立symdefs文件
11.6.3symdefs文件的使用
11.7隱藏或者重命名全局符號(hào)
11.7.lsteering文件的格式
11.7.2steering文件中的命令
11.8ARM連接器命令行選項(xiàng)
11.9使用scatter文件定義映像文件的地址映射
11.9.lscatter文件概述
11.9.2satter文件中各部分介紹
11.9.3scatter文件使用舉例
第12章嵌入式應(yīng)用程序示例
12.l嵌入式應(yīng)用程序設(shè)計(jì)的基本知識(shí)
12.1.1嵌入式應(yīng)用系統(tǒng)中的存儲(chǔ)映射
12.1.2系統(tǒng)初始化
12.2使用semihosting的C語言程序示例
12.2.1源程序分析
12.2.2生成映像文件
12.3一個(gè)嵌入式應(yīng)用系統(tǒng)示例
12.3.l源程序分析
12.3.2生成映像文件
12.3.3本例中地址映射模式
12.4進(jìn)行ROM/RAM地址重映射的嵌入式應(yīng)用系統(tǒng)
12.4.l地址映射模式
12.4.2源程序分析
12.4.3生成映像文件
12.5一個(gè)嵌入式操作系統(tǒng)示例
第13章使用CodeWarrior
13.1CodeWarriorforADS概述
13.2簡(jiǎn)單工程項(xiàng)目的使用
13.2.1工程項(xiàng)目窗口
13.2.2簡(jiǎn)單工程項(xiàng)目的使用
13.3配置生成目標(biāo)
13.3.1DebugSettings對(duì)話框介紹
13.3.2設(shè)置牛成目標(biāo)的基本選項(xiàng)
13.3.3匯編器選項(xiàng)設(shè)置
13.3.4編譯器的選項(xiàng)設(shè)置
13.3.5連接器的選項(xiàng)設(shè)置
13.3.6fromELF工具的選項(xiàng)設(shè)置
13.4復(fù)雜工程項(xiàng)目的使用
13.4.l建立一個(gè)新的生成目標(biāo)
13.4.2將一個(gè)生成目標(biāo)更名
13.4.3建立生成目標(biāo)之間的依賴關(guān)系
13.4.4子工程項(xiàng)目的使用
13.5工程項(xiàng)目模板
13.5.1ADS中工程項(xiàng)目模板的使用
13.5.2建立用戶工程項(xiàng)目模板
13.6編譯和連接工程項(xiàng)目
13.6.1編譯文件
13.6.2生成工程項(xiàng)目
第14章ARM體系中的調(diào)試方法
14.1ARM體系中調(diào)試系統(tǒng)概述
14.2基于Angel的調(diào)試系統(tǒng)
14.2.l基于Angel的調(diào)試系統(tǒng)的概述
14.2.2使用Angel開發(fā)應(yīng)用程序
14.2.3Angel執(zhí)行的操作
14.2.4將Angel移植到特定的目標(biāo)系統(tǒng)
14.3基于JTAG的調(diào)試系統(tǒng)
14.3.l基于JTAG的調(diào)試系統(tǒng)的特點(diǎn)
14.3.2基于JTAG的調(diào)試系統(tǒng)結(jié)構(gòu)
14.3.3目標(biāo)系統(tǒng)中的調(diào)試功能擴(kuò)展部件
14.3.4基于JTAG的調(diào)試過程
14.4ADW使用介紹
14.4.1ADW概述
14.4.2ADW中的窗口
14.4.3ADW使用介紹
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6095瀏覽量
36081 -
米爾科技
+關(guān)注
關(guān)注
5文章
227瀏覽量
21407
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
了解體系結(jié)構(gòu) - 介紹 Arm 體系結(jié)構(gòu)
ARM同步原件體系結(jié)構(gòu)指南
Arm的DRTM體系結(jié)構(gòu)規(guī)范
ARM SoC體系結(jié)構(gòu)(中文版)
ARM體系結(jié)構(gòu)與編程_杜春雷

ARM體系結(jié)構(gòu)與程序設(shè)計(jì)
ARM體系結(jié)構(gòu)和應(yīng)用系統(tǒng)設(shè)計(jì)示例

評(píng)論