第13章ARM體系結(jié)構(gòu)及開(kāi)發(fā)實(shí)例_第1頁(yè)
第13章ARM體系結(jié)構(gòu)及開(kāi)發(fā)實(shí)例_第2頁(yè)
第13章ARM體系結(jié)構(gòu)及開(kāi)發(fā)實(shí)例_第3頁(yè)
第13章ARM體系結(jié)構(gòu)及開(kāi)發(fā)實(shí)例_第4頁(yè)
第13章ARM體系結(jié)構(gòu)及開(kāi)發(fā)實(shí)例_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第1313章章 ARMARM體系結(jié)構(gòu)及開(kāi)發(fā)實(shí)例體系結(jié)構(gòu)及開(kāi)發(fā)實(shí)例學(xué)習(xí)一個(gè)處理器的編程和使用,最主要的是了解處理學(xué)習(xí)一個(gè)處理器的編程和使用,最主要的是了解處理器的體系結(jié)構(gòu),需要了解的部分通常包括處理器的編程模型器的體系結(jié)構(gòu),需要了解的部分通常包括處理器的編程模型、指令結(jié)構(gòu)、內(nèi)存管理等。本書第、指令結(jié)構(gòu)、內(nèi)存管理等。本書第3章簡(jiǎn)要介紹了章簡(jiǎn)要介紹了ARM處理處理器,本章詳細(xì)講解目前應(yīng)用最廣泛的器,本章詳細(xì)講解目前應(yīng)用最廣泛的ARM9體系結(jié)構(gòu),這部體系結(jié)構(gòu),這部分知識(shí)比較抽象,偏重于理論,在本章最后給出了基于三星分知識(shí)比較抽象,偏重于理論,在本章最后給出了基于三星S3C2440A的的ARM9處理器

2、編程實(shí)例,幫助讀者理解。主要處理器編程實(shí)例,幫助讀者理解。主要內(nèi)容如下:內(nèi)容如下:ARM體系結(jié)構(gòu)介紹體系結(jié)構(gòu)介紹ARM體系結(jié)構(gòu)的編程模型體系結(jié)構(gòu)的編程模型ARM體系結(jié)構(gòu)內(nèi)存管理體系結(jié)構(gòu)內(nèi)存管理S3C2440A常見(jiàn)的接口和控制器常見(jiàn)的接口和控制器S3C2440A處理器接口編程實(shí)例處理器接口編程實(shí)例13.1 ARM13.1 ARM體系結(jié)構(gòu)介紹體系結(jié)構(gòu)介紹ARM處理器是從商業(yè)角度出發(fā)設(shè)計(jì)的處理器是從商業(yè)角度出發(fā)設(shè)計(jì)的RISC微處理器。微處理器。ARM處理器繼承了處理器繼承了RISC體系結(jié)構(gòu),但是充分考慮到了實(shí)際體系結(jié)構(gòu),但是充分考慮到了實(shí)際應(yīng)用。應(yīng)用。ARM設(shè)計(jì)主要關(guān)心設(shè)計(jì)的簡(jiǎn)單性,體現(xiàn)著硬件的組設(shè)

3、計(jì)主要關(guān)心設(shè)計(jì)的簡(jiǎn)單性,體現(xiàn)著硬件的組織和實(shí)現(xiàn)以及簡(jiǎn)潔的指令集。此外,織和實(shí)現(xiàn)以及簡(jiǎn)潔的指令集。此外,ARM體系結(jié)構(gòu)還引進(jìn)體系結(jié)構(gòu)還引進(jìn)了了CISC體系結(jié)構(gòu)的一些優(yōu)點(diǎn),因此獲得較小的處理器功耗體系結(jié)構(gòu)的一些優(yōu)點(diǎn),因此獲得較小的處理器功耗和較小的芯片面積。和較小的芯片面積。13.1.1 ARM13.1.1 ARM體系結(jié)構(gòu)體系結(jié)構(gòu)在開(kāi)發(fā)在開(kāi)發(fā)ARM芯片的時(shí)候,當(dāng)時(shí)已經(jīng)有許多機(jī)器都提出并使芯片的時(shí)候,當(dāng)時(shí)已經(jīng)有許多機(jī)器都提出并使用了用了RISC技術(shù)。基于技術(shù)?;赗ISC技術(shù)的處理器有很多,但是只有少技術(shù)的處理器有很多,但是只有少數(shù)的處理器完全使用數(shù)的處理器完全使用RISC技術(shù),許多基于技術(shù),許多基

4、于RISC技術(shù)的處理器技術(shù)的處理器還吸收了其他體系結(jié)構(gòu)的特點(diǎn)。還吸收了其他體系結(jié)構(gòu)的特點(diǎn)。ARM是基于是基于RISC技術(shù)的,但是在技術(shù)的,但是在RISC技術(shù)的基礎(chǔ)上又吸技術(shù)的基礎(chǔ)上又吸收了其他體系結(jié)構(gòu)的優(yōu)點(diǎn),并且根據(jù)實(shí)際情況研究設(shè)計(jì)。收了其他體系結(jié)構(gòu)的優(yōu)點(diǎn),并且根據(jù)實(shí)際情況研究設(shè)計(jì)。ARM體系結(jié)構(gòu)從體系結(jié)構(gòu)從Berkerley RISC體系結(jié)構(gòu)發(fā)展而來(lái),從商業(yè)角度出體系結(jié)構(gòu)發(fā)展而來(lái),從商業(yè)角度出發(fā),優(yōu)化整合了一些處理器特征。發(fā),優(yōu)化整合了一些處理器特征。ARM采用的結(jié)構(gòu)特征包括:采用的結(jié)構(gòu)特征包括:Load/Store體系結(jié)構(gòu)體系結(jié)構(gòu)固定的固定的32位指令位指令3地址指令格式地址指令格式ARM

5、體系結(jié)構(gòu)放棄的特征如下:體系結(jié)構(gòu)放棄的特征如下:1寄存器窗口寄存器窗口2延遲轉(zhuǎn)移延遲轉(zhuǎn)移3所有指令單周期執(zhí)行所有指令單周期執(zhí)行 13.1.2 ARM13.1.2 ARM指令集介紹指令集介紹每種處理器都包含了自己的指令集,每種處理器都包含了自己的指令集,ARM處理器屬于處理器屬于精簡(jiǎn)指令集處理器,指令數(shù)量不多,本節(jié)介紹精簡(jiǎn)指令集處理器,指令數(shù)量不多,本節(jié)介紹ARM指令集指令集。1ARM指令集特點(diǎn)指令集特點(diǎn)2指令的后綴指令的后綴13.2 13.2 編程模型編程模型建造房子需要房模,同樣的,編程象建造房子,不同建造房子需要房模,同樣的,編程象建造房子,不同的房子需要不同的模型,編程也需要編程模型,可

6、以簡(jiǎn)單的的房子需要不同的模型,編程也需要編程模型,可以簡(jiǎn)單的理解編程模型就是一個(gè)模板,是一種解決問(wèn)題的通用規(guī)則,理解編程模型就是一個(gè)模板,是一種解決問(wèn)題的通用規(guī)則,有了編程模型,在遇到類似問(wèn)題的時(shí)候就有了解決問(wèn)題的方有了編程模型,在遇到類似問(wèn)題的時(shí)候就有了解決問(wèn)題的方法。每個(gè)處理器體現(xiàn)結(jié)構(gòu)都有自己的編程模型,法。每個(gè)處理器體現(xiàn)結(jié)構(gòu)都有自己的編程模型,ARM9也提也提供了一組編程模型,本節(jié)介紹其中的重點(diǎn)部分。供了一組編程模型,本節(jié)介紹其中的重點(diǎn)部分。13.2.1 13.2.1 數(shù)據(jù)類型數(shù)據(jù)類型ARM9微處理器支持三種數(shù)據(jù)類型,字節(jié)(微處理器支持三種數(shù)據(jù)類型,字節(jié)(8位);半位);半字(字(16位

7、);字(位);字(32位)。其中,半字需要位)。其中,半字需要2字節(jié)對(duì)齊,字字節(jié)對(duì)齊,字需要需要4字節(jié)對(duì)齊。字節(jié)對(duì)齊的含義就是,在內(nèi)存中存放數(shù)據(jù)字節(jié)對(duì)齊。字節(jié)對(duì)齊的含義就是,在內(nèi)存中存放數(shù)據(jù)的地址必須是某個(gè)數(shù)的倍數(shù),以的地址必須是某個(gè)數(shù)的倍數(shù),以ARM9微處理器為例,半字微處理器為例,半字需要需要2字節(jié)對(duì)齊,在內(nèi)存中,如果存放一個(gè)字節(jié)對(duì)齊,在內(nèi)存中,如果存放一個(gè)16字節(jié)的數(shù)據(jù),字節(jié)的數(shù)據(jù),這個(gè)存放地址必須是這個(gè)存放地址必須是2的倍數(shù)。同樣的,的倍數(shù)。同樣的,4字節(jié)對(duì)齊要求存放字節(jié)對(duì)齊要求存放數(shù)據(jù)的地址必須是數(shù)據(jù)的地址必須是4的倍數(shù)。的倍數(shù)。字節(jié)對(duì)齊是微處理器的硬性要求,主要是為了處理器字節(jié)對(duì)齊

8、是微處理器的硬性要求,主要是為了處理器的尋址方便,字節(jié)對(duì)齊是由加載器自動(dòng)設(shè)置的,無(wú)需人為干的尋址方便,字節(jié)對(duì)齊是由加載器自動(dòng)設(shè)置的,無(wú)需人為干預(yù),但是程序員應(yīng)當(dāng)注意,在自定義數(shù)據(jù)結(jié)構(gòu)的時(shí)候,盡量預(yù),但是程序員應(yīng)當(dāng)注意,在自定義數(shù)據(jù)結(jié)構(gòu)的時(shí)候,盡量保持?jǐn)?shù)據(jù)結(jié)構(gòu)是保持?jǐn)?shù)據(jù)結(jié)構(gòu)是2字節(jié)或字節(jié)或4字節(jié)對(duì)齊的,否則加載器可能會(huì)把字節(jié)對(duì)齊的,否則加載器可能會(huì)把數(shù)據(jù)結(jié)構(gòu)表示的數(shù)據(jù)自動(dòng)加載到字節(jié)對(duì)齊的內(nèi)存位置,這時(shí)數(shù)據(jù)結(jié)構(gòu)表示的數(shù)據(jù)自動(dòng)加載到字節(jié)對(duì)齊的內(nèi)存位置,這時(shí)如果程序不是很嚴(yán)謹(jǐn),會(huì)導(dǎo)致直接訪問(wèn)數(shù)據(jù)出錯(cuò)的問(wèn)題。如果程序不是很嚴(yán)謹(jǐn),會(huì)導(dǎo)致直接訪問(wèn)數(shù)據(jù)出錯(cuò)的問(wèn)題。13.2.2 13.2.2 處理器模式處理器模

9、式ARM處理器提供了處理器提供了7種工作模式,工作模式名稱及含義種工作模式,工作模式名稱及含義如下:如下:用戶模式(用戶模式(user):):快速中斷模式(快速中斷模式(fiq):):外部中斷模式(外部中斷模式(irq):):特權(quán)模式(特權(quán)模式(sve):):數(shù)據(jù)訪問(wèn)終止模式(數(shù)據(jù)訪問(wèn)終止模式(abt):):未定義指令終止模式(未定義指令終止模式(und):):系統(tǒng)模式(系統(tǒng)模式(sys):):13.2.3 13.2.3 寄存器寄存器ARM處理器有處理器有31個(gè)通用寄存器和個(gè)通用寄存器和6個(gè)狀態(tài)寄存器,共個(gè)狀態(tài)寄存器,共37個(gè)寄存器。個(gè)寄存器。37個(gè)寄存器按照處理器模式進(jìn)行劃分,有些個(gè)寄存器按

10、照處理器模式進(jìn)行劃分,有些寄存器被限定只能在特定模式下訪問(wèn),有些寄存器可以在任寄存器被限定只能在特定模式下訪問(wèn),有些寄存器可以在任何處理器模式下訪問(wèn)。其中,通用寄存器何處理器模式下訪問(wèn)。其中,通用寄存器R0R14、程序計(jì)、程序計(jì)數(shù)器數(shù)器PC以及特定的兩個(gè)狀態(tài)寄存器在任何處理器模式下都以及特定的兩個(gè)狀態(tài)寄存器在任何處理器模式下都可以訪問(wèn)??梢栽L問(wèn)。ARM處理器的處理器的37個(gè)寄存器按照功能被分成兩個(gè)大類如個(gè)寄存器按照功能被分成兩個(gè)大類如下:下:通用寄存器。通用寄存器。狀態(tài)寄存器。狀態(tài)寄存器。13.2.4 13.2.4 通用寄存器通用寄存器ARM9的通用寄存器包括的通用寄存器包括R0R15,可以分

11、為三類:,可以分為三類:1未分組寄存器未分組寄存器R0R72分組寄存器分組寄存器R8R143程序計(jì)數(shù)器程序計(jì)數(shù)器PC(R15)13.2.5 13.2.5 程序狀態(tài)寄存器程序狀態(tài)寄存器寄存器寄存器R16用作用作CPSR(Current Program Status Register,當(dāng)前程序狀態(tài)寄存器)。,當(dāng)前程序狀態(tài)寄存器)。CPSR 可在任何可在任何運(yùn)行模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前運(yùn)行模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。每一種運(yùn)行模式下又都有一個(gè)專用的物理狀態(tài)寄

12、存器每一種運(yùn)行模式下又都有一個(gè)專用的物理狀態(tài)寄存器,稱為,稱為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器)。備份的程序狀態(tài)寄存器)。SPSR寄存器在處理器進(jìn)入某種寄存器在處理器進(jìn)入某種異常模式的時(shí)候保存之前的異常模式的時(shí)候保存之前的CPSR寄存器值,用于異常處理寄存器值,用于異常處理后恢復(fù)后恢復(fù)CPSR狀態(tài)。用戶模式和系統(tǒng)模式不屬于異常模式,狀態(tài)。用戶模式和系統(tǒng)模式不屬于異常模式,因此沒(méi)有因此沒(méi)有SPSR寄存器。寄存器。13.2.6 13.2.6 異常處理異常處理在在ARM9體系機(jī)構(gòu)中,提供了體系機(jī)構(gòu)中,提供了5種異常處理的模式:種異常處理的模式

13、:1FIQ(Fast Interrupt Request)2IRQ(Interrupt Request)3ABORT(中止)(中止)4Software Interruupt(軟件中斷軟件中斷)5Undefined Instruction(未定義指令未定義指令)13.2.7 13.2.7 內(nèi)存和內(nèi)存內(nèi)存和內(nèi)存I/OI/O映射映射內(nèi)存是計(jì)算機(jī)系統(tǒng)的重要資源,是程序運(yùn)行時(shí)存儲(chǔ)的內(nèi)存是計(jì)算機(jī)系統(tǒng)的重要資源,是程序運(yùn)行時(shí)存儲(chǔ)的區(qū)域,區(qū)域,ARM9微處理器提供了內(nèi)存控制器,提供了虛擬地址微處理器提供了內(nèi)存控制器,提供了虛擬地址到物理地址映射,存儲(chǔ)器訪問(wèn)權(quán)限控制,以及高速緩存支持到物理地址映射,存儲(chǔ)器訪問(wèn)權(quán)

14、限控制,以及高速緩存支持。內(nèi)存控制器通常也稱為。內(nèi)存控制器通常也稱為MMU(Memory Management Unit)內(nèi)存管理單元。)內(nèi)存管理單元。Cache通過(guò)預(yù)測(cè)通過(guò)預(yù)測(cè)CPU即將要訪問(wèn)的內(nèi)存地址(一般都即將要訪問(wèn)的內(nèi)存地址(一般都是順序的),預(yù)先讀取大塊內(nèi)存供是順序的),預(yù)先讀取大塊內(nèi)存供CPU訪問(wèn),來(lái)減少后續(xù)的訪問(wèn),來(lái)減少后續(xù)的內(nèi)存總線上的讀寫操作,以提高速度。然而,如果程序中長(zhǎng)內(nèi)存總線上的讀寫操作,以提高速度。然而,如果程序中長(zhǎng)跳轉(zhuǎn)的次數(shù)很多,跳轉(zhuǎn)的次數(shù)很多,Cache的命中率就會(huì)顯著降低,隨之而來(lái)的命中率就會(huì)顯著降低,隨之而來(lái),大量的替換操作發(fā)生,于是,過(guò)多的內(nèi)存操作反而降低了

15、,大量的替換操作發(fā)生,于是,過(guò)多的內(nèi)存操作反而降低了程序的性能。程序的性能。13.3 13.3 內(nèi)存管理單元內(nèi)存管理單元許多嵌入式微處理器都由于沒(méi)有許多嵌入式微處理器都由于沒(méi)有 MMU而不支持虛擬內(nèi)而不支持虛擬內(nèi)存。沒(méi)有內(nèi)存管理單元所帶來(lái)的好處是簡(jiǎn)化了芯片設(shè)計(jì),降存。沒(méi)有內(nèi)存管理單元所帶來(lái)的好處是簡(jiǎn)化了芯片設(shè)計(jì),降低了產(chǎn)品成本。多數(shù)嵌入式設(shè)備外部存儲(chǔ)設(shè)備和內(nèi)存空間都低了產(chǎn)品成本。多數(shù)嵌入式設(shè)備外部存儲(chǔ)設(shè)備和內(nèi)存空間都十分有限,所以無(wú)需復(fù)雜的內(nèi)存管理機(jī)制。沒(méi)有十分有限,所以無(wú)需復(fù)雜的內(nèi)存管理機(jī)制。沒(méi)有 MMU 的管的管理,操作系統(tǒng)對(duì)內(nèi)存空間是沒(méi)有保護(hù)的,操作系統(tǒng)和應(yīng)用程理,操作系統(tǒng)對(duì)內(nèi)存空間是沒(méi)

16、有保護(hù)的,操作系統(tǒng)和應(yīng)用程序訪問(wèn)的都是真實(shí)的內(nèi)存物理地址。序訪問(wèn)的都是真實(shí)的內(nèi)存物理地址。13.3.1 13.3.1 內(nèi)存管理介紹內(nèi)存管理介紹虛擬存儲(chǔ)器(虛擬存儲(chǔ)器(Virtual Memory)的思想是允許程序占用)的思想是允許程序占用的空間超過(guò)內(nèi)存大小,把程序劃分為大小固定的頁(yè),由操縱的空間超過(guò)內(nèi)存大小,把程序劃分為大小固定的頁(yè),由操縱系統(tǒng)根據(jù)程序運(yùn)行的位置把正在執(zhí)行的頁(yè)面調(diào)入內(nèi)存,其他系統(tǒng)根據(jù)程序運(yùn)行的位置把正在執(zhí)行的頁(yè)面調(diào)入內(nèi)存,其他未使用的頁(yè)面則保留在磁盤。如一個(gè)系統(tǒng)有未使用的頁(yè)面則保留在磁盤。如一個(gè)系統(tǒng)有16M字節(jié)的內(nèi)存字節(jié)的內(nèi)存需要運(yùn)行需要運(yùn)行32M自己大小的程序,通過(guò)虛擬存儲(chǔ)技

17、術(shù),操作系自己大小的程序,通過(guò)虛擬存儲(chǔ)技術(shù),操作系統(tǒng)把程序中需要執(zhí)行的程序段裝入內(nèi)存,程序其他部分存放統(tǒng)把程序中需要執(zhí)行的程序段裝入內(nèi)存,程序其他部分存放在磁盤。當(dāng)程序運(yùn)行超出裝入在內(nèi)存的部分后,操作系統(tǒng)自在磁盤。當(dāng)程序運(yùn)行超出裝入在內(nèi)存的部分后,操作系統(tǒng)自動(dòng)從磁盤加載需要的部分。動(dòng)從磁盤加載需要的部分。虛擬存儲(chǔ)技術(shù)中,操作系統(tǒng)通過(guò)內(nèi)存頁(yè)面管理內(nèi)存空間虛擬存儲(chǔ)技術(shù)中,操作系統(tǒng)通過(guò)內(nèi)存頁(yè)面管理內(nèi)存空間。在一個(gè)操作系統(tǒng)中內(nèi)存頁(yè)面的大小是固定的。程序被劃分。在一個(gè)操作系統(tǒng)中內(nèi)存頁(yè)面的大小是固定的。程序被劃分成與內(nèi)存頁(yè)面大小相同的若干塊,便于操作系統(tǒng)加載程序到成與內(nèi)存頁(yè)面大小相同的若干塊,便于操作系統(tǒng)

18、加載程序到內(nèi)存。操作系統(tǒng)根據(jù)內(nèi)存配置決定一次可以加載多少程序頁(yè)內(nèi)存。操作系統(tǒng)根據(jù)內(nèi)存配置決定一次可以加載多少程序頁(yè)面到內(nèi)存。在一個(gè)實(shí)際的系統(tǒng)中,虛擬存儲(chǔ)通常是由硬件(面到內(nèi)存。在一個(gè)實(shí)際的系統(tǒng)中,虛擬存儲(chǔ)通常是由硬件(內(nèi)存管理單元內(nèi)存管理單元MMU)和操作系統(tǒng)配合完成的。)和操作系統(tǒng)配合完成的。13.3.2 13.3.2 內(nèi)存訪問(wèn)順序內(nèi)存訪問(wèn)順序計(jì)算機(jī)可以訪問(wèn)的地址是有限制的,通常稱作有效地址計(jì)算機(jī)可以訪問(wèn)的地址是有限制的,通常稱作有效地址范圍。地址范圍的大小與計(jì)算機(jī)總線寬度有直接關(guān)系,如范圍。地址范圍的大小與計(jì)算機(jī)總線寬度有直接關(guān)系,如32位總線可以訪問(wèn)的地址范圍是位總線可以訪問(wèn)的地址范圍是

19、0 x00 xFFFFFFFF(4G)空)空間。程序可以訪問(wèn)的地址空間與總線支持的地址空間相同,間。程序可以訪問(wèn)的地址空間與總線支持的地址空間相同,但是在實(shí)際系統(tǒng)中,地址空間所有的地址都是有效的。通常但是在實(shí)際系統(tǒng)中,地址空間所有的地址都是有效的。通常把程序能訪問(wèn)的地址空間稱作虛擬地址空間。把程序能訪問(wèn)的地址空間稱作虛擬地址空間。在計(jì)算機(jī)系統(tǒng)上,受到內(nèi)存空間大小的限制,實(shí)際的地在計(jì)算機(jī)系統(tǒng)上,受到內(nèi)存空間大小的限制,實(shí)際的地址空間遠(yuǎn)小于虛擬地址空間??稍L問(wèn)的物理內(nèi)存空間稱作物址空間遠(yuǎn)小于虛擬地址空間??稍L問(wèn)的物理內(nèi)存空間稱作物理地址空間。程序訪問(wèn)的虛擬地址空間的地址需要轉(zhuǎn)換為物理地址空間。程序

20、訪問(wèn)的虛擬地址空間的地址需要轉(zhuǎn)換為物理地址空間的地址才能訪問(wèn)。理地址空間的地址才能訪問(wèn)。在沒(méi)有使用虛擬存儲(chǔ)技術(shù)以前,程序訪問(wèn)的空間就是物在沒(méi)有使用虛擬存儲(chǔ)技術(shù)以前,程序訪問(wèn)的空間就是物理地址空間,訪問(wèn)地址無(wú)需轉(zhuǎn)換。使用虛擬存儲(chǔ)技術(shù)后,程理地址空間,訪問(wèn)地址無(wú)需轉(zhuǎn)換。使用虛擬存儲(chǔ)技術(shù)后,程序訪問(wèn)虛擬地址空間的地址需要經(jīng)過(guò)內(nèi)存管理單元的地址轉(zhuǎn)序訪問(wèn)虛擬地址空間的地址需要經(jīng)過(guò)內(nèi)存管理單元的地址轉(zhuǎn)換機(jī)制變換后,得到對(duì)應(yīng)的物理地址才能訪問(wèn)。而轉(zhuǎn)換的過(guò)換機(jī)制變換后,得到對(duì)應(yīng)的物理地址才能訪問(wèn)。而轉(zhuǎn)換的過(guò)程對(duì)用戶來(lái)說(shuō)是不可見(jiàn)的。程對(duì)用戶來(lái)說(shuō)是不可見(jiàn)的。13.3.3 13.3.3 地址翻譯過(guò)程地址翻譯過(guò)程一臺(tái)

21、使用一臺(tái)使用16位地址位寬的計(jì)算機(jī)可以訪問(wèn)的地址范圍位地址位寬的計(jì)算機(jī)可以訪問(wèn)的地址范圍是是0 x00000 xFFFF,共有,共有64K可地址,稱作地址空間大小可地址,稱作地址空間大小是是64K。地址空間表示一個(gè)機(jī)器可以訪問(wèn)的實(shí)際物理內(nèi)存大。地址空間表示一個(gè)機(jī)器可以訪問(wèn)的實(shí)際物理內(nèi)存大小。小。使用虛擬存儲(chǔ)的計(jì)算機(jī)系統(tǒng)可以提供超過(guò)內(nèi)存地址空使用虛擬存儲(chǔ)的計(jì)算機(jī)系統(tǒng)可以提供超過(guò)內(nèi)存地址空間大小的虛擬內(nèi)存空間。如在間大小的虛擬內(nèi)存空間。如在64K地址空間的計(jì)算機(jī)上可以地址空間的計(jì)算機(jī)上可以提供提供1M字節(jié)大小的虛擬地址空間。提供超過(guò)實(shí)際地址空間字節(jié)大小的虛擬地址空間。提供超過(guò)實(shí)際地址空間的虛擬空間

22、后,計(jì)算機(jī)系統(tǒng)需要通過(guò)地址轉(zhuǎn)換才能保證程序的虛擬空間后,計(jì)算機(jī)系統(tǒng)需要通過(guò)地址轉(zhuǎn)換才能保證程序正確運(yùn)行。正確運(yùn)行。13.3.4 13.3.4 訪問(wèn)權(quán)限訪問(wèn)權(quán)限現(xiàn)代的多用戶多進(jìn)程操作系統(tǒng),需要現(xiàn)代的多用戶多進(jìn)程操作系統(tǒng),需要MMU才能達(dá)到每才能達(dá)到每個(gè)用戶進(jìn)程都擁有自己的獨(dú)立的地址空間的目標(biāo)。使用個(gè)用戶進(jìn)程都擁有自己的獨(dú)立的地址空間的目標(biāo)。使用MMU,OS劃分出一段地址區(qū)域,在這塊地址區(qū)域中,每個(gè)劃分出一段地址區(qū)域,在這塊地址區(qū)域中,每個(gè)進(jìn)程看到的內(nèi)容都不一定一樣。例如進(jìn)程看到的內(nèi)容都不一定一樣。例如MICROSOFT WINDOWS操作系統(tǒng),地址操作系統(tǒng),地址4M-2G處劃分為用戶地址空間。處

23、劃分為用戶地址空間。進(jìn)程進(jìn)程A在地址在地址0 x400000映射了可執(zhí)行文件。進(jìn)程映射了可執(zhí)行文件。進(jìn)程B同樣在地同樣在地址址0X400000映射了可執(zhí)行文件。如果映射了可執(zhí)行文件。如果A進(jìn)程讀地址進(jìn)程讀地址0X400000讀到的是讀到的是A的可執(zhí)行文件映射到的可執(zhí)行文件映射到RAM的內(nèi)容。而的內(nèi)容。而進(jìn)程進(jìn)程B讀取地址讀取地址0X400000時(shí)則讀到的是時(shí)則讀到的是B的可執(zhí)行文件映射的可執(zhí)行文件映射到到RAM的內(nèi)容。這個(gè)時(shí)候就需要訪問(wèn)權(quán)限機(jī)制來(lái)處理不同的內(nèi)容。這個(gè)時(shí)候就需要訪問(wèn)權(quán)限機(jī)制來(lái)處理不同進(jìn)程訪問(wèn)同一地址內(nèi)存的問(wèn)題。進(jìn)程訪問(wèn)同一地址內(nèi)存的問(wèn)題。在在ARM體系結(jié)構(gòu)上使用體系結(jié)構(gòu)上使用En

24、try表來(lái)控制內(nèi)存訪問(wèn),在進(jìn)表來(lái)控制內(nèi)存訪問(wèn),在進(jìn)行虛擬地址和實(shí)際地址映射的時(shí)候,通過(guò)查內(nèi)存表映射到不行虛擬地址和實(shí)際地址映射的時(shí)候,通過(guò)查內(nèi)存表映射到不同的物理內(nèi)存地址上。同的物理內(nèi)存地址上。13.4 13.4 常見(jiàn)接口和控制器常見(jiàn)接口和控制器本章本章14節(jié)介紹了節(jié)介紹了ARM的體系結(jié)構(gòu),由于的體系結(jié)構(gòu),由于ARM是一種是一種體系結(jié)構(gòu)的規(guī)范,在實(shí)際的應(yīng)用中,廠家在設(shè)計(jì)基于體系結(jié)構(gòu)的規(guī)范,在實(shí)際的應(yīng)用中,廠家在設(shè)計(jì)基于ARM的微控制器時(shí)候都是采用的微控制器時(shí)候都是采用ARM的內(nèi)核,在外面還根據(jù)需要的內(nèi)核,在外面還根據(jù)需要擴(kuò)展一些接口,不同廠家之間的接口可能不同,但是功能都擴(kuò)展一些接口,不同廠家

25、之間的接口可能不同,但是功能都是大同小異的。本節(jié)通過(guò)三星的是大同小異的。本節(jié)通過(guò)三星的S3C2440A處理器講解處理器講解ARM微處理器常見(jiàn)的接口和控制器。微處理器常見(jiàn)的接口和控制器。13.4.1 GPIO13.4.1 GPIO接口接口GPIO的英文全稱是的英文全稱是General-Purpose Input / Output Ports,中文意思是通用,中文意思是通用I/O端口。在嵌入式系統(tǒng)中,經(jīng)常需端口。在嵌入式系統(tǒng)中,經(jīng)常需要控制許多結(jié)構(gòu)簡(jiǎn)單的外部設(shè)備或者電路,這些設(shè)備有的需要控制許多結(jié)構(gòu)簡(jiǎn)單的外部設(shè)備或者電路,這些設(shè)備有的需要通過(guò)要通過(guò)CPU控制,有的需要控制,有的需要CPU提供輸入信

26、號(hào)。并且,許提供輸入信號(hào)。并且,許多設(shè)備活電路只只要求有開(kāi)多設(shè)備活電路只只要求有開(kāi)/關(guān)兩種狀態(tài)就夠了,比如關(guān)兩種狀態(tài)就夠了,比如LED的亮和滅。對(duì)這些設(shè)備的控制,使用傳統(tǒng)的串口或者并口就的亮和滅。對(duì)這些設(shè)備的控制,使用傳統(tǒng)的串口或者并口就顯得比較復(fù)雜,所以,在嵌入式微處理器上通常提供了一種顯得比較復(fù)雜,所以,在嵌入式微處理器上通常提供了一種“通用可編程通用可編程I/O端口端口”,也就是,也就是GPIO。一個(gè)一個(gè)GPIO端口至少需要兩個(gè)寄存器,一個(gè)做控制用的端口至少需要兩個(gè)寄存器,一個(gè)做控制用的“通用通用IO端口控制寄存器端口控制寄存器”,還有一個(gè)是存放數(shù)據(jù)的,還有一個(gè)是存放數(shù)據(jù)的“通用通用I/

27、O端口數(shù)據(jù)寄存器端口數(shù)據(jù)寄存器”。數(shù)據(jù)寄存器的每一位是和。數(shù)據(jù)寄存器的每一位是和GPIO的硬的硬件引腳對(duì)應(yīng)的,而數(shù)據(jù)的傳遞方向是通過(guò)控制寄存器設(shè)置的件引腳對(duì)應(yīng)的,而數(shù)據(jù)的傳遞方向是通過(guò)控制寄存器設(shè)置的,通過(guò)控制寄存器可以設(shè)置每一位引腳的數(shù)據(jù)流向。,通過(guò)控制寄存器可以設(shè)置每一位引腳的數(shù)據(jù)流向。13.4.2 13.4.2 中斷控制器中斷控制器ARM9可以識(shí)別兩種類型的中斷:正常中斷請(qǐng)求(可以識(shí)別兩種類型的中斷:正常中斷請(qǐng)求(Normal Interrupt Request,IRQ)和快速中斷請(qǐng)求()和快速中斷請(qǐng)求(Fast Interrupt Request,F(xiàn)IQ),因此,),因此,S3C244

28、0A的所有中斷的所有中斷都可以歸類為都可以歸類為 IRQ 或或 FIQ。S3C2440A的中斷控制器對(duì)每一的中斷控制器對(duì)每一個(gè)中斷源都有一個(gè)中斷懸掛位(個(gè)中斷源都有一個(gè)中斷懸掛位(Interrupt Pending Bit)。)。S3C2440A 用如下四個(gè)寄存器控制中斷的產(chǎn)生和對(duì)中用如下四個(gè)寄存器控制中斷的產(chǎn)生和對(duì)中斷進(jìn)行處理:斷進(jìn)行處理:中斷優(yōu)先級(jí)寄存器(中斷優(yōu)先級(jí)寄存器(Interrupt Priority Register)。)。中斷模式寄存器(中斷模式寄存器(Interrupt Mode Register)。)。中斷懸掛寄存器(中斷懸掛寄存器(Interrupt Pending Re

29、gister)。)。中斷屏蔽寄存器(中斷屏蔽寄存器(Interrupt Mask Register)。)。13.4.3 RTC13.4.3 RTC控制器控制器RTC的全稱是實(shí)時(shí)時(shí)鐘(的全稱是實(shí)時(shí)時(shí)鐘(Real Time Clock),當(dāng)系統(tǒng)),當(dāng)系統(tǒng)斷電的時(shí)候,斷電的時(shí)候,RTC控制器可以使用備份電池操作??刂破骺梢允褂脗浞蓦姵夭僮?。RTC控制控制器可以使用器可以使用STRB/LDRB/指令向指令向CPU發(fā)送發(fā)送8比特位寬的比特位寬的BCD編碼數(shù)據(jù),這些數(shù)據(jù)包括年月日小時(shí),分鐘,秒等時(shí)間數(shù)據(jù)編碼數(shù)據(jù),這些數(shù)據(jù)包括年月日小時(shí),分鐘,秒等時(shí)間數(shù)據(jù)。RTC控制器使用外部控制器使用外部32.768kH

30、z的外部晶振工作,同時(shí)可的外部晶振工作,同時(shí)可以提供鬧鐘功能。以提供鬧鐘功能。S3C2440A微處理器的微處理器的RTC控制器沒(méi)有控制器沒(méi)有2000年問(wèn)題,同時(shí)可以向?qū)崟r(shí)操作系統(tǒng)內(nèi)核提供微妙級(jí)別年問(wèn)題,同時(shí)可以向?qū)崟r(shí)操作系統(tǒng)內(nèi)核提供微妙級(jí)別的時(shí)鐘中斷。的時(shí)鐘中斷。RTC控制器可以使用備份電池驅(qū)動(dòng),通過(guò)控制器可以使用備份電池驅(qū)動(dòng),通過(guò)CPU的的RTCVDD腳提供電源。當(dāng)系統(tǒng)掉電的時(shí)候,腳提供電源。當(dāng)系統(tǒng)掉電的時(shí)候,CPU以及以及RTC控制器被阻塞,只有備份電池驅(qū)動(dòng)晶振和控制器被阻塞,只有備份電池驅(qū)動(dòng)晶振和BCD格式的時(shí)間計(jì)格式的時(shí)間計(jì)數(shù)器工作。數(shù)器工作。RTC控制器可以在掉電或者帶電狀態(tài)下,在指定控制器可以在掉電或者帶電狀態(tài)下,在指定時(shí)間發(fā)出報(bào)警信號(hào)。在帶電情況下,回產(chǎn)生時(shí)間發(fā)出報(bào)警信號(hào)。在帶電情況下,回產(chǎn)生INT_RTC中斷中斷,在掉電模式下,還會(huì)產(chǎn)生,在掉電模式下,還會(huì)產(chǎn)生PMWKUP信號(hào)。信號(hào)。13.4.3 RTC13.4.3 RTC控制器控制器寄存器名稱作用實(shí)時(shí)鐘控制器RTCCON (Real Time Clock Control Register)RTC控制器的主要控制器寄存器,控制是否讀寫時(shí)間值的BCD寄存器TICON(Tick Time Counter)Tick值計(jì)數(shù)器RTC報(bào)警控制器RTCALM(RTC Alarm Control Register)設(shè)置報(bào)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論