ARM體系結(jié)構(gòu)與編程

出版時間:2012-6  出版社:電子工業(yè)出版社 電子工業(yè)出版社 (2012-06出版)  作者:唐振明 編  頁數(shù):207  
Tag標(biāo)簽:無  

內(nèi)容概要

  目前基于ARM架構(gòu)的嵌入式CPU在手持移動設(shè)備和通信等嵌入式領(lǐng)域占據(jù)絕對市場的狀況,應(yīng)重視學(xué)習(xí)嵌入式體系架構(gòu),首選是ARM體系架構(gòu)。編者唐振明認為:學(xué)習(xí)ARM體系架構(gòu)不僅是概念的羅列、知識點的講解及理論的貫穿,更重要的是在理解ARM設(shè)計理念的同時,要有好的配套實驗或跟蹤的案例,即強調(diào)“理論+實踐”的學(xué)習(xí)方法?!禔RM體系結(jié)構(gòu)與編程》就是圍繞這一方法而編寫的,主要內(nèi)容包括ARM處理器概述、ARM體系結(jié)構(gòu)、ARM編程模型、ARM微處理器的指令系統(tǒng)、ARM匯編語言程序設(shè)計、Bootloader啟動代碼分析和ARM RealView MDK集成開發(fā)環(huán)境,并針對ARM硬件寄存器和RISC指令集做了大量的配套實驗及調(diào)試方法,最后在理解以上知識點的基礎(chǔ)上對Bootloader進行了詳細的分析?!  禔RM體系結(jié)構(gòu)與編程》適合作為計算機、軟件工程、電氣自動化及電子信息工程等大專生、本科生或研究生課程的教材。

書籍目錄

第1章 ARM處理器概述 1.1 嵌入式處理器簡介 1.1.1 嵌入式處理器分類 1.1.2 嵌入式操作系統(tǒng) 1.1.3 嵌入式處理器評價指標(biāo) 1.2 什么是ARM 1.2.1 ARM的概念 1.2.2 ARM公司發(fā)跡史 1.3 ARM體系結(jié)構(gòu)的命名規(guī)則 1.4 ARM系列處理器簡介 1.4.3 ARM9E系列 1.4.4 ARM10系列 1.4.5 ARM11系列 1.4.6 SecurCore系列 1.4.7 ARM Cortex-A8處理器 1.5 ARM處理器的技術(shù)優(yōu)勢及其應(yīng)用 1.6 本章小結(jié) 1.7 課后練習(xí) 第2章 ARM體系結(jié)構(gòu) 2.1 ARM體系結(jié)構(gòu)的特點 2.1.1 RISC設(shè)計思想的體現(xiàn) 2.2 ARM流水線 2.2.1 ARM流水線的概念與原理 2.2.2 流水線的分類 2.2.33級流水線ARM組織 2.2.45級流水線ARM組織 2.2.56級流水線ARM組織 2.2.6 影響流水線性能的因素 2.3 ARM存儲器 2.4 I/O管理 2.5 ARM開發(fā)調(diào)試方法 2.5.1 指令集模擬器 2.5.2 駐留監(jiān)控軟件 2.5.3 JTAG仿真調(diào)試 2.5.4 基于ULINK在線仿真器 2.6 本章小結(jié) 2.7 課后練習(xí) 第3章 ARM編程模型 3.1 數(shù)據(jù)類型 3.1.1 ARM的基本數(shù)據(jù)類型 3.1.2 浮點數(shù)據(jù)類型 3.1.3 存儲器大/小端 3.2 處理器工作模式 3.3 ARM寄存器組織 3.3.1 通用寄存器 3.3.2 程序狀態(tài)寄存器 3.4 異常中斷處理 3.4.1 異常種類 3.4.2 異常優(yōu)先級 3.4.3 處理器模式和異常 3.4.4 異常響應(yīng)流程 3.4.5 從異常處理程序中返回 3.5 本章小結(jié) 3.6 課后練習(xí) 第4章 ARM微處理器的指令系統(tǒng) 4.1 ARM微處理器的指令集概述 4.1.1 ARM微處理器的指令的分類與格式 4.1.2 指令的條件域 4.2 ARM指令集 4.2.1 數(shù)據(jù)處理指令 4.2.2 移位指令 4.2.3 乘法指令與乘加指令 4.2.4 批量數(shù)據(jù)加載/存儲指令 4.2.5 跳轉(zhuǎn)指令 4.2.6 程序狀態(tài)寄存器訪問指令 4.2.7 加載/存儲指令 4.2.8 協(xié)處理器指令 4.2.9 異常產(chǎn)生指令 4.3 ARM指令的尋址方式 4.3.1 立即尋址 4.3.2 寄存器尋址 4.3.3 寄存器間接尋址 4.3.4 基址變址尋址 4.3.5 多寄存器尋址 4.3.6 相對尋址 4.3.7 堆棧尋址 4.4 Thumb指令及應(yīng)用 4.5 本章小結(jié) 4.6 課后練習(xí) 第5章 ARM匯編語言程序設(shè)計 5.1 ARM匯編器所支持的偽操作 5.1.1 符號定義Symbol Definition偽操作 5.1.2 數(shù)據(jù)定義Data Definition偽操作 5.1.3 匯編控制Assembly Control偽操作 5.1.4 信息報告Reporting偽操作 5.1.5 指令集選擇Instruction Set Selection偽操作 5.1.6 其他偽操作 5.2 ARM匯編器所支持的偽指令 5.2.1 ADR偽指令 5.2.2 ADRL偽指令 5.2.3 MOV32偽指令 5.2.4 LDR偽指令 5.3 匯編語言文件格式 5.3.1 ARM匯編語言語句格式 5.3.2 ARM匯編語言中的符號 5.3.3 匯編語言程序中的表達式和運算符 5.3.4 匯編語言預(yù)定義寄存器和協(xié)處理器 5.3.5 匯編語言的程序結(jié)構(gòu) 5.3.6 匯編語言子程序調(diào)用 5.4 ARM匯編語言與C語言混合編程 5.4.1 在C語言中內(nèi)嵌匯編語言 5.4.2 在C語言中調(diào)用匯編語言的函數(shù) 5.4.3 在匯編語言中調(diào)用C語言的函數(shù) 5.5 本章小結(jié) 5.6 課后練習(xí) 第6章 Bootload啟動代碼分析 6.1 匯編基礎(chǔ) 6.2 啟動代碼功能模塊分解 6.2.1 程序的入口地址 6.2.2 看門狗及中斷的禁止 6.2.3 系統(tǒng)時鐘初始化 6.2.4 初始化內(nèi)存控制器 6.2.5 系統(tǒng)堆棧的初始化 6.2.6 建立中斷向量表 6.2.7 跳轉(zhuǎn)到C語言入口 6.3 Bootload實驗部分 6.3.1 實驗環(huán)境 6.3.2 實驗步驟 6.3.3 實驗總結(jié) 6.4 Bootload擴展部分—U-Boot分析 6.4.1 Bootloader的引導(dǎo)方式 6.4.2 Bootloader的種類 6.4.3 U-Boot源碼結(jié)構(gòu) 6.4.4 U-Boot的編譯 6.4.5 U-Boot的移植 6.4.6 添加U-Boot命令 6.4.7 U-Boot的調(diào)試 6.4.8 U-Boot與內(nèi)核的關(guān)系 6.4.9 U-Boot的常用命令 6.4.10 U-Boot的環(huán)境變量 6.4.11 使用U-Boot 6.5 本章小結(jié) 6.6 課后練習(xí) 第7章 ARM RealView MDK集成開發(fā)環(huán)境 7.1 RealView MDK突出特性 7.2 MDK功能介紹 7.2.1 Vision4 IDE 7.2.2 Vision4 IDE主要特性 7.2.3 啟動代碼配置向?qū)?7.2.4 Vision4設(shè)備模擬器 7.2.5 性能分析器 7.2.6 RealView編譯器 7.2.7 MicroLib 7.2.8 RealView Real-Time Library RealView RTL實時庫 7.2.9 ARM軟件開發(fā)工具解決方案 7.3 RealView MDK的使用 7.3.1 Vision4的安裝 7.3.2 創(chuàng)建Vision工程 7.4 Keil MDK編譯器與ULINK2使用 7.4.1 ULINK2概述 7.4.2 ULINK2與MDK的鏈接使用 7.5 Keil MDK編譯器與J-LINK使用 7.5.1 J-LINK概述 7.5.2 J-LINK與MDK的鏈接使用 7.6 Keil MDK編譯器與H-JTAG使用 7.6.1 H-JTAG概述 7.6.2 H-JTAG 調(diào)試結(jié)構(gòu) 7.6.3 H-JTAG的安裝 7.6.4 H-JTAG配置 7.6.5 MDK的安裝與設(shè)置 7.6.6 調(diào)試 7.7 Keil開發(fā)工具鏈 7.7.1 用UltraEdit查看和編輯程序源文件 7.7.2 Keil MDK生成BIN過程 7.7.3 ARM工具鏈準(zhǔn)備實驗 7.7.4 armasm匯編器的使用 7.7.5 armlink鏈接器的使用 7.7.6 armcc編譯器的使用 7.7.7 FromELF實用工具實驗 7.8 本章小結(jié) 7.9 課后練習(xí) 參考文獻

章節(jié)摘錄

版權(quán)頁:   插圖:   6.4.1 Bootloader的引導(dǎo)方式 Linux系統(tǒng)是通過Bootloader引導(dǎo)啟動的。加電后,就要執(zhí)行Bootloader來初始化系統(tǒng)。系統(tǒng)加電或復(fù)位后,所有CPU都會從某個地址開始執(zhí)行,這是由處理器設(shè)計決定的。例如,X86的復(fù)位向量在高地址端,ARM處理器在復(fù)位時從地址0x00000000取第一條指令。嵌入式系統(tǒng)的開發(fā)板都要把板上ROM或Flash映射到這個地址。因此,必須把Bootloader程序存儲在相應(yīng)的Flash位置。系統(tǒng)加電后,CHU將首先執(zhí)行它。 主機和目標(biāo)機之間一般有串口可以連接,Bootloader軟件通常會通過串口來輸入輸出。例如,輸出出錯或者執(zhí)行結(jié)果信息到串口終端,從串口終端讀取用戶控制命令等。Bootloader啟動過程通常是多階段的,這樣既能提供復(fù)雜的功能,又有很好的可移植性。例如,從Flash啟動的Bootloader多數(shù)是兩階段的啟動過程。從后面U—Boot的內(nèi)容可以詳細分析這個特性。大多數(shù)。Bootloader都包含2種不同的操作模式:本地加載模式和遠程下載模式。這兩種操作模式的區(qū)別僅對于開發(fā)人員才有意義,也就是不同啟動方式的使用。從最終用戶的角度看,Bootloader的作用就是用來加載操作系統(tǒng),并不存在所謂的本地加載模式與遠程下載模式的區(qū)別。 因為Bootloader的主要功能是引導(dǎo)操作系統(tǒng)啟動,所以我們詳細討論一下各種啟動方式的特點。 (1)網(wǎng)絡(luò)啟動方式 這種方式開發(fā)板不需要配置較大的存儲介質(zhì),與無盤工作站有點類似。但是使用這種啟動方式之前,需要把Bootloader安裝到板上的EPROM或者Flash中。Bootloader通過以太網(wǎng)接口遠程下載Linux內(nèi)核映像或者文件系統(tǒng)。 使用這種方式也有前提條件,就是目標(biāo)板需有串口、以太網(wǎng)接口或者其他連接方式。串口一般可以作為控制臺,同時可以用來下載內(nèi)核映像和RAMDISK文件系統(tǒng)。串口通信傳輸速率過低,不適合用來掛接NFS文件系統(tǒng)。所以以太網(wǎng)接口成為通用的互聯(lián)設(shè)備,一般的開發(fā)板都可以配置10M以太網(wǎng)接口。 對于PDA等手持設(shè)備來說,以太網(wǎng)的RJ一45接口顯得大了些,而USB接口,特別是USB的迷你接口,尺寸非常小。對于開發(fā)的嵌入式系統(tǒng),可以把USB接口虛擬成以太網(wǎng)接口來通信。這種方式在開發(fā)主機和開發(fā)板兩端都需要驅(qū)動程序。 另外,還要在服務(wù)器上配置啟動相關(guān)網(wǎng)絡(luò)服務(wù)。Bootloader下載文件一般都使用TFTP網(wǎng)絡(luò)協(xié)議,還可以通過DHCP的方式動態(tài)配置IP地址。DHCP/BOOTP服務(wù)為Bootloader分配IP地址,配置網(wǎng)絡(luò)參數(shù),然后才能夠支持網(wǎng)絡(luò)傳輸功能。如果Bootloader可以直接設(shè)置網(wǎng)絡(luò)參數(shù),就可以不使用DHCP,,TFTP服務(wù)為Bootloader客戶端提供文件下載功能,把內(nèi)核映像和其他文件放在/tftpboot目錄下。這樣Bootloader可以通過簡單的TFTP協(xié)議遠程下載內(nèi)核映像到內(nèi)存。大部分引導(dǎo)程序都能夠支持網(wǎng)絡(luò)啟動方式。例如,BIOS的.PXE(Preboot Execution.Environment)功能就是網(wǎng)絡(luò)啟動方式;U—Boot也支持網(wǎng)絡(luò)啟動功能。

編輯推薦

《ARM體系結(jié)構(gòu)與編程》適合作為計算機、軟件工程、電氣自動化及電子信息工程等大專生、本科生或研究生課程的教材。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    ARM體系結(jié)構(gòu)與編程 PDF格式下載


用戶評論 (總計1條)

 
 

  •   這本書 著重點在編程方面 而不是 ARM體系結(jié)構(gòu) ,而且書本內(nèi)容很少 不能作為參考手冊使用 只能當(dāng)為基本的引導(dǎo)書籍 不值這個價錢
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7