ARM處理器編程基礎(chǔ)完整版課件_第1頁(yè)
ARM處理器編程基礎(chǔ)完整版課件_第2頁(yè)
ARM處理器編程基礎(chǔ)完整版課件_第3頁(yè)
ARM處理器編程基礎(chǔ)完整版課件_第4頁(yè)
ARM處理器編程基礎(chǔ)完整版課件_第5頁(yè)
已閱讀5頁(yè),還剩55頁(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)介

嵌入式微控制器編程

EmbeddedMicrocontrollerProgramming艾云峰aiyunfeng@CollegeofComputing&CommunicationEngineering精選嵌入式微控制器編程

EmbeddedMicrocontr精選內(nèi)容大綱一、Arm處理器編程基礎(chǔ)

SOURCE:ARMArchitectureReferenceManual,ChapterA3精選內(nèi)容大綱一、Arm處理器編程基礎(chǔ)精選Arm處理器編程基礎(chǔ)1.數(shù)據(jù)類型2.ARM微處理器的工作狀態(tài)3.ARM處理器工作模式4.寄存器組織5.異常(Exceptions)6.ARM體系結(jié)構(gòu)的存儲(chǔ)器格式精選Arm處理器編程基礎(chǔ)1.數(shù)據(jù)類型精選數(shù)據(jù)類型字(Word)在ARM體系結(jié)構(gòu)中,字的長(zhǎng)度為32位,其它8位/16位處理器體系結(jié)構(gòu)中,字的長(zhǎng)度一般為16位半字(Half-Word)在ARM體系結(jié)構(gòu)中,半字的長(zhǎng)度為16位,與8位/16位處理器體系結(jié)構(gòu)中字的長(zhǎng)度一致字節(jié)(Byte)在ARM體系結(jié)構(gòu)和8位精選數(shù)據(jù)類型字(Word)精選ARM微處理器工作狀態(tài)ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換第一種為ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;第二種為Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令精選ARM微處理器工作狀態(tài)ARM微處理器的工作狀態(tài)一般有兩精選ARM處理器工作模式(1)

ARM有7個(gè)基本工作模式:User:非特權(quán)模式,大部分任務(wù)執(zhí)行在這種模式正常程序執(zhí)行的模式FIQ:當(dāng)一個(gè)高優(yōu)先級(jí)(fast)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式高速數(shù)據(jù)傳輸和通道處理IRQ:當(dāng)一個(gè)低優(yōu)先級(jí)(normal)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式通常的中斷處理Supervisor:當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)將會(huì)進(jìn)入這種模式供操作系統(tǒng)使用的一種保護(hù)模式Abort:

當(dāng)存取異常時(shí)將會(huì)進(jìn)入這種模式虛擬存儲(chǔ)及存儲(chǔ)保護(hù)Undef:

當(dāng)執(zhí)行未定義指令時(shí)會(huì)進(jìn)入這種模式軟件仿真硬件協(xié)處理器System:

使用和User模式相同寄存器集的特權(quán)模式特權(quán)級(jí)的操作系統(tǒng)任務(wù)異常模式(Exception)特權(quán)模式(Privilige)精選ARM處理器工作模式(1)ARM有7個(gè)基本工作模式:精選ARM處理器工作模式(2)處理器工作模式的切換方法通過(guò)軟件控制進(jìn)行切換通過(guò)外部中斷進(jìn)行切換通過(guò)異常處理進(jìn)行切換用戶模式的特點(diǎn)大多數(shù)應(yīng)用程序運(yùn)行在用戶模式下應(yīng)用程序不能訪問(wèn)受操作系統(tǒng)保護(hù)的系統(tǒng)資源不能通過(guò)軟件控制的方式進(jìn)行模式切換可通過(guò)產(chǎn)生異常處理來(lái)切換處理器工作模式精選ARM處理器工作模式(2)處理器工作模式的切換方法精選ARM處理器工作模式(3)異常模式的作用特點(diǎn)當(dāng)應(yīng)用程序發(fā)生異常中斷時(shí),處理器進(jìn)入相應(yīng)的異常模式在每一種異常模式中都有一組寄存器,供相應(yīng)的異常處理程序使用。這樣可以保證進(jìn)入異常模式時(shí),用戶模式下的寄存器(保存了程序運(yùn)行狀態(tài))不被破壞系統(tǒng)模式的特點(diǎn)屬于特權(quán)模式,主要供操作系統(tǒng)的任務(wù)使用,可以直接進(jìn)行處理器切換操作系統(tǒng)任務(wù)需要訪問(wèn)所有系統(tǒng)資源,使用用戶模式下的寄存器而不是異常模式下的寄存器,可保證異常中斷發(fā)生時(shí)任務(wù)狀態(tài)不被破壞精選ARM處理器工作模式(3)異常模式的作用特點(diǎn)精選ARM寄存器組織(1)精選ARM寄存器組織(1)精選ARM寄存器組織(2)ARM有37個(gè)32-Bits長(zhǎng)的寄存器,其中包括:31個(gè)通用寄存器,包括1個(gè)程序計(jì)數(shù)器PC(programcounter)6個(gè)狀態(tài)寄存器,包括1個(gè)用作CPSR(currentprogramstatusregister)5個(gè)用作SPSR(savedprogramstatusregisters)在每一種處理器模式下,有一組相應(yīng)的寄存器組。任意時(shí)刻,可見(jiàn)的寄存器包括:相應(yīng)的r0-r12子集相應(yīng)的r13(thestackpointer,sp)andr14(thelinkregister,lr)相應(yīng)的r15(theprogramcounter,pc)相應(yīng)的CPSR(currentprogramstatusregister,cpsr)特權(quán)模式下(除system模式)還可以存??;相應(yīng)的spsr(savedprogramstatusregister)精選ARM寄存器組織(2)ARM有37個(gè)32-Bits長(zhǎng)的精選通用寄存器通用寄存器包括R0~R15,可以分為三類:未備份寄存器R0~R7;備份寄存器R8~R14程序計(jì)數(shù)器PC(R15)精選通用寄存器通用寄存器包括R0~R15,可以分為三類:精選通用寄存器-未備份寄存器對(duì)于每一個(gè)未備份寄存器來(lái)說(shuō),在所有處理器模式下指的都是同一個(gè)物理寄存器,未備份寄存器沒(méi)有被系統(tǒng)用于特別的用途,任何可采用通用寄存器的應(yīng)用場(chǎng)合都可以使用未備份寄存器精選通用寄存器-未備份寄存器對(duì)于每一個(gè)未備份寄存器來(lái)說(shuō),在所精選通用寄存器–

備份寄存器對(duì)于備份寄存器R8~R12而言,每個(gè)寄存器對(duì)應(yīng)兩個(gè)不同的物理寄存器。在快速中斷模式下使用寄存器R8~R12,和在其它模式下使用這些寄存器時(shí),使用的是不同的物理寄存器。對(duì)于備份寄存器R13和R14而言,每個(gè)寄存器對(duì)應(yīng)6個(gè)不同的物理寄存器,其中一個(gè)是用戶模式和系統(tǒng)模式公用的;另外5個(gè)對(duì)應(yīng)于其它5種處理器模式。精選通用寄存器–備份寄存器對(duì)于備份寄存器R8~R12而言精選通用寄存器–

備份寄存器寄存器R13在ARM指令中常用作堆棧指針。每一種異常模式擁有自己的物理R13,當(dāng)進(jìn)入異常模式時(shí),可以將需要使用的寄存器保存在R13所指的棧中;當(dāng)退出異常模式時(shí),將保存在R13所指的棧中的寄存器彈出,從而使異常處理器程序不會(huì)破壞其中斷程序的運(yùn)行現(xiàn)場(chǎng)。精選通用寄存器–備份寄存器寄存器R13在ARM指令中常用精選通用寄存器–

備份寄存器R14也稱作子程序連接寄存器(SubroutineLinkRegister)或連接寄存器LR,在ARM體系中具有下面兩種特殊的作用:每一種處理器模式自己的物理R14存放當(dāng)前子程序的返回地址。當(dāng)通過(guò)BL或BLX指令調(diào)用子程序時(shí),R14被設(shè)置成該子程序的返回地址。在子程序中,當(dāng)把R14的值復(fù)制到PC時(shí),子程序返回。實(shí)現(xiàn)子程序返回的兩種操作:執(zhí)行下面任何一條指令:MOVPC,LRBXLR當(dāng)異常發(fā)生時(shí),該異常模式特定的物理R14被設(shè)置成該異常模式將要返回的地址。精選通用寄存器–備份寄存器R14也稱作子程序連接寄存器(精選通用寄存器–

程序計(jì)數(shù)器寄存器R15用作程序計(jì)數(shù)器(PC)由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,當(dāng)正確讀取了PC的值時(shí),該值為當(dāng)前指令地址值加8,也即是說(shuō),PC指向當(dāng)前指令的下兩條指令的地址。精選通用寄存器–程序計(jì)數(shù)器寄存器R15用作程序計(jì)數(shù)器(P精選程序狀態(tài)寄存器(1)寄存器R16寄存器R16用作CPSR(CurrentProgramStatusRegister,當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位每一種運(yùn)行模式下又都有一個(gè)專用的物理狀態(tài)寄存器,稱為SPSR(SavedProgramStatusRegister,備份的程序狀態(tài)寄存器),當(dāng)異常發(fā)生時(shí),SPSR用于保存CPSR的當(dāng)前值,從異常退出時(shí)則可由SPSR來(lái)恢復(fù)CPSR精選程序狀態(tài)寄存器(1)寄存器R16精選程序狀態(tài)寄存器(2)精選程序狀態(tài)寄存器(2)精選程序狀態(tài)寄存器(3)精選程序狀態(tài)寄存器(3)精選程序狀態(tài)寄存器(4)-運(yùn)行模式位M[4:0]精選程序狀態(tài)寄存器(4)-運(yùn)行模式位M[4:0]精選異常(Exceptions)Exceptionsaregeneratedbyinternalandexternalsourcestocasusetheprocessortohandleanevent,suchasanexternallygeneratedinterruptorattempttoexecuteanundefinedinstruction.Theprocessorstatejustbeforehandlingtheexceptionmustbepreservedsothattheoriginalprogramcanberesumedwhentheexceptionroutinehascompleted.Morethanoneexceptioncanariseatthesametime.精選異常(Exceptions)Exceptionsare精選Arm體系結(jié)構(gòu)的異常種類精選Arm體系結(jié)構(gòu)的異常種類精選異常處理模式及異常向量地址精選異常處理模式及異常向量地址精選微處理器對(duì)異常的響應(yīng)ARM微處理器對(duì)異常的響應(yīng)過(guò)程用偽碼可以描述為:

R14_<Exception_Mode>=ReturnLink SPSR_<Exception_Mode>=CPSR CPSR[4:0]=ExceptionModeNumber CPSR[5]=0;當(dāng)運(yùn)行于ARM工作狀態(tài)時(shí)

If<Exception_Mode>==ResetorFIQthen ;當(dāng)響應(yīng)FIQ異常時(shí),禁止新的FIQ異常

CPSR[6]=1/*否則,禁止IRQ中斷*/ CPSR[7]=1 PC=ExceptionVectorAddress精選微處理器對(duì)異常的響應(yīng)ARM微處理器對(duì)異常的響應(yīng)過(guò)程用偽碼精選從異常處理程序中返回異常處理完畢之后,應(yīng)編寫程序執(zhí)行以下幾步操作從異常處理程序中返回:

1.將SPSR復(fù)制回CPSR中。

2.將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。 可以認(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開(kāi)始執(zhí)行的,因此復(fù)位異常處理程序不需要返回精選從異常處理程序中返回異常處理完畢之后,應(yīng)編寫程序執(zhí)行以下精選異常的優(yōu)先級(jí)

優(yōu)先級(jí) 異常

1(最高) 復(fù)位

2 數(shù)據(jù)中止

3 FIQ 4 IRQ 5 預(yù)取中止

6 未定義指令,SWI精選異常的優(yōu)先級(jí) 優(yōu)先級(jí) 異常精選中斷總結(jié)Arm的異常中斷、中斷向量表、中斷處理、中斷引起的工作模式的改變、中斷的作用。IRQ引腳FIQ引腳Reset引腳devicesdevicesReset按鍵內(nèi)部指令執(zhí)行中斷模塊未定義指令SWI指令指令預(yù)取中止數(shù)據(jù)預(yù)取中止復(fù)位中斷(1)未定義指令(6)軟件中斷(6)指令預(yù)取中止(5)數(shù)據(jù)訪問(wèn)中止(2)IRQ(4)FIQ(3)PCCPU0x00x40x80xc0x100x140x180x1c中斷向量地址LdrPC,=ResetHandlerLdrPC,=UndeftHandlerLdrPC,=SWIHandlerLdrPC,=InstrHandlerLdrPC,=DataHandler保留LdrPC,=IRQHandlerLdrPC,=FIQHandler中斷處理設(shè)置異常模式Flash精選中斷總結(jié)Arm的異常中斷、中斷向量表、中斷處理、中斷引起精選ARM體系中的存儲(chǔ)空間ARM體系使用單一的平板地址空間。該地址空間的大小為2^32個(gè)8位字節(jié)。這些字節(jié)單元的地址是一個(gè)無(wú)符號(hào)的32位數(shù)值,其取值范圍是0~2^32-1。ARM地址空間也可以看作是2^30個(gè)32位的字單元。這些字單元的地址可以被4整除。地址為A的字?jǐn)?shù)據(jù)包括地址為A、A+1、A+2、A+3等4個(gè)字節(jié)單元的內(nèi)容。在ARM版本4及以上的版本中,ARM的地址空間也可以看作是2^31個(gè)16位的半字單元。這些半字單元的地址可以被2整除。地址為A的半字?jǐn)?shù)據(jù)包括地址為A、A+1等2個(gè)字節(jié)單元的內(nèi)容。精選ARM體系中的存儲(chǔ)空間ARM體系使用單一的平板地址空間。精選Arm存儲(chǔ)器格式ARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開(kāi)始的字節(jié)的線性組合

ARM體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱之為大端格式和小端格式精選Arm存儲(chǔ)器格式ARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開(kāi)始精選AnyQuestions?精選AnyQuestions?嵌入式微控制器編程

EmbeddedMicrocontrollerProgramming艾云峰aiyunfeng@CollegeofComputing&CommunicationEngineering精選嵌入式微控制器編程

EmbeddedMicrocontr精選內(nèi)容大綱一、Arm處理器編程基礎(chǔ)

SOURCE:ARMArchitectureReferenceManual,ChapterA3精選內(nèi)容大綱一、Arm處理器編程基礎(chǔ)精選Arm處理器編程基礎(chǔ)1.數(shù)據(jù)類型2.ARM微處理器的工作狀態(tài)3.ARM處理器工作模式4.寄存器組織5.異常(Exceptions)6.ARM體系結(jié)構(gòu)的存儲(chǔ)器格式精選Arm處理器編程基礎(chǔ)1.數(shù)據(jù)類型精選數(shù)據(jù)類型字(Word)在ARM體系結(jié)構(gòu)中,字的長(zhǎng)度為32位,其它8位/16位處理器體系結(jié)構(gòu)中,字的長(zhǎng)度一般為16位半字(Half-Word)在ARM體系結(jié)構(gòu)中,半字的長(zhǎng)度為16位,與8位/16位處理器體系結(jié)構(gòu)中字的長(zhǎng)度一致字節(jié)(Byte)在ARM體系結(jié)構(gòu)和8位精選數(shù)據(jù)類型字(Word)精選ARM微處理器工作狀態(tài)ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換第一種為ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;第二種為Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令精選ARM微處理器工作狀態(tài)ARM微處理器的工作狀態(tài)一般有兩精選ARM處理器工作模式(1)

ARM有7個(gè)基本工作模式:User:非特權(quán)模式,大部分任務(wù)執(zhí)行在這種模式正常程序執(zhí)行的模式FIQ:當(dāng)一個(gè)高優(yōu)先級(jí)(fast)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式高速數(shù)據(jù)傳輸和通道處理IRQ:當(dāng)一個(gè)低優(yōu)先級(jí)(normal)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式通常的中斷處理Supervisor:當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)將會(huì)進(jìn)入這種模式供操作系統(tǒng)使用的一種保護(hù)模式Abort:

當(dāng)存取異常時(shí)將會(huì)進(jìn)入這種模式虛擬存儲(chǔ)及存儲(chǔ)保護(hù)Undef:

當(dāng)執(zhí)行未定義指令時(shí)會(huì)進(jìn)入這種模式軟件仿真硬件協(xié)處理器System:

使用和User模式相同寄存器集的特權(quán)模式特權(quán)級(jí)的操作系統(tǒng)任務(wù)異常模式(Exception)特權(quán)模式(Privilige)精選ARM處理器工作模式(1)ARM有7個(gè)基本工作模式:精選ARM處理器工作模式(2)處理器工作模式的切換方法通過(guò)軟件控制進(jìn)行切換通過(guò)外部中斷進(jìn)行切換通過(guò)異常處理進(jìn)行切換用戶模式的特點(diǎn)大多數(shù)應(yīng)用程序運(yùn)行在用戶模式下應(yīng)用程序不能訪問(wèn)受操作系統(tǒng)保護(hù)的系統(tǒng)資源不能通過(guò)軟件控制的方式進(jìn)行模式切換可通過(guò)產(chǎn)生異常處理來(lái)切換處理器工作模式精選ARM處理器工作模式(2)處理器工作模式的切換方法精選ARM處理器工作模式(3)異常模式的作用特點(diǎn)當(dāng)應(yīng)用程序發(fā)生異常中斷時(shí),處理器進(jìn)入相應(yīng)的異常模式在每一種異常模式中都有一組寄存器,供相應(yīng)的異常處理程序使用。這樣可以保證進(jìn)入異常模式時(shí),用戶模式下的寄存器(保存了程序運(yùn)行狀態(tài))不被破壞系統(tǒng)模式的特點(diǎn)屬于特權(quán)模式,主要供操作系統(tǒng)的任務(wù)使用,可以直接進(jìn)行處理器切換操作系統(tǒng)任務(wù)需要訪問(wèn)所有系統(tǒng)資源,使用用戶模式下的寄存器而不是異常模式下的寄存器,可保證異常中斷發(fā)生時(shí)任務(wù)狀態(tài)不被破壞精選ARM處理器工作模式(3)異常模式的作用特點(diǎn)精選ARM寄存器組織(1)精選ARM寄存器組織(1)精選ARM寄存器組織(2)ARM有37個(gè)32-Bits長(zhǎng)的寄存器,其中包括:31個(gè)通用寄存器,包括1個(gè)程序計(jì)數(shù)器PC(programcounter)6個(gè)狀態(tài)寄存器,包括1個(gè)用作CPSR(currentprogramstatusregister)5個(gè)用作SPSR(savedprogramstatusregisters)在每一種處理器模式下,有一組相應(yīng)的寄存器組。任意時(shí)刻,可見(jiàn)的寄存器包括:相應(yīng)的r0-r12子集相應(yīng)的r13(thestackpointer,sp)andr14(thelinkregister,lr)相應(yīng)的r15(theprogramcounter,pc)相應(yīng)的CPSR(currentprogramstatusregister,cpsr)特權(quán)模式下(除system模式)還可以存??;相應(yīng)的spsr(savedprogramstatusregister)精選ARM寄存器組織(2)ARM有37個(gè)32-Bits長(zhǎng)的精選通用寄存器通用寄存器包括R0~R15,可以分為三類:未備份寄存器R0~R7;備份寄存器R8~R14程序計(jì)數(shù)器PC(R15)精選通用寄存器通用寄存器包括R0~R15,可以分為三類:精選通用寄存器-未備份寄存器對(duì)于每一個(gè)未備份寄存器來(lái)說(shuō),在所有處理器模式下指的都是同一個(gè)物理寄存器,未備份寄存器沒(méi)有被系統(tǒng)用于特別的用途,任何可采用通用寄存器的應(yīng)用場(chǎng)合都可以使用未備份寄存器精選通用寄存器-未備份寄存器對(duì)于每一個(gè)未備份寄存器來(lái)說(shuō),在所精選通用寄存器–

備份寄存器對(duì)于備份寄存器R8~R12而言,每個(gè)寄存器對(duì)應(yīng)兩個(gè)不同的物理寄存器。在快速中斷模式下使用寄存器R8~R12,和在其它模式下使用這些寄存器時(shí),使用的是不同的物理寄存器。對(duì)于備份寄存器R13和R14而言,每個(gè)寄存器對(duì)應(yīng)6個(gè)不同的物理寄存器,其中一個(gè)是用戶模式和系統(tǒng)模式公用的;另外5個(gè)對(duì)應(yīng)于其它5種處理器模式。精選通用寄存器–備份寄存器對(duì)于備份寄存器R8~R12而言精選通用寄存器–

備份寄存器寄存器R13在ARM指令中常用作堆棧指針。每一種異常模式擁有自己的物理R13,當(dāng)進(jìn)入異常模式時(shí),可以將需要使用的寄存器保存在R13所指的棧中;當(dāng)退出異常模式時(shí),將保存在R13所指的棧中的寄存器彈出,從而使異常處理器程序不會(huì)破壞其中斷程序的運(yùn)行現(xiàn)場(chǎng)。精選通用寄存器–備份寄存器寄存器R13在ARM指令中常用精選通用寄存器–

備份寄存器R14也稱作子程序連接寄存器(SubroutineLinkRegister)或連接寄存器LR,在ARM體系中具有下面兩種特殊的作用:每一種處理器模式自己的物理R14存放當(dāng)前子程序的返回地址。當(dāng)通過(guò)BL或BLX指令調(diào)用子程序時(shí),R14被設(shè)置成該子程序的返回地址。在子程序中,當(dāng)把R14的值復(fù)制到PC時(shí),子程序返回。實(shí)現(xiàn)子程序返回的兩種操作:執(zhí)行下面任何一條指令:MOVPC,LRBXLR當(dāng)異常發(fā)生時(shí),該異常模式特定的物理R14被設(shè)置成該異常模式將要返回的地址。精選通用寄存器–備份寄存器R14也稱作子程序連接寄存器(精選通用寄存器–

程序計(jì)數(shù)器寄存器R15用作程序計(jì)數(shù)器(PC)由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,當(dāng)正確讀取了PC的值時(shí),該值為當(dāng)前指令地址值加8,也即是說(shuō),PC指向當(dāng)前指令的下兩條指令的地址。精選通用寄存器–程序計(jì)數(shù)器寄存器R15用作程序計(jì)數(shù)器(P精選程序狀態(tài)寄存器(1)寄存器R16寄存器R16用作CPSR(CurrentProgramStatusRegister,當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位每一種運(yùn)行模式下又都有一個(gè)專用的物理狀態(tài)寄存器,稱為SPSR(SavedProgramStatusRegister,備份的程序狀態(tài)寄存器),當(dāng)異常發(fā)生時(shí),SPSR用于保存CPSR的當(dāng)前值,從異常退出時(shí)則可由SPSR來(lái)恢復(fù)CPSR精選程序狀態(tài)寄存器(1)寄存器R16精選程序狀態(tài)寄存器(2)精選程序狀態(tài)寄存器(2)精選程序狀態(tài)寄存器(3)精選程序狀態(tài)寄存器(3)精選程序狀態(tài)寄存器(4)-運(yùn)行模式位M[4:0]精選程序狀態(tài)寄存器(4)-運(yùn)行模式位M[4:0]精選異常(Exceptions)Exceptionsaregeneratedbyinternalandexternalsourcestocasusetheprocessortohandleanevent,suchasanexternallygeneratedinterruptorattempttoexecuteanundefinedinstruction.Theprocessorstatejustbeforehandlingtheexceptionmustbepreservedsothattheoriginalprogramcanberesumedwhentheexceptionroutinehascompleted.Morethanoneexceptioncanariseatthesametime.精選異常(Exceptions)Exceptionsare精選Arm體系結(jié)構(gòu)的異常種類精選Arm體系結(jié)構(gòu)的異常種類精選異常處理模式及異常向量地址精選異常處理模式及異常向量地址精選微處理器對(duì)異常的響應(yīng)ARM微處理器對(duì)異常的響應(yīng)過(guò)程用偽碼可以描述為:

R14_<Exception_Mode>=ReturnLink SPSR_<Exception_Mode>=CPSR CPSR[4:0]=ExceptionModeNumber CPSR[5]=0;當(dāng)運(yùn)行于ARM工作狀態(tài)時(shí)

If<Exception_Mode>==ResetorFIQthen ;當(dāng)響應(yīng)FIQ異常時(shí),禁止新的FIQ異常

CPSR[6]=1/*否則,禁止IRQ中斷*/ CPSR[7]=1 PC=ExceptionVectorAddress精選微處理器對(duì)異常的響應(yīng)ARM微處理器對(duì)異常的響應(yīng)過(guò)程用偽碼精選從異常處理程序中返回異常處理完畢之后,應(yīng)編寫程序執(zhí)行以下幾步操作從異常處理程序中返回:

1.將SPSR復(fù)制回CPSR中。

2.將連接寄存器LR

溫馨提示

  • 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)論