第2章ARM微處理器基礎(chǔ)PPT課件_第1頁
第2章ARM微處理器基礎(chǔ)PPT課件_第2頁
第2章ARM微處理器基礎(chǔ)PPT課件_第3頁
第2章ARM微處理器基礎(chǔ)PPT課件_第4頁
第2章ARM微處理器基礎(chǔ)PPT課件_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1第第2章章 ARM微處理器基礎(chǔ)微處理器基礎(chǔ) 2教學(xué)目的 掌握嵌入式系統(tǒng)的基本概念掌握嵌入式系統(tǒng)的基本概念 掌握掌握ARM技術(shù)的發(fā)展過程技術(shù)的發(fā)展過程 掌握掌握ARM微處理器的基本結(jié)構(gòu)微處理器的基本結(jié)構(gòu)3教學(xué)內(nèi)容v2.1 嵌入式系統(tǒng)概述嵌入式系統(tǒng)概述 v2.2 ARM概述概述 v2.3 ARM內(nèi)核的特點內(nèi)核的特點 v2.4 基于基于ARM核的微處理器核的微處理器 v2.5 ARM寄存器寄存器 v2.6 ARM的存儲系統(tǒng)簡介的存儲系統(tǒng)簡介 42.1 嵌入式系統(tǒng)概述 2.1.1 嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的基本概念 2.1.2 嵌入式系統(tǒng)的發(fā)展嵌入式系統(tǒng)的發(fā)展 2.1.3 嵌入式系統(tǒng)的組成結(jié)構(gòu)

2、嵌入式系統(tǒng)的組成結(jié)構(gòu) 2.1.4 嵌入式處理器嵌入式處理器 2.1.5 典型嵌入式處理器介紹典型嵌入式處理器介紹 52.1.1 嵌入式系統(tǒng)的基本概念 根據(jù)根據(jù)IEEE的定義,嵌入式系統(tǒng)是的定義,嵌入式系統(tǒng)是“控制、控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置監(jiān)視或者輔助操作機器和設(shè)備的裝置”(原文為(原文為devices used to control, monitor, or assist the operation of equipment, machinery or plants)。這主要是從應(yīng)用上)。這主要是從應(yīng)用上加以定義的,從中可以看出嵌入式系統(tǒng)是軟件和加以定義的,從中可以看出嵌入式系統(tǒng)

3、是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。硬件的綜合體,還可以涵蓋機械等附屬裝置。 6 不過上述定義并不能充分體現(xiàn)出嵌入式系統(tǒng)不過上述定義并不能充分體現(xiàn)出嵌入式系統(tǒng)的精髓,目前國內(nèi)一個普遍被認(rèn)同的定義是:以的精髓,目前國內(nèi)一個普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。 7 嵌入式系統(tǒng)是面向用戶、面向產(chǎn)品、面向應(yīng)用嵌入式系統(tǒng)是面向用戶、面向產(chǎn)品、面向應(yīng)用的,的, 嵌入式系統(tǒng)是將

4、先進的計算機技術(shù)、半導(dǎo)體技嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)和各個行業(yè)的具體應(yīng)用相結(jié)合后術(shù)、電子技術(shù)和各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,的產(chǎn)物, 嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對軟硬件進行裁嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對軟硬件進行裁剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。積等要求。 8嵌入式系統(tǒng)的幾個重要特征: 系統(tǒng)內(nèi)核小系統(tǒng)內(nèi)核小 專用性強專用性強 系統(tǒng)精簡系統(tǒng)精簡 高實時性的系統(tǒng)軟件高實時性的系統(tǒng)軟件 多任務(wù)的操作系統(tǒng)多任務(wù)的操作系統(tǒng) 需要專用的開發(fā)工具和環(huán)境。需要專用的開發(fā)工具和環(huán)境。 92.1.2 嵌入式系統(tǒng)的發(fā)展 第一階段

5、是以單芯片為核心的可編程控制器形第一階段是以單芯片為核心的可編程控制器形式的系統(tǒng)式的系統(tǒng); 第二階段是以嵌入式第二階段是以嵌入式CPUCPU為基礎(chǔ)、以簡單操作為基礎(chǔ)、以簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)系統(tǒng)為核心的嵌入式系統(tǒng); 第三階段是以嵌入式操作系統(tǒng)為標(biāo)志的嵌入式第三階段是以嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)系統(tǒng); 第四階段是以第四階段是以InternetInternet為標(biāo)志的嵌入式系統(tǒng)為標(biāo)志的嵌入式系統(tǒng) 。10發(fā)展趨勢 系統(tǒng)化系統(tǒng)化 網(wǎng)絡(luò)化網(wǎng)絡(luò)化 低成本低成本 人機界面友好人機界面友好 112.1.3 嵌入式系統(tǒng)的組成結(jié)構(gòu) 嵌入式系統(tǒng)是軟件硬件結(jié)合緊密的系統(tǒng),一嵌入式系統(tǒng)是軟件硬件結(jié)合緊密的

6、系統(tǒng),一般而言,嵌入式系統(tǒng)的構(gòu)架可以分成四個部分:般而言,嵌入式系統(tǒng)的構(gòu)架可以分成四個部分:處理器、存儲器、輸入輸出(處理器、存儲器、輸入輸出(I/O)和軟件,)和軟件, 1213硬件 硬件架構(gòu)如圖硬件架構(gòu)如圖2-1下半部分所示,是以嵌入式處理器下半部分所示,是以嵌入式處理器為中心,由存儲器、為中心,由存儲器、I/O設(shè)備、通信模塊以及電源等必要設(shè)備、通信模塊以及電源等必要輔助接口組成。嵌入式系統(tǒng)不同于普通計算機組成,是量輔助接口組成。嵌入式系統(tǒng)不同于普通計算機組成,是量身定做的專用計算機應(yīng)用系統(tǒng),在實際應(yīng)用中的嵌入式系身定做的專用計算機應(yīng)用系統(tǒng),在實際應(yīng)用中的嵌入式系統(tǒng)硬件配置非常精簡,除了微

7、處理器和基本的處圍電路以統(tǒng)硬件配置非常精簡,除了微處理器和基本的處圍電路以外,其余的電路都可根據(jù)需求和成本進行裁剪、定制,非外,其余的電路都可根據(jù)需求和成本進行裁剪、定制,非常經(jīng)濟、可靠。常經(jīng)濟、可靠。 嵌入式系統(tǒng)的硬件核心是嵌入式微處理器,有時為了嵌入式系統(tǒng)的硬件核心是嵌入式微處理器,有時為了提高系統(tǒng)的信息處理能力,常外接提高系統(tǒng)的信息處理能力,常外接DSP和和DSP協(xié)處理器協(xié)處理器(也可內(nèi)部集成),以完成高性能信號處理。(也可內(nèi)部集成),以完成高性能信號處理。14軟件 1. 設(shè)備驅(qū)動層設(shè)備驅(qū)動層 設(shè)備驅(qū)動層是嵌入式系統(tǒng)中必不可少的重要設(shè)備驅(qū)動層是嵌入式系統(tǒng)中必不可少的重要部分,使用任何外部

8、設(shè)備都需要有相應(yīng)驅(qū)動程序部分,使用任何外部設(shè)備都需要有相應(yīng)驅(qū)動程序的支持,它為上層軟件提供了設(shè)備的操作接口。的支持,它為上層軟件提供了設(shè)備的操作接口。上層軟件不用理會設(shè)備的具體內(nèi)部操作,只需調(diào)上層軟件不用理會設(shè)備的具體內(nèi)部操作,只需調(diào)用驅(qū)動層程序提供的接口即可。驅(qū)動層一般包括用驅(qū)動層程序提供的接口即可。驅(qū)動層一般包括硬件抽象層硬件抽象層HAL、板級支持包、板級支持包BSP和設(shè)備驅(qū)動程和設(shè)備驅(qū)動程序。序。15 2. 實時操作系統(tǒng)實時操作系統(tǒng)RTOS 對于使用操作系統(tǒng)的嵌入式系統(tǒng)而言,操作對于使用操作系統(tǒng)的嵌入式系統(tǒng)而言,操作系統(tǒng)一般以內(nèi)核映像的形式下載到目標(biāo)系統(tǒng)中。系統(tǒng)一般以內(nèi)核映像的形式下載到

9、目標(biāo)系統(tǒng)中。n C/OS-IIn VxWorksn Windows CEn Linux(CLinux)16 3. 操作系統(tǒng)的應(yīng)用程序接口操作系統(tǒng)的應(yīng)用程序接口API API(Application Programming Interface應(yīng)用程序接口應(yīng)用程序接口),是一系列復(fù)雜的函,是一系列復(fù)雜的函數(shù)、消息和結(jié)構(gòu)的集合體。嵌入式操作系統(tǒng)下的數(shù)、消息和結(jié)構(gòu)的集合體。嵌入式操作系統(tǒng)下的API和一般操作系統(tǒng)下的和一般操作系統(tǒng)下的API在功能、含義及知在功能、含義及知識體系上完全一致。識體系上完全一致。 17 4.應(yīng)用程序應(yīng)用程序 實際的嵌入式系統(tǒng)應(yīng)用軟件建立在系統(tǒng)的主實際的嵌入式系統(tǒng)應(yīng)用軟件建立在

10、系統(tǒng)的主任務(wù)任務(wù)(Main Task)基礎(chǔ)之上。用戶應(yīng)用程序主基礎(chǔ)之上。用戶應(yīng)用程序主要通過調(diào)用系統(tǒng)的要通過調(diào)用系統(tǒng)的API函數(shù)對系統(tǒng)進行操作,完函數(shù)對系統(tǒng)進行操作,完成用戶應(yīng)用功能開發(fā)。在用戶的應(yīng)用程序中,也成用戶應(yīng)用功能開發(fā)。在用戶的應(yīng)用程序中,也可創(chuàng)建用戶自己的任務(wù)。任務(wù)之間的協(xié)調(diào)主要依可創(chuàng)建用戶自己的任務(wù)。任務(wù)之間的協(xié)調(diào)主要依賴于系統(tǒng)的消息隊列賴于系統(tǒng)的消息隊列 182.1.4 嵌入式處理器 各式各樣的嵌入式處理器是嵌入式系統(tǒng)硬件中最核心各式各樣的嵌入式處理器是嵌入式系統(tǒng)硬件中最核心的部分,而目前世界上具有嵌入式功能特點的處理器已經(jīng)的部分,而目前世界上具有嵌入式功能特點的處理器已經(jīng)超過

11、超過1000種,流行體系結(jié)構(gòu)包括種,流行體系結(jié)構(gòu)包括MCU,MPU等等30多多個系列。鑒于嵌入式系統(tǒng)廣闊的發(fā)展前景,很多半導(dǎo)體制個系列。鑒于嵌入式系統(tǒng)廣闊的發(fā)展前景,很多半導(dǎo)體制造商都大規(guī)模生產(chǎn)嵌入式處理器,并且公司自主設(shè)計處理造商都大規(guī)模生產(chǎn)嵌入式處理器,并且公司自主設(shè)計處理器也已經(jīng)成為了未來嵌入式領(lǐng)域的一大趨勢,其中從單片器也已經(jīng)成為了未來嵌入式領(lǐng)域的一大趨勢,其中從單片機、機、DSP到到FPGA有著各式各樣的品種,速度越來越快,有著各式各樣的品種,速度越來越快,性能越來越強,價格也越來越低。性能越來越強,價格也越來越低。 19202.1.5 典型嵌入式處理器介紹 1. MIPS處理器處理

12、器(Microprocessor without Interlocked Piped Stages,無內(nèi)部互鎖流水機處理器) 2. PowerPC處理器處理器 3. Sparc處理器處理器 4. ARM處理器處理器 212.2 ARM概述 2.2.1 計算機體系結(jié)構(gòu)的分類計算機體系結(jié)構(gòu)的分類 2.2.2 ARM技術(shù)的發(fā)展過程技術(shù)的發(fā)展過程 222.2.1 計算機體系結(jié)構(gòu)的分類 1馮馮.諾依曼體系結(jié)構(gòu)諾依曼體系結(jié)構(gòu) 數(shù)據(jù)和指令都存儲在一個存儲器中的計算機數(shù)據(jù)和指令都存儲在一個存儲器中的計算機稱為馮稱為馮.諾依曼機。這種結(jié)構(gòu)的計算機系統(tǒng)由一個諾依曼機。這種結(jié)構(gòu)的計算機系統(tǒng)由一個中央處理器單元中央處

13、理器單元(CPU)和一個存儲器組成。和一個存儲器組成。 2哈佛體系結(jié)構(gòu)哈佛體系結(jié)構(gòu) 哈佛結(jié)構(gòu)為數(shù)據(jù)和程序提供了各自獨立的存哈佛結(jié)構(gòu)為數(shù)據(jù)和程序提供了各自獨立的存儲器,程序計數(shù)器只指向程序存儲器而不指向數(shù)儲器,程序計數(shù)器只指向程序存儲器而不指向數(shù)據(jù)存儲器,據(jù)存儲器, 231馮.諾依曼體系結(jié)構(gòu)242哈佛體系結(jié)構(gòu)252.2.2 ARM技術(shù)的發(fā)展過程26272.3 ARM內(nèi)核的特點 2.3.1 RISC技術(shù)技術(shù) 2.3.2 流水線技術(shù)流水線技術(shù) 2.3.3 超標(biāo)量技術(shù)超標(biāo)量技術(shù) 282.3.1 RISC技術(shù) RISC結(jié)構(gòu)優(yōu)先選取使用頻率最高的簡單指結(jié)構(gòu)優(yōu)先選取使用頻率最高的簡單指令,避免復(fù)雜指令;將指

14、令長度固定,指令格式令,避免復(fù)雜指令;將指令長度固定,指令格式和尋址方式種類減少;以控制邏輯為主,不用或和尋址方式種類減少;以控制邏輯為主,不用或少用微碼控制等措施來達到上述目的。少用微碼控制等措施來達到上述目的。292.3.2 流水線技術(shù) 基于基于3級(級(ARM7)、)、5級級(ARM9)流水線體系結(jié)構(gòu)的流水線體系結(jié)構(gòu)的ARM處理器核。處理器核。 簡單的簡單的3級流水線如下:級流水線如下: 取指級。取指級完成程序存儲器中指令的讀取,并放取指級。取指級完成程序存儲器中指令的讀取,并放入指令流水線中。入指令流水線中。 譯碼級。對指令進行譯碼,為下一周期準(zhǔn)備數(shù)據(jù)路徑譯碼級。對指令進行譯碼,為下一

15、周期準(zhǔn)備數(shù)據(jù)路徑需要的控制信號。這一級指令需要的控制信號。這一級指令“占有占有”譯碼邏輯,而譯碼邏輯,而不不“占有占有”數(shù)據(jù)路徑。數(shù)據(jù)路徑。 執(zhí)行級。指令執(zhí)行級。指令“占有占有”數(shù)據(jù)路徑,寄存器堆棧被讀取,數(shù)據(jù)路徑,寄存器堆棧被讀取,操作數(shù)在桶式移位器中被移位,操作數(shù)在桶式移位器中被移位,ALU產(chǎn)生相應(yīng)的運算產(chǎn)生相應(yīng)的運算結(jié)果并寫回到目的寄存器中,結(jié)果并寫回到目的寄存器中,ALU結(jié)果根據(jù)指令需求結(jié)果根據(jù)指令需求更改狀態(tài)寄存器的條件位。更改狀態(tài)寄存器的條件位。3031 在在3級流水線的執(zhí)行過程中,當(dāng)通過級流水線的執(zhí)行過程中,當(dāng)通過R15寄存器直接寄存器直接訪問訪問PC時,必須考慮此時流水線執(zhí)行過

16、程的真實情況。時,必須考慮此時流水線執(zhí)行過程的真實情況。程序計數(shù)器程序計數(shù)器R15(PC)總是指向取指的指令,而不是指)總是指向取指的指令,而不是指向正在執(zhí)行的指令或正在譯碼的指令。一般情況下,人們向正在執(zhí)行的指令或正在譯碼的指令。一般情況下,人們總是習(xí)慣把正在執(zhí)行的指令作為參考點,稱為當(dāng)前第總是習(xí)慣把正在執(zhí)行的指令作為參考點,稱為當(dāng)前第1條條指令,因此,指令,因此,PC總是指向第總是指向第3條指令。條指令。 對于對于ARM指令,有:指令,有: PC值當(dāng)前程序執(zhí)行位置值當(dāng)前程序執(zhí)行位置8 對于對于Thumb指令,則有:指令,則有: PC值當(dāng)前程序執(zhí)行位置值當(dāng)前程序執(zhí)行位置4322.3.3 超標(biāo)

17、量技術(shù) 超標(biāo)量技術(shù)就是通過重復(fù)設(shè)置多套指令執(zhí)行超標(biāo)量技術(shù)就是通過重復(fù)設(shè)置多套指令執(zhí)行部件,同時處理并完成多條指令,實現(xiàn)并行操作部件,同時處理并完成多條指令,實現(xiàn)并行操作來達到提高處理速度的目的。來達到提高處理速度的目的。 目前,所有的目前,所有的ARM內(nèi)核,包括流行的內(nèi)核,包括流行的ARM7、ARM9和和ARM11等,都是單周期指令機。等,都是單周期指令機。ARM公司的下一代處理器將是每周期能處理多重公司的下一代處理器將是每周期能處理多重指令的超標(biāo)量機。超標(biāo)量機能在一個時鐘周期內(nèi)指令的超標(biāo)量機。超標(biāo)量機能在一個時鐘周期內(nèi)同時執(zhí)行多條指令,因而同時執(zhí)行多條指令,因而CPU的效率得到大大地的效率得

18、到大大地提高。提高。332.4 基于ARM核的微處理器 2.4.1 基于基于ARM核的硬件結(jié)構(gòu)核的硬件結(jié)構(gòu) 2.4.2 ARM核的數(shù)據(jù)流模型核的數(shù)據(jù)流模型 2.4.3 ARM處理器工作模式和工作狀態(tài)處理器工作模式和工作狀態(tài) 342.4.1基于ARM核的硬件結(jié)構(gòu)35vARM處理器處理器 控制整個器件。有多種版本的控制整個器件。有多種版本的ARM處理器,處理器,以滿足不同的處理特性。一個以滿足不同的處理特性。一個ARM處理器包含了處理器包含了一個內(nèi)核以及一些外圍部件,它們之間由總線連一個內(nèi)核以及一些外圍部件,它們之間由總線連接。這些部件可能包括存儲器管理和接。這些部件可能包括存儲器管理和Cache

19、。 v控制器控制器 協(xié)調(diào)系統(tǒng)的重要功能模塊。兩個最常見的控協(xié)調(diào)系統(tǒng)的重要功能模塊。兩個最常見的控制器是中斷控制器和存儲器控制器。制器是中斷控制器和存儲器控制器。 36v外設(shè)接口部件外設(shè)接口部件 提供芯片與外部的所有輸入提供芯片與外部的所有輸入/輸出功能,器輸出功能,器件之間的一些獨有特性就是靠不同的外設(shè)接口功件之間的一些獨有特性就是靠不同的外設(shè)接口功能來體現(xiàn)的。能來體現(xiàn)的。 v總線總線 用于在器件不同部件之間進行通信。用于在器件不同部件之間進行通信。 37 ARM處理器中廣泛使用的總線結(jié)構(gòu)稱為高級微控制處理器中廣泛使用的總線結(jié)構(gòu)稱為高級微控制總線結(jié)構(gòu)總線結(jié)構(gòu)(AMBA)。最初的。最初的AMBA

20、總線包含總線包含ARM系統(tǒng)總系統(tǒng)總線線(ASB)和和ARM外設(shè)總線外設(shè)總線(APB)。之后又提出一種稱為。之后又提出一種稱為ARM高性能總線高性能總線(AHB)。 圖圖2-6所示的器件中有所示的器件中有3條總線條總線:一條一條AHB總線連接總線連接高性能的片內(nèi)外設(shè)接口;一條高性能的片內(nèi)外設(shè)接口;一條APB總線連接較慢的片內(nèi)總線連接較慢的片內(nèi)外設(shè)接口;第外設(shè)接口;第3條總線用于連接片外外設(shè),這條外部總線條總線用于連接片外外設(shè),這條外部總線需要一個特殊的橋,用于和需要一個特殊的橋,用于和AHB總線連接??偩€連接。 382.4.2 ARM核的數(shù)據(jù)流模型 數(shù)據(jù)通過數(shù)據(jù)總線進入處理器核,這里所指的數(shù)據(jù)數(shù)

21、據(jù)通過數(shù)據(jù)總線進入處理器核,這里所指的數(shù)據(jù)可能是一條要執(zhí)行的指令或一個數(shù)據(jù)項。指令譯碼器在指可能是一條要執(zhí)行的指令或一個數(shù)據(jù)項。指令譯碼器在指令執(zhí)行前先將它們翻譯。每一條可執(zhí)行指令都屬于一個特令執(zhí)行前先將它們翻譯。每一條可執(zhí)行指令都屬于一個特定的指令集。與所有的定的指令集。與所有的RISC處理器一樣,處理器一樣,ARM處理器處理器采用采用Loadstore體系結(jié)構(gòu)。這就意味著它只有兩種類體系結(jié)構(gòu)。這就意味著它只有兩種類型的指令用于把數(shù)據(jù)移入型的指令用于把數(shù)據(jù)移入/移出處理器:移出處理器:load指令從存儲指令從存儲器復(fù)制數(shù)據(jù)到內(nèi)核的寄存器;反過來,器復(fù)制數(shù)據(jù)到內(nèi)核的寄存器;反過來,store指

22、令從寄存指令從寄存器里復(fù)制數(shù)據(jù)到存儲器。沒有直接操作存儲器的數(shù)據(jù)處理器里復(fù)制數(shù)據(jù)到存儲器。沒有直接操作存儲器的數(shù)據(jù)處理指令,因此數(shù)據(jù)處理只能在寄存器里進行。由于指令,因此數(shù)據(jù)處理只能在寄存器里進行。由于ARM內(nèi)內(nèi)核是核是32位處理器,大部分指令認(rèn)為寄存器中保存的是位處理器,大部分指令認(rèn)為寄存器中保存的是32位有符號或無符號數(shù)。當(dāng)從存儲器讀取數(shù)據(jù)至一個寄存器位有符號或無符號數(shù)。當(dāng)從存儲器讀取數(shù)據(jù)至一個寄存器時,符號擴展硬件會把時,符號擴展硬件會把8位和位和16位的有符號數(shù)轉(zhuǎn)換成位的有符號數(shù)轉(zhuǎn)換成32位。位。 39402.4.3 ARM處理器工作模式和工作狀態(tài) 1處理器工作模式處理器工作模式 2處

23、理器工作狀態(tài)處理器工作狀態(tài)411處理器工作模式 ARM微處理器支持微處理器支持7種工作模式,分別為:種工作模式,分別為: 用戶模式(用戶模式(usr):):ARM處理器正常的程序執(zhí)行狀態(tài)處理器正常的程序執(zhí)行狀態(tài) 快速中斷模式(快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理):用于高速數(shù)據(jù)傳輸或通道處理 外部中斷模式(外部中斷模式(irq):用于通用的中斷處理):用于通用的中斷處理 管理模式(管理模式(svc):操作系統(tǒng)使用的保護模式):操作系統(tǒng)使用的保護模式 中止模式中止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時進入該模式,:當(dāng)數(shù)據(jù)或指令預(yù)取終止時進入該模式,用于虛擬存儲及存儲保護。用于虛擬存

24、儲及存儲保護。 未定義指令模式(未定義指令模式(und):當(dāng)未定義的指令執(zhí)行時進入):當(dāng)未定義的指令執(zhí)行時進入該模式,用于支持硬件協(xié)處理器的軟件仿真。該模式,用于支持硬件協(xié)處理器的軟件仿真。 系統(tǒng)模式(系統(tǒng)模式(sys):運行具有特權(quán)的操作系統(tǒng)任務(wù)。):運行具有特權(quán)的操作系統(tǒng)任務(wù)。422處理器工作狀態(tài) 自從自從ARM7TDMI核產(chǎn)生后,體系結(jié)構(gòu)中具有核產(chǎn)生后,體系結(jié)構(gòu)中具有T變種變種的的ARM處理器核可工作在兩種狀態(tài),并可在兩種狀態(tài)之處理器核可工作在兩種狀態(tài),并可在兩種狀態(tài)之間切換:間切換: ARM狀態(tài)狀態(tài):ARM微處理器執(zhí)行微處理器執(zhí)行32位的位的ARM指令集。指令集。 Thumb狀態(tài):狀態(tài)

25、:ARM微處理器執(zhí)行微處理器執(zhí)行16位的位的Thumb指令指令集集 432.5 ARM寄存器2.5.1 通用寄存器通用寄存器 2.5.2 狀態(tài)寄存器狀態(tài)寄存器 2.5.3 Thumb寄存器寄存器 ARM微處理器共有微處理器共有37個個32位寄存器:位寄存器:31個通用寄個通用寄存器和存器和6個狀態(tài)寄存器。個狀態(tài)寄存器。 這些寄存器不能同時訪問,最多可有這些寄存器不能同時訪問,最多可有18個活動寄存?zhèn)€活動寄存器:器:16個數(shù)據(jù)寄存器和個數(shù)據(jù)寄存器和2個狀態(tài)寄存器;具體使用哪些個狀態(tài)寄存器;具體使用哪些寄存器取決于微處理器的工作狀態(tài)和具體的工作模式,寄存器取決于微處理器的工作狀態(tài)和具體的工作模式,

26、可編程訪問??删幊淘L問。442.5.1 通用寄存器 未分組寄存器未分組寄存器 分組寄存器分組寄存器 程序計數(shù)器程序計數(shù)器451.未分組寄存器 未分組寄存器包括未分組寄存器包括R0R7,在所有工作模,在所有工作模式下,未分組寄存器都指向同一個物理寄存器,式下,未分組寄存器都指向同一個物理寄存器,他們未被系統(tǒng)用作特殊的用途,因此,在中斷或他們未被系統(tǒng)用作特殊的用途,因此,在中斷或異常處理進行工作模式轉(zhuǎn)換時,由于不同的處理異常處理進行工作模式轉(zhuǎn)換時,由于不同的處理器工作模式均使用相同的物理寄存器,可能會造器工作模式均使用相同的物理寄存器,可能會造成寄存器中數(shù)據(jù)的破壞,這一點在進行程序設(shè)計成寄存器中數(shù)

27、據(jù)的破壞,這一點在進行程序設(shè)計時應(yīng)引起注意。時應(yīng)引起注意。 462.分組寄存器 分組寄存器包括分組寄存器包括R8R14,對于分組寄存,對于分組寄存器,他們每一次所訪問的物理寄存器與處理器當(dāng)器,他們每一次所訪問的物理寄存器與處理器當(dāng)前的工作模式有關(guān)。如圖前的工作模式有關(guān)。如圖2-9所示。對于所示。對于R8R12來說,每個寄存器對應(yīng)兩個不同的物理寄存來說,每個寄存器對應(yīng)兩個不同的物理寄存器,當(dāng)使用器,當(dāng)使用fiq模式時,訪問寄存器模式時,訪問寄存器R8_fiqR12_fiq;當(dāng)使用除;當(dāng)使用除fiq模式以外的其它模式時,模式以外的其它模式時,訪問寄存器訪問寄存器R8R12。 472.分組寄存器 R

28、13、R14每個寄存器對應(yīng)每個寄存器對應(yīng)6個不同的物理個不同的物理寄存器,其中一個是用戶模式和系統(tǒng)模式共用,寄存器,其中一個是用戶模式和系統(tǒng)模式共用,另另5個對應(yīng)其他個對應(yīng)其他5中不同的工作模式,用以下記號中不同的工作模式,用以下記號區(qū)分:區(qū)分: R13_ R14_ R13常用作堆棧指針。常用作堆棧指針。 R14也稱為程序連接寄存器也稱為程序連接寄存器LR,執(zhí)行,執(zhí)行BL子子程序調(diào)用指令時,程序調(diào)用指令時,R14得到得到R15(程序計數(shù)器(程序計數(shù)器PC)的備份,其他情況下作通用寄存器。)的備份,其他情況下作通用寄存器。483.程序計數(shù)器 寄存器寄存器R15用作程序計數(shù)器(用作程序計數(shù)器(PC

29、)。用于)。用于控制程序中指令的執(zhí)行順序。正常運行時,控制程序中指令的執(zhí)行順序。正常運行時,PC指指向向CPU運行的下一條指令。每次取指后運行的下一條指令。每次取指后PC的值的值會自動修改以指向下一條指令,從而保證了指令會自動修改以指向下一條指令,從而保證了指令按一定的順序執(zhí)行。當(dāng)程序的執(zhí)行順序發(fā)生改變按一定的順序執(zhí)行。當(dāng)程序的執(zhí)行順序發(fā)生改變(如轉(zhuǎn)移如轉(zhuǎn)移)時,需要修改時,需要修改PC的值。的值。 R15雖然也可用作通用寄存器,但一般不這雖然也可用作通用寄存器,但一般不這么使用,因為對么使用,因為對R15的使用有一些特殊的限制,的使用有一些特殊的限制,當(dāng)違反了這些限制時,程序的執(zhí)行結(jié)果是未知

30、的。當(dāng)違反了這些限制時,程序的執(zhí)行結(jié)果是未知的。49502.5.2 狀態(tài)寄存器 ARM體系結(jié)構(gòu)包含一個當(dāng)前程序狀態(tài)寄存器體系結(jié)構(gòu)包含一個當(dāng)前程序狀態(tài)寄存器CPSR (R16)和五個備份的程序狀態(tài)寄存器和五個備份的程序狀態(tài)寄存器(SPSRs)。)。 CPSR可在任何工作模式下被訪問,用來保可在任何工作模式下被訪問,用來保存存ALU中的當(dāng)前操作信息、控制允許和禁止中斷、中的當(dāng)前操作信息、控制允許和禁止中斷、設(shè)置處理器的工作模式等。設(shè)置處理器的工作模式等。 備份的程序狀態(tài)寄存器用來進行異常處理。備份的程序狀態(tài)寄存器用來進行異常處理。51521.條件碼標(biāo)志532.控制位 (1)中斷禁止位)中斷禁止位

31、中斷禁止位包括中斷禁止位包括I、F,用來禁止或允許,用來禁止或允許IRQ和和FIQ兩類中斷:兩類中斷: I=1時,表示禁止時,表示禁止IRQ中斷,中斷, I=0時,表示允許時,表示允許IRQ中斷;中斷; F=1時,表示禁止時,表示禁止FIQ中斷,中斷, F=0時,表示允許時,表示允許FIQ中斷。中斷。54 (2)T標(biāo)志位標(biāo)志位 T標(biāo)志位用來標(biāo)識標(biāo)志位用來標(biāo)識/設(shè)置處理器的工作狀態(tài)。設(shè)置處理器的工作狀態(tài)。對于對于ARM體系結(jié)構(gòu)體系結(jié)構(gòu)v4及以上的版本的及以上的版本的T系列處理系列處理器,當(dāng)該位為器,當(dāng)該位為1時,程序運行于時,程序運行于Thumb狀態(tài);狀態(tài);當(dāng)該位為當(dāng)該位為0時,表示運行于時,表

32、示運行于ARM狀態(tài)。狀態(tài)。ARM指指令集和令集和Thumb指令集均有切換處理器狀態(tài)的指指令集均有切換處理器狀態(tài)的指令。這些指令通過修改令。這些指令通過修改T位的值為位的值為1或或0來實現(xiàn)在來實現(xiàn)在兩種工作狀態(tài)之間切換,但兩種工作狀態(tài)之間切換,但ARM微處理器在開始微處理器在開始執(zhí)行代碼時,應(yīng)該處于執(zhí)行代碼時,應(yīng)該處于ARM狀態(tài)。狀態(tài)。55 (3)工作模式位)工作模式位 工作模式位(工作模式位(M4:0)用來標(biāo)識或設(shè)置處)用來標(biāo)識或設(shè)置處理器的工作模式。理器的工作模式。M4 、M3 、M2、M1、M0決定了處理器的工作模式。決定了處理器的工作模式。 56573.保留位 CPSR中的其余位為保留位

33、,當(dāng)改變中的其余位為保留位,當(dāng)改變CPSR中的條件碼標(biāo)志位或者控制位時,保留位不要被中的條件碼標(biāo)志位或者控制位時,保留位不要被改變,在程序中也不要使用保留位來存儲數(shù)據(jù)。改變,在程序中也不要使用保留位來存儲數(shù)據(jù)。保留位將用于保留位將用于ARM版本的擴展。版本的擴展。 58備份的程序狀態(tài)寄存器SPSR 每一種工作模式下又都有一個專用的物理狀每一種工作模式下又都有一個專用的物理狀態(tài)寄存器,稱為態(tài)寄存器,稱為SPSR(Saved Program Status Register,),當(dāng)異常發(fā)生時,),當(dāng)異常發(fā)生時,SPSR用于保存用于保存CPSR的當(dāng)前值,從異常退出時則可由的當(dāng)前值,從異常退出時則可由S

34、PSR來恢復(fù)來恢復(fù)CPSR。由于用戶模式和系統(tǒng)模式。由于用戶模式和系統(tǒng)模式不屬于異常模式,他們沒有不屬于異常模式,他們沒有SPSR,當(dāng)在這兩種,當(dāng)在這兩種模式下訪問模式下訪問SPSR,結(jié)果是未知的。,結(jié)果是未知的。CPSR和和SPSR通過特殊指令進行訪問,這些指令將在第通過特殊指令進行訪問,這些指令將在第3章介紹章介紹 59v【例例2.1】假設(shè)某一刻,寄存器假設(shè)某一刻,寄存器CPSR的值如圖的值如圖2-11所示,試說明處理器的條件標(biāo)志、中斷允所示,試說明處理器的條件標(biāo)志、中斷允許情況、工作狀態(tài)以及工作模式。許情況、工作狀態(tài)以及工作模式。60v 分析:分析: CPSR的的bit3127表示條件標(biāo)

35、志表示條件標(biāo)志NZCVQ,其值,其值分別為分別為00100,為了便于閱讀常常用字母表示其值,如,為了便于閱讀常常用字母表示其值,如圖中所示:某一位為圖中所示:某一位為0則用小寫字母表示,某一位為則用小寫字母表示,某一位為1,則用大寫字母表示,則上述條件標(biāo)志可表示為則用大寫字母表示,則上述條件標(biāo)志可表示為:nzCvq,即即C標(biāo)志位置位為標(biāo)志位置位為1,其它標(biāo)志位為,其它標(biāo)志位為0,每一位的具體含義,每一位的具體含義可參考表可參考表2-2。因為。因為bit76為為iF,所以,所以IRQ中斷被使中斷被使能,即允許能,即允許CPU響應(yīng)響應(yīng)IRQ中斷,中斷,F(xiàn)IQ中斷被禁止。因為中斷被禁止。因為bit5

36、為為t,所以處理器工作在,所以處理器工作在ARM狀態(tài)。因為狀態(tài)。因為Bit40為為10011,由表,由表2-3可知系統(tǒng)工作于管理模式可知系統(tǒng)工作于管理模式(SVC) 612.5.3 Thumb寄存器 Thumb狀態(tài)下的寄存器集是狀態(tài)下的寄存器集是ARM狀態(tài)下寄狀態(tài)下寄存器集的一個子集,程序可以直接訪問存器集的一個子集,程序可以直接訪問8個通用個通用寄存器(寄存器(R7R0)、程序計數(shù)器()、程序計數(shù)器(PC)、堆棧)、堆棧指針(指針(SP)、連接寄存器()、連接寄存器(LR)和)和CPSR。同。同時,在每一種特權(quán)模式下都有一組時,在每一種特權(quán)模式下都有一組SP、LR和和SPSR。 6263v

37、Thumb狀態(tài)下的寄存器組織與狀態(tài)下的寄存器組織與ARM狀態(tài)下的寄存器組狀態(tài)下的寄存器組織的關(guān)系:織的關(guān)系:nThumb狀態(tài)下和狀態(tài)下和ARM狀態(tài)下的狀態(tài)下的R0R7是相同的。是相同的。nThumb狀態(tài)下和狀態(tài)下和ARM狀態(tài)下的狀態(tài)下的CPSR和所有的和所有的SPSR是相同的。是相同的。nThumb狀態(tài)下的狀態(tài)下的SP對應(yīng)于對應(yīng)于ARM狀態(tài)下的狀態(tài)下的R13。nThumb狀態(tài)下的狀態(tài)下的LR對應(yīng)于對應(yīng)于ARM狀態(tài)下的狀態(tài)下的R14。nThumb狀態(tài)下的程序計數(shù)器對應(yīng)于狀態(tài)下的程序計數(shù)器對應(yīng)于ARM狀態(tài)下狀態(tài)下R15。64652.6 ARM的存儲系統(tǒng)簡介 2.6.1 存儲器的層次結(jié)構(gòu)存儲器的層次

38、結(jié)構(gòu) 2.6.2 數(shù)據(jù)類型與存儲器格式數(shù)據(jù)類型與存儲器格式 2.6.3 非對齊的存儲器訪問非對齊的存儲器訪問 66v 按照存取方式不同,半導(dǎo)體存儲器可以分為隨機存取存儲按照存取方式不同,半導(dǎo)體存儲器可以分為隨機存取存儲器器RAM(Ramdom Access Memory)和只讀存儲)和只讀存儲器器ROM(Read Only Memory)兩大類。)兩大類。 RAM可分為可分為SRAM(靜態(tài)隨機存儲器靜態(tài)隨機存儲器)、DRAM(動態(tài)隨動態(tài)隨機存儲器機存儲器)、DDRAM(雙倍速率隨機存儲器雙倍速率隨機存儲器)。 ROM可分為掩膜可分為掩膜ROM、PROM、EPROM、EEPROM、Flash M

39、emory(閃速存儲器閃速存儲器),其中其中Flash Memory又可又可分為分為NOR Flash、NAND Flash,前者主要用來存放代,前者主要用來存放代碼,后者主要用來存放數(shù)據(jù)。碼,后者主要用來存放數(shù)據(jù)。67682.6.1 存儲器的層次結(jié)構(gòu) 隨著隨著CPU速度的不斷提高和軟件規(guī)模的不斷速度的不斷提高和軟件規(guī)模的不斷擴大,人們當(dāng)然希望存儲器能同時滿足速度快、擴大,人們當(dāng)然希望存儲器能同時滿足速度快、容量大、價格低的要求。但實際上這一點很難辦容量大、價格低的要求。但實際上這一點很難辦到,解決這一問題的較好方法是設(shè)計一個快慢搭到,解決這一問題的較好方法是設(shè)計一個快慢搭配、具有層次結(jié)構(gòu)的存

40、儲系統(tǒng)。配、具有層次結(jié)構(gòu)的存儲系統(tǒng)。 6970v 基于基于ARM的嵌入式系統(tǒng)中用到的各種存儲器芯片和存放的嵌入式系統(tǒng)中用到的各種存儲器芯片和存放的數(shù)據(jù)如下:的數(shù)據(jù)如下: ROM芯片:因為它里面的數(shù)據(jù)是在生產(chǎn)時就固定的,芯片:因為它里面的數(shù)據(jù)是在生產(chǎn)時就固定的,不可再次編程來改變,故而不可再次編程來改變,故而ROM常應(yīng)用于不需要更新常應(yīng)用于不需要更新和修改內(nèi)容的大宗產(chǎn)品,也有許多設(shè)備使用和修改內(nèi)容的大宗產(chǎn)品,也有許多設(shè)備使用ROM來存來存放啟動代碼。放啟動代碼。 Flash芯片:既可以讀又可以寫,但是它的速度較慢,芯片:既可以讀又可以寫,但是它的速度較慢,因此不適合存放動態(tài)數(shù)據(jù)。它主要用于存放斷

41、電后需因此不適合存放動態(tài)數(shù)據(jù)。它主要用于存放斷電后需要長期保存的數(shù)據(jù),對要長期保存的數(shù)據(jù),對Flash 的擦除和改寫是完全由的擦除和改寫是完全由軟件實現(xiàn)的,不需要任何額外硬件電路,這樣降低了軟件實現(xiàn)的,不需要任何額外硬件電路,這樣降低了制造成本。制造成本。Flash芯片已經(jīng)成為當(dāng)前最流行的只讀存儲芯片已經(jīng)成為當(dāng)前最流行的只讀存儲器,可選擇器,可選擇Flash芯片用于滿足對存儲器的大容量需求芯片用于滿足對存儲器的大容量需求或用于構(gòu)建輔助存儲器?;蛴糜跇?gòu)建輔助存儲器。71 DRAM芯片:動態(tài)隨機訪問存儲器是設(shè)備中最常用的芯片:動態(tài)隨機訪問存儲器是設(shè)備中最常用的RAM。和其它。和其它RAM相比,它每

42、兆字節(jié)的價格最低。不相比,它每兆字節(jié)的價格最低。不過過DRAM需要動態(tài)地刷新,因此在使用需要動態(tài)地刷新,因此在使用DRAM前要先前要先設(shè)置好設(shè)置好DRAM控制器??刂破鳌?SRAM芯片:靜態(tài)隨機訪問存儲器比傳統(tǒng)的芯片:靜態(tài)隨機訪問存儲器比傳統(tǒng)的DRAM要要快,但它需要更大的硅片面積???,但它需要更大的硅片面積。SRAM是靜態(tài)的,所是靜態(tài)的,所以不需要刷新,其存取時間比以不需要刷新,其存取時間比DRAM要短得多。但是要短得多。但是價格高,因此通常用于容量小,速度快的情況,如高價格高,因此通常用于容量小,速度快的情況,如高速存儲器和速存儲器和Cache。 SDRAM芯片:同步動態(tài)隨機訪問存儲器是眾

43、多的芯片:同步動態(tài)隨機訪問存儲器是眾多的DRAM中的一種,它能夠工作在比普通存儲器更高的中的一種,它能夠工作在比普通存儲器更高的時鐘頻率下。因為時鐘頻率下。因為SDRAM使用時鐘,所以它和處理器使用時鐘,所以它和處理器總線是同步的。數(shù)據(jù)從存儲器中被流水化地取出,最總線是同步的。數(shù)據(jù)從存儲器中被流水化地取出,最后突發(fā)后突發(fā)(Burst)地傳輸?shù)娇偩€,因而傳輸效率高。地傳輸?shù)娇偩€,因而傳輸效率高。722.6.2 數(shù)據(jù)類型與存儲器格式 1.地址空間地址空間 ARM體系結(jié)構(gòu)將存儲器看作是從零地址開始的字節(jié)體系結(jié)構(gòu)將存儲器看作是從零地址開始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置第一個存儲的字?jǐn)?shù)據(jù),的線性

44、組合。從零字節(jié)到三字節(jié)放置第一個存儲的字?jǐn)?shù)據(jù),從第四個字節(jié)到第七個字節(jié)放置第二個存儲的字?jǐn)?shù)據(jù),依從第四個字節(jié)到第七個字節(jié)放置第二個存儲的字?jǐn)?shù)據(jù),依次排列。作為次排列。作為32位的微處理器,位的微處理器,ARM體系結(jié)構(gòu)所支持的體系結(jié)構(gòu)所支持的最大尋址空間為最大尋址空間為4GB(232字節(jié))。可以將該地址空間看字節(jié))??梢詫⒃摰刂房臻g看作大小為作大小為232個個8位字節(jié),這些字節(jié)的單元地址是一個無位字節(jié),這些字節(jié)的單元地址是一個無符號的符號的32位數(shù)值,其取值范圍為位數(shù)值,其取值范圍為0232-1。ARM地址地址空間也可以看作是空間也可以看作是230個個32位的字單元。這些字單元的地位的字單元。這

45、些字單元的地址可以被址可以被4整除,也就是說該地址低兩位為整除,也就是說該地址低兩位為00。地址為。地址為A的字?jǐn)?shù)據(jù)包括地址為的字?jǐn)?shù)據(jù)包括地址為A、A+1、A+3、A+3四個字節(jié)單四個字節(jié)單元的內(nèi)容。程序正常執(zhí)行時,每執(zhí)行一條元的內(nèi)容。程序正常執(zhí)行時,每執(zhí)行一條ARM指令,當(dāng)指令,當(dāng)前指令計數(shù)器加前指令計數(shù)器加4個字節(jié);每執(zhí)行一條個字節(jié);每執(zhí)行一條Thumb指令,當(dāng)指令,當(dāng)前指令計數(shù)器加前指令計數(shù)器加2個字節(jié)。但是,當(dāng)?shù)刂飞习l(fā)生溢出時,個字節(jié)。但是,當(dāng)?shù)刂飞习l(fā)生溢出時,執(zhí)行結(jié)果將是不可預(yù)知的。執(zhí)行結(jié)果將是不可預(yù)知的。73 2.數(shù)據(jù)類型數(shù)據(jù)類型 ARM微處理器的指令長度可以是微處理器的指令長度可以是32位(在位(在ARM狀狀態(tài)下),也可以為態(tài)下),也可以為16位(在位(在Thumb狀態(tài)下)。狀態(tài)下)。ARM微微處理器中支持字節(jié)(處理器中支持字節(jié)(8位)、半字(位)、半字(16位)、字(位)、字(32位)位)三種數(shù)據(jù)類型,其中,字需要三種數(shù)據(jù)類型,其中,字需要4字節(jié)對齊(地址的低兩位字節(jié)對齊(地址的低兩位為為0)、半字需要)、半字需要2字節(jié)對齊(地址的最低位為字節(jié)對齊(地址的最低位為0)。)。74 3.存儲格式存儲格式 ARM體系結(jié)構(gòu)可以用兩種方法存儲字?jǐn)?shù)據(jù),稱之為體系結(jié)構(gòu)可以用兩種方法存儲字?jǐn)?shù)據(jù),稱之為大端格式和小端格式。大端格式和小端格式。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論