xxxx欧美丰满大屁股/性欧美极品xxxx欧美一区二区/男插女的下面免费视频夜色/美女视频在线一区二区三区

歡迎光臨本店     登錄 注冊   加入收藏
  •   
歡迎光臨清華大學出版社第三事業部!

此頁面上的內容需要較新版本的 Adobe Flash Player。

獲取 Adobe Flash Player

當前位置: 首頁 > 科技 > 計算機與網絡 > 微處理器 > ARM體系結構與編程(第2版)

瀏覽歷史

ARM體系結構與編程(第2版)

ARM體系結構與編程(第2版)

  • 商品貨號:20150917015
  • 商品重量:0克
    作者:杜春雷 主編
    出版社:清華大學出版社
    圖書書號/ISBN:978-7-302-40342-5
    出版日期:2015-08-01
    開本:16開
    圖書頁數:528
    圖書裝訂:平裝
    圖書規格:185mm×260mm
    版次:1
    印張:33
    字數:797000
  • 上架時間:2015-09-17
    商品點擊數:1948
  • 定價:¥49.80元
    本店售價:¥49.80元
    注冊用戶:¥49.80元
    vip:¥47.31元
    黃金等級:¥44.82元
    用戶評價: comment rank 5
  • 商品總價:
  • 購買數量:

內容簡介:

商品附加資源

 內 容 簡 介

ARM處理器是一種16/32位的高性能、低成本、低功耗的嵌入式RISC微處理器,由ARM公司設計,然后授權給各半導體廠商生產,它目前已經成為應用最為廣泛的嵌入式處理器。

本書共為分14章,對ARM處理器的體系結構、指令系統和開發工具進行了比較全面的介紹。其中包括ARM體系、ARM程序設計模型、ARM匯編語言程序設計、ARM C/C++語言程序設計、ARM連接器的使用、ARM集成開發環境CodeWarrior IDE的介紹及高性能的調試工具ADW的使用。并在此基礎上介紹一些典型的基于ARM體系的嵌入式應用系統設計的基本技術。通過閱讀本書,可以使讀者掌握開發基于ARM的應用系統的各方面的知識。

本書既可作為學習ARM技術的培訓材料,也可作為嵌入式系統開發人員的參考手冊。

 

  

前    言

  

  嵌入式系統是指以應用為中心,以計算機技術為基礎,軟件硬件可裁剪,適應應用系統對功能、可靠性、成本、體積和功耗嚴格要求的專用計算機系統。

  嵌入式系統并不是最近出現的新技術,只是隨著微電子技術和計算機技術的發展,微控制芯片功能越來越強大,嵌入微控制芯片的設備和系統越來越多,從而使得這種技術越來越引人注目而已。嵌入式系統與通用的計算機系統既有相似之處,也有明顯的區別。通常,嵌入式系統中的系統程序(包括操作系統)與應用程序是渾然一體的,這些程序被編譯連接成一個可以執行的二進制映像文件(Image),這個二進制映像文件被固化在系統中,在系統復位后自動執行。嵌入式系統的開發系統與實際運行的系統并不相同,需要交叉編譯系統和適當的調試系統。

  ARM嵌入式處理器是一種高性能、低功耗的RISC芯片。它由英國ARM公司設計,世界上幾乎所有的主要半導體廠商都生產基于ARM體系結構的通用芯片,或在其專用芯片中嵌入ARM的相關技術。如TI、Motorola、Intel、NS、Philips、Altera、Agilent、Atmel、Hynix、Sharp、Triscend、NEC、Cirrus Logic、Samsung和LinkUp等公司都有相應的產品。目前ARM芯片廣泛應用于無線產品、PDA、GPS、網絡、消費電子產品、STB及智能卡中,基于ARM內核的處理器年產量突破90億個,已經成為業界的龍頭。本書比較全面地介紹基于ARM技術的嵌入式應用系統的開發技術。

1. 本書的主要讀者

  本書對ARM處理器的體系結構、指令系統、開發工具做了比較全面的介紹。并在此基礎上討論一些典型的基于ARM體系嵌入式應用系統設計時的基本技術。通過閱讀本書,可以使讀者能夠掌握開發基于ARM的應用系統的各方面的知識。它既可作為學習ARM技術的培訓材料,也可作為嵌入式系統開發人員的參考手冊。

2. 本書的主要內容

  本書以可執行的二進制映像文件(Image)為中心,介紹基于ARM微處理器的嵌入式系統的開發過程所涉及的知識,主要包括以下幾部分。

* Image文件的“原材料”,包括*.c、*.h、*.obj、*.asm及*.lib文件。這些文件包括操作系統,通常以*.lib形式提供,也有一些操作系統附屬的源代碼,可以為*.c、*.h、*.asm;BSP(其實也是操作系統的一部分,因為它對于不同的計算機主板是不同的,這里將其單獨列出),它通常為*.c、*.h、*.asm;語言庫(如C語言運行庫),通常為*.lib;用戶自己的應用程序,通常為*.c、*.h、*.asm。

本書將對應地介紹:ARM的體系結構;ARM的指令系統;ARM匯編語言,對應于*.asm文件;ARM C語言的獨到部分(與標準C相同的部分這里不做介紹),對應于*.c;ARM的編程指南;ARM的編譯器使用。

本書還將介紹ARM公司提供的集成開發環境CodeWarrior IDE的使用方法。

* Image文件各部分的組織方法以及在內存中的安排。

本書將對應地介紹ELF格式的映像文件的組成、ARM連接器的使用、程序在 ROM中的存放技術。

* Image文件中各部分的功能。

本書將對應地介紹一個嵌入式系統各部分的功能,著重介紹系統啟動部分的設計。這部分是嵌入式系統涉及的難點,將通過一些實例來介紹。

* Image的調試。

本書主要介紹ARM公司的調試工具ADW的使用方法。同時將介紹嵌入式系統的基本調試方法。

3. 本書的結構安排

  全書包括14章。各章主要內容說明如下。

  第1章簡要介紹ARM公司的情況以及基于ARM技術的嵌入式系統的應用情況,比較詳細地介紹當前ARM體系結構的主要版本,簡要介紹目前ARM處理器的種類及其主要特點。通過這一章的介紹,讀者可以對ARM技術有一個總體的了解。

  第2章介紹ARM編程模型的基本知識。主要包括ARM處理器模式、ARM體系中的寄存器及其使用方式、ARM體系中異常中斷處理的基本概念以及ARM體系中存儲訪問的基本知識。通過這一章的介紹,讀者將了解ARM編程模型的基本知識,為詳細了解ARM程序設計的各項技術打好基礎。

  第3章詳細介紹ARM體系的指令系統以及尋址方式。將介紹ARM指令集和Thumb指令集各自的應用領域。雖然沒有詳細介紹Thumb指令集,但并不是因為Thumb指令集不重要,而是因為從功能上來講,它是ARM指令集的子集,在了解ARM指令集的基礎上很容易理解Thumb指令。介紹各指令的編碼格式、語法格式、執行的操作以及應用方法。最后將介紹一些常用的ARM指令代碼段,幫助用戶進一步理解各指令的用法,積累一些ARM代碼設計的基本方法。

  第4章介紹ARM匯編語言程序設計的基本方法以及ARM匯編器armasm的使用方法。其中包括ARM匯編語言中的偽操作(Directives)、宏指令(Pseudo-instruction)、匯編語言格式、armasm的使用方法以及一些匯編語言程序示例。通過這些介紹,讀者可以掌握ARM匯編語言設計的方法。

  第5章介紹ARM體系的存儲系統。在一個嵌入式系統中,存儲系統是非常重要的一部分。這里將介紹ARM體系中用于存儲管理的協處理器CP15、存儲管理單元MMU、寫緩沖以及Cache、快速上下文切換技術,還將介紹有關存儲系統的程序設計。并以LinkUp公司ARM處理器芯片L7210中的存儲系統為例,介紹ARM存儲系統的設計技術。其中沒有介紹存儲保護單元MPU,這是因為MPU更簡單,而MMU的應用更為廣泛。該章對于虛擬存儲技術、緩沖技術以及Cache技術都將做比較詳細的介紹,使那些從事基于低端單片機應用的開發人員更容易理解ARM體系中存儲系統的設計技術。

  第6章介紹ARM/Thumb過程調用的標準。為了能使單獨編譯的C語言程序和匯編程序之間能夠相互調用,必須為子程序間的調用制定一定的規則。ATPCS規定了ARM程序和Thumb程序中子程序調用的基本規則。這些基本規則包括子程序調用過程中寄存器的使用規則、數據棧的使用規則和參數的傳遞規則等。同時,該章還將介紹支持數據棧檢查的ATPCS以及與代碼/數據位置無關的ATPCS。

  第7章介紹ARM程序和Thumb程序混合使用的方法。如果程序遵守支持ARM程序和Thumb程序混合使用的ATPCS,則程序中的ARM子程序和Thumb子程序可以相互調用。對于C/C++源程序而言,只要在編譯時指定-apcs /interwork選項,編譯器生成的代碼就遵守支持ARM程序和Thumb程序混合使用的ATPCS。而對于匯編源程序而言,用戶必須保證編寫的代碼遵守支持ARM程序和Thumb程序混合使用的ATPCS。該章將介紹相關的選項和編程技術。

  第8章介紹ARM匯編程序以及C/C++程序之間相互調用的技術。其中將介紹C編譯器中內嵌的匯編器的使用方法。

  第9章詳細介紹ARM體系中的異常中斷技術。其中包括異常中斷處理的處理過程,各種異常中斷處理的進入和返回機制,在應用程序中使用異常中斷處理的方法以及各種異常中斷的詳細使用技術。

  第10章主要介紹ARM體系中C/C++語言程序設計的基本知識。其中包括ARM C/C++語言的一些特性、ARM C/C++編譯器的使用方法,以及ARM C/C++運行時庫的使用方法。通過這些介紹,可以使讀者掌握開發嵌入式C/C++應用程序的基本知識和方法,進一步了解嵌入式應用系統的特點。

  第11章介紹如何由目標文件以及庫文件得到可執行的映像文件。其中包括ELF格式的可執行映像文件的組成、ARM連接器的使用方法,以及連接過程所執行的各種操作。最后通過一些實例介紹在映像文件中各部分內容的地址映射關系。

  第12章介紹嵌入式應用程序設計的基本知識,然后通過幾個示例具體說明嵌入式應用程序的設計方法。對于每個示例,不僅詳細介紹程序設計的要點,而且介紹如何使用ARM開發工具編譯、連接這些程序,生成映像文件。該章是對前面幾章知識的綜合應用。

  第13章介紹CodeWarrior IDE集成開發環境的使用方法。其中著重介紹在CodeWarrior IDE中工程項目的使用方法,以及生成目標的設置方法。這些知識是使用CodeWarrior IDE進行應用程序開發時最為重要的部分。

  第14章介紹ARM體系的調試系統和ARM公司的高性能調試工具ADW的使用方法。ADW的功能非常多,本書并不是一本專門介紹ADW的書。因而只是介紹其中的一些基本功能和嵌入式系統的基本調試方法。

4. 閱讀本書時的注意事項

  在嵌入式應用系統的開發技術中,涉及很多名詞術語,本書主要使用在國內單片機技術領域中通用的一些名詞術語,但仍有一些ARM體系中特有的名詞術語較難翻譯。本書中有很多詞是按照其技術含義來表達的,而不是按單詞直接翻譯。同時,對于一些名詞術語,本書在括號內給出了其英文名稱,便于讀者理解。

  對于ARM指令系統,本書給出了詳細的介紹,是希望該部分能作為編寫ARM匯編程序的開發人員的參考資料,提高開發人員的工作效率。

  本書在編寫過程中,得到了ARM(上海)的大力支持,在此表示衷心的感謝。

  作  者

  

  

目    錄


第1章  ARM概述及其基本編程模型 1

1.1  ARM技術的應用領域及其特點 1

1.2  ARM體系結構的版本及命名方法 2

1.2.1  ARM體系結構的版本 2

1.2.2  ARM體系的變種 4

1.2.3  ARM/Thumb體系版本的命名

格式 6

1.3  ARM處理器系列 7

1.3.1  ARM7系列 7

1.3.2  ARM9系列 8

1.3.3  ARM9E系列 9

1.3.4  ARM10E系列 9

1.3.5  SecurCore系列 10

1.4  ARM處理器的運行模式 11

1.5  ARM寄存器介紹 11

1.5.1  通用寄存器 12

1.5.2  程序狀態寄存器 15

1.6  ARM體系的異常中斷 17

1.6.1  ARM中異常中斷的種類 17

1.6.2  ARM處理器對異常中斷的

響應過程 18

1.6.3  從異常中斷處理程序中返回 19

1.7  ARM體系中的存儲系統 19

1.7.1  ARM體系中的存儲空間 19

1.7.2  ARM存儲器格式 19

1.7.3  非對齊的存儲訪問操作 20

1.7.4  指令預取和自修改代碼 21

第2章  ARM指令分類及其尋址方式 22

2.1  ARM指令集概要介紹 22

2.1.1  ARM指令的分類 22

2.1.2  ARM指令的一般編碼格式 22

2.1.3  ARM指令的條件碼域 23

2.2  ARM指令的尋址方式 24

2.2.1  數據處理指令的操作數的

尋址方式 24

2.2.2  字及無符號字節的Load/Store

指令的尋址方式 34

2.2.3  雜類Load/Store指令的

尋址方式 46

2.2.4  批量Load/Store指令的

尋址方式 52

2.2.5  協處理器Load/Store指令的

尋址方式 56

第3章  ARM指令集介紹 61

3.1  ARM指令集 61

3.1.1  跳轉指令 61

3.1.2  數據處理指令 65

3.1.3  乘法指令 78

3.1.4  雜類的算術指令 84

3.1.5  狀態寄存器訪問指令 85

3.1.6  Load/Store內存訪問指令 88

3.1.7  批量 Load/Store內存訪問

指令 97

3.1.8  信號量操作指令 102

3.1.9  異常中斷產生指令 104

3.1.10  ARM協處理器指令 106

3.2  一些基本的ARM指令功能段 110

3.2.1  算術邏輯運算指令的應用 111

3.2.2  跳轉指令的應用 112

3.2.3  Load/Store指令的應用 114

3.2.4  批量Load/Store指令的

應用 115

3.2.5  信號量指令的應用 116

3.2.6  與系統相關的一些指令

代碼段 117

3.3  Thumb指令介紹 120

第4章  ARM匯編語言程序設計 122

4.1  偽操作 122

4.1.1  符號定義偽操作 122

4.1.2  數據定義偽操作 126

4.1.3  匯編控制偽操作 135

4.1.4  數據幀描述偽操作 138

4.1.5  信息報告偽操作 139

4.1.6  其他的偽操作 141

4.2  ARM匯編語言偽指令 151

4.3  ARM匯編語言語句的格式 153

4.3.1  ARM匯編語言中的符號 154

4.3.2  ARM匯編語言中的表達式 157

4.4  ARM匯編語言程序的格式 162

4.4.1  匯編語言程序的格式 162

4.4.2  匯編語言子程序的調用 163

4.5  ARM匯編編譯器的使用 164

4.6  匯編程序設計舉例 166

4.6.1  ARM中偽操作的使用實例 166

4.6.2  ARM匯編程序的實例 169

第5章  ARM的存儲系統 175

5.1  ARM存儲系統概述 175

5.2  ARM中用于存儲管理的系統控制

     協處理器CP15 176

5.2.1  訪問CP15寄存器的指令 176

5.2.2  CP15中的寄存器 178

5.3  存儲器管理單元MMU 186

5.3.1  存儲器管理單元MMU

概述 186

5.3.2  禁止/使能MMU 188

5.3.3  MMU中的地址變換過程 189

5.3.4  MMU中的存儲訪問權限

控制 198

5.3.5  MMU中的域 199

5.3.6  關于快表的操作 199

5.3.7  ARM中的存儲訪問失效 201

5.4  高速緩沖存儲器和寫緩沖區 205

5.4.1  基本概念 205

5.4.2  Cache的工作原理和地址映像

方法 206

5.4.3  Cache的分類 208

5.4.4  Cache的替換算法 209

5.4.5  緩沖技術的使用注意事項 210

5.4.6  存儲系統的一致性問題 211

5.4.7  Cache內容鎖定 213

5.4.8  與Cache和寫緩沖區相關的

編程接口 214

5.5  快速上下文切換技術 217

5.5.1  快速上下文切換技術原理 217

5.5.2  快速上下文切換技術編程

接口 219

5.6  與存儲系統相關的程序設計指南 219

5.6.1  地址空間 219

5.6.2  存儲器的格式 220

5.6.3  非對齊的存儲訪問操作 221

5.6.4  指令預取和自修改代碼 222

5.6.5  IMB 223

5.6.6  存儲器映射的I/O空間 224

5.7  ARM存儲系統的實例 225

5.7.1  L7205的存儲系統概述 225

5.7.2  L7205中的SDRAM 226

5.7.3  L7205中的MMU 235

第6章  ATPCS介紹 242

6.1  ATPCS概述 242

6.2  基本ATPCS 242

6.2.1  寄存器的使用規則 243

6.2.2  數據棧的使用規則 244

6.2.3  參數傳遞規則 245

6.3  幾種特定的ATPCS 246

6.3.1  支持數據棧限制檢查的

ATPCS 246

6.3.2  支持只讀段位置無關

(ROPI)的ATPCS 248

6.3.3  支持可讀寫段位置無關

(RWPI)的ATPCS 248

6.3.4  支持ARM程序和Thumb程序

混合使用的ATPCS 248

6.3.5  處理浮點運算的ATPCS 249

第7章  ARM程序和Thumb程序混合

使用 250

7.1  概述 250

7.2  在匯編語言程序中通過用戶代碼

     支持interwork 251

7.2.1  可以實現程序狀態切換的

指令 251

7.2.2  與程序狀態切換相關的

偽操作 254

7.2.3  進行狀態切換的匯編程序

實例 255

7.3  在C/C++程序中實現interwork 256

7.4  在匯編語言程序中通過連接器

     支持interwork 259

7.4.1  利用veneers實現匯編程序間的

程序狀態切換 259

7.4.2  利用veneers實現匯編程序

與C/C++程序間的程序狀態

切換 261

第8章  C/C++以及匯編語言的混合

編程 263

8.1  內嵌匯編器的使用 263

8.1.1  內嵌的匯編指令用法 263

8.1.2  內嵌的匯編器和armasm的

區別 265

8.1.3  在C/C++程序中使用內嵌的

匯編指令 265

8.1.4  內嵌匯編指令的應用舉例 267

8.2  從匯編程序中訪問C程序變量 270

8.3  匯編程序、C程序以及C++程序的

     相互調用 271

8.3.1  在C++程序中使用C程序

頭文件 271

8.3.2  匯編程序、C程序以及C++ 

程序的相互調用舉例 272

第9章  異常中斷處理 276

9.1  ARM中的異常中斷處理概述 276

9.1.1  ARM體系中的異常中斷

種類 276

9.1.2  異常中斷向量表及異常中斷

優先級 277

9.1.3  異常中斷使用的寄存器 278

9.2  進入和退出異常中斷的過程 279

9.2.1  ARM處理器對異常中斷的

響應過程 279

9.2.2  從異常中斷處理程序中

返回 282

9.3  在應用程序中安排異常中斷處理

     程序 285

9.3.1  在系統復位時安排異常中斷

處理程序 285

9.3.2  在C程序中安排異常中斷

處理程序 286

9.4  SWI異常中斷處理程序 288

9.4.1  SWI異常中斷處理程序的

實現 288

9.4.2  SWI異常中斷調用 292

9.5  FIQ和IRQ異常中斷處理程序 297

9.5.1  IRQ/FIQ異常中斷處理

程序 298

9.5.2  IRQ異常中斷處理程序

舉例 300

9.6  復位異常中斷處理程序 302

9.7  未定義指令異常中斷 302

9.8  指令預取中止異常中斷處理程序 303

9.9  數據訪問中止異常中斷處理程序 303

第10章  ARM C/C++編譯器 304

10.1  ARM C/C++編譯器概述 304

10.1.1  ARM C/C++編譯器及語言庫

 介紹 304

10.1.2  ARM編譯器中與搜索路徑

 相關的一些基本概念 305

10.2  ARM編譯器命令行格式 306

10.2.1  過程調用標準 307

10.2.2  設置源程序語言類型 308

10.2.3  指定搜索路徑 309

10.2.4  設置預處理選項 309

10.2.5  設置輸出文件的類型 310

10.2.6  指定目標處理器和ARM

 體系版本 311

10.2.7  生成調試信息 312

10.2.8  代碼生成的控制 313

10.2.9  控制警告信息的產生 315

10.2.10  編譯時進行的一些額外的

  檢查 317

10.2.11  控制錯誤信息 318

10.3  ARM編譯器中的pragmas 319

10.4  ARM編譯器特定的關鍵詞 321

10.4.1  用于聲明函數的關鍵詞 321

10.4.2  用于聲明變量的關鍵詞 333

10.4.3  用于限定數據類型的

 關鍵詞 333

10.5  ARM編譯器支持的基本數據

      類型 335

10.6  ARM編譯器中的預定義宏 337

10.7  ARM中的C/C++庫 339

10.7.1  ARM中的C/C++運行時庫

 概述 339

10.7.2  建立一個包含C/C++運行時

 庫的C/C++應用程序 340

10.7.3  建立不包含C運行時庫的

 應用程序 344

10.7.4  裁減C/C++運行時庫以適應

 特定的目標運行環境 345

第11章  ARM連接器 347

11.1  ARM映像文件 347

11.1.1  ARM映像文件的組成 347

11.1.2  ARM映像文件的入口點 349

11.1.3  輸入段的排序規則 350

11.2  ARM連接器介紹 351

11.3  ARM連接器生成的符號 353

11.3.1  連接器生成的與域相關的

 符號 353

11.3.2  連接器生成的與輸出段相關的

 符號 354

11.3.3  連接器生成的與輸入段相關的

 符號 354

11.4  連接器的優化功能 354

11.5  運行時庫的使用 355

11.5.1  C/C++運行時庫與目標

 文件 356

11.5.2  查找需要的C/C++

 運行時庫 356

11.5.3  選擇合適種類的C/C++

 運行時庫 357

11.5.4  掃描C/C++運行時庫 359

11.6  從一個映像文件中使用另一個映像

      文件中的符號 359

11.6.1  symdefs文件 359

11.6.2  建立symdefs文件 361

11.6.3  symdefs文件的使用 361

11.7  隱藏或者重命名全局符號 362

11.7.1  steering文件的格式 362

11.7.2  steering文件中的命令 362

商品標簽

購買記錄(近期成交數量0)

還沒有人購買過此商品
總計 0 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁

用戶評論(共0條評論)

  • 暫時還沒有任何用戶評論
總計 0 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁
用戶名: 匿名用戶
E-mail:
評價等級:
評論內容:
驗證碼: captcha