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

下載本文檔

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

文檔簡介

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

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

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

4、于RISC技術(shù)的處理器技術(shù)的處理器還吸收了其他體系結(jié)構(gòu)的特點。還吸收了其他體系結(jié)構(gòu)的特點。ARM是基于是基于RISC技術(shù)的,但是在技術(shù)的,但是在RISC技術(shù)的基礎(chǔ)上又吸技術(shù)的基礎(chǔ)上又吸收了其他體系結(jié)構(gòu)的優(yōu)點,并且根據(jù)實際情況研究設(shè)計。收了其他體系結(jié)構(gòu)的優(yōu)點,并且根據(jù)實際情況研究設(shè)計。ARM體系結(jié)構(gòu)從體系結(jié)構(gòu)從Berkerley RISC體系結(jié)構(gòu)發(fā)展而來,從商業(yè)角度出體系結(jié)構(gòu)發(fā)展而來,從商業(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處理器屬于處理器屬于精簡指令集處理器,指令數(shù)量不多,本節(jié)介紹精簡指令集處理器,指令數(shù)量不多,本節(jié)介紹ARM指令集指令集。1ARM指令集特點指令集特點2指令的后綴指令的后綴13.2 13.2 編程模型編程模型建造房子需要房模,同樣的,編程象建造房子,不同建造房子需要房模,同樣的,編程象建造房子,不同的房子需要不同的模型,編程也需要編程模型,可

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

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

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

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

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

11、為三類:,可以分為三類:1未分組寄存器未分組寄存器R0R72分組寄存器分組寄存器R8R143程序計數(shù)器程序計數(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 可在任何可在任何運行模式下被訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前運行模式下被訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。每一種運行模式下又都有一個專用的物理狀態(tài)寄

12、存器每一種運行模式下又都有一個專用的物理狀態(tài)寄存器,稱為,稱為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器)。備份的程序狀態(tài)寄存器)。SPSR寄存器在處理器進入某種寄存器在處理器進入某種異常模式的時候保存之前的異常模式的時候保存之前的CPSR寄存器值,用于異常處理寄存器值,用于異常處理后恢復(fù)后恢復(fù)CPSR狀態(tài)。用戶模式和系統(tǒng)模式不屬于異常模式,狀態(tài)。用戶模式和系統(tǒng)模式不屬于異常模式,因此沒有因此沒有SPSR寄存器。寄存器。13.2.6 13.2.6 異常處理異常處理在在ARM9體系機構(gòu)中,提供了體系機構(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)存是計算機系統(tǒng)的重要資源,是程序運行時存儲的內(nèi)存是計算機系統(tǒng)的重要資源,是程序運行時存儲的區(qū)域,區(qū)域,ARM9微處理器提供了內(nèi)存控制器,提供了虛擬地址微處理器提供了內(nèi)存控制器,提供了虛擬地址到物理地址映射,存儲器訪問權(quán)限控制,以及高速緩存支持到物理地址映射,存儲器訪問權(quán)

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

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

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

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

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

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

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

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

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

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

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

25、之間的接口可能不同,但是功能都是大同小異的。本節(jié)通過三星的是大同小異的。本節(jié)通過三星的S3C2440A處理器講解處理器講解ARM微處理器常見的接口和控制器。微處理器常見的接口和控制器。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)簡單的外部設(shè)備或者電路,這些設(shè)備有的需要控制許多結(jié)構(gòu)簡單的外部設(shè)備或者電路,這些設(shè)備有的需要通過要通過CPU控制,有的需要控制,有的需要CPU提供輸入信

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

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

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

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

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

溫馨提示

  • 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

提交評論