日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]1.ARM的7種工作模式ARMv4和ARMv5的指令集規(guī)定了ARM的7種工作模式,由寄存器CPSR[4:0]決定(見下表),分別是用戶(User)模式:ARM處理器正常的程序執(zhí)行狀態(tài)系統(tǒng)(System)模式:運行具有特權(quán)的操作系統(tǒng)任務(wù)快速中斷(FIQ)

1.ARM的7種工作模式

ARMv4和ARMv5的指令集規(guī)定了ARM的7種工作模式,由寄存器CPSR[4:0]決定(見下表),分別是

用戶(User)模式:ARM處理器正常的程序執(zhí)行狀態(tài)

系統(tǒng)(System)模式:運行具有特權(quán)的操作系統(tǒng)任務(wù)

快速中斷(FIQ)模式:用于處理緊急的中斷,如高速數(shù)據(jù)傳輸或通道處理

普通中斷(IRQ)模式:用于處理通用的中斷,通常在硬件中斷信號后進入該模式

管理(Supervisor)模式:操作系統(tǒng)使用的保護模式,是CPU上電后的默認模式,主要用于系統(tǒng)的初始化

數(shù)據(jù)訪問終止(Abort)模式:用于虛擬存儲及存儲保護,當(dāng)訪問非法地址或讀取無權(quán)限內(nèi)存地址時進入該模式

未定義指令中止(Undifined)模式:當(dāng)執(zhí)行未定義的指令時進入該模式,用于支持硬件協(xié)處理器的軟件仿真

CPSR[4:0]定義的ARM工作模式CPSR[4:0]處理器模式可訪問的寄存器0b10000USERR0~R14;PC;CPSR0b11111SYSTEMR0~R14;PC;CPSR0b10001FIQR0~R7;R8_FIQ-R14_fiq;PC;CPSR;SPSR_fiq0b10010IRQR0~R12;R13_irq-R14_irq;PC;CPSR;SPSR_irq0b10011SUPERVISORR0~R12;R13_svc-R14_svc;PC;CPSR;SPSR_svc0b10111ABORTR0~R12;R13_abt-R14_abt;PC;CPSR;SPSR_abt0b11011UNDEFINEDR0~R12;R13_und-R14_und;PC;CPSR;SPSR_und

現(xiàn)在ARMv6和ARMv7指令集做出了改變,由MSP(主堆棧指針)和PSP(進程堆棧指針),用戶模式和特權(quán)模式組合成4種工作模式,將其他模式整合到異常向量表中,干凈簡潔舒服啦。

2.ARM寄存器
ARM共有37個32位物理寄存器,7種工作模式下可訪問的寄存器見下表,User和System使用完全相同的物理寄存器。


2.1 R0~R7
所有工作模式下,R0-R7都分別指向同一個物理寄存器(共8個物理寄存器),它們未被系統(tǒng)用作特殊的用途。在中斷或異常處理進行工作模式轉(zhuǎn)換時,由于不同工作模式均使用相同的物理寄存器,可能造成寄存器中數(shù)據(jù)的破壞。
2.2 R8~R12

在User&System、IRQ、Svc、Abt和Und模式下訪問的R8~R12都是同一個物理寄存器(共5個物理寄存器);在FIQ模式下,訪問的R8_fiq~R12_fiq是另外獨立的物理寄存器(共5個物理寄存器)。

2.3 R13和R14

在User&System、IRQ、FIQ、Svc、Abt和Und訪問的R13_~R14都是各自模式下獨立的物理寄存器(共12個物理寄存器)。

R13在ARM指令中常用作堆棧指針(SP),但這只是一種習(xí)慣用法,用戶也可使用其他的寄存器作為堆棧指針。而在Thumb指令集中,某些指令強制性的要求使用R13作為堆棧指針。

由于處理器的每種工作模式均有自己獨立的物理寄存器R13,在用戶應(yīng)用程序的初始化部分,一般都要初始化每種模式下的R13,使其指向該工作模式的??臻g。這樣,當(dāng)程序進入異常模式時,可以將需要保護的寄存器放入R13所指向的堆棧,而當(dāng)程序從異常模式返回時,則從對應(yīng)的堆棧中恢復(fù),采用這種方式可以保證異常發(fā)生后程序的正常執(zhí)行。
R14稱為鏈接寄存器(Link Register),當(dāng)執(zhí)行子程序調(diào)用指令(BL)時,R14可得到R15(程序計數(shù)器PC)的備份。在每一種工作模式下,都可用R14保存子程序的返回地址,當(dāng)用BL或BLX指令調(diào)用子程序時,將PC的當(dāng)前值復(fù)制給R14,執(zhí)行完子程序后,又將R14的值復(fù)制回PC,即可完成子程序的調(diào)用返回。以上的描述可用指令完成。

執(zhí)行以下任意一條指令:
MOV PC, LR
BX LR
在子程序入口處使用以下指令將R14存入堆棧:
STMFD SP!,{,LR}
對應(yīng)的,使用以下指令可以完成子程序返回:
LDMFD SP!,{,PC}
R14也可作為通用寄存器。
2.4 程序計數(shù)器PC(R15)
所有工作模式下訪問的R15都是同一個物理寄存器,由于ARM體系結(jié)構(gòu)采用了多級流水線技術(shù),對于ARM指令集而言,PC總是指向當(dāng)前指令的下兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8個字節(jié)。

在ARM狀態(tài)下,R15[1:0]為0,R15[31:2]用于保存PC;在Thumb狀態(tài)下,R15[0]為0,R15[31:1]用于保存PC。

2.5 CPSR和SPSR

R16用作CPSR(CurrentProgram Status Register,當(dāng)前程序狀態(tài)寄存器),CPSR可在任何工作模式下被訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。

每一種工作模式下又都有一個專用的物理狀態(tài)寄存器,稱為SPSR(Specified Program Status Register,備份的程序狀態(tài)寄存器),當(dāng)異常發(fā)生時,SPSR用于保存CPSR的當(dāng)前值,從異常退出時則可由SPSR來恢復(fù)CPSR。
User模式和System模式不屬于異常模式,它們沒有SPSR,當(dāng)在這兩種模式下訪問SPSR,結(jié)果是未知的。

2.6 CPSR各標(biāo)志位含義

31302928272676543210NZCVQDNM(RAZ)IFTM4M3M2M1M0

N(Negative)---設(shè)置成當(dāng)前指令運算結(jié)果的bit[31]的值。當(dāng)兩個有符號整數(shù)運算時,N=1運算結(jié)果為負數(shù),N=0運算結(jié)果為正。

Z(Zero)---Z=1運算結(jié)果為零;Z=0表示運算的結(jié)果不為零。對于CMP指令,Z=1表示進行比較的兩個數(shù)大小相等。

C(Carried out)---分四種情況討論
1)在加法指令中(包括比較指令CMP),當(dāng)結(jié)果產(chǎn)生進位,則C=1,表示無符號運算發(fā)生上溢出;其他情況C=0。
2)在減法指令中(包括減法指令CMP),當(dāng)運算發(fā)生借位,則C=0,表示無符號運算發(fā)生下溢出;其他情況下C=1。
3)對于包含移位操作的非加減運算指令,C中包含最后一次溢出的位的數(shù)值
4)對于其他非加減運算指令,C位的值通常不受影響
V(oVerflow)---對于加減運算指令,當(dāng)操作數(shù)和運算結(jié)果為二進制的補碼表示的帶符號數(shù)時,V=1符號為溢出;通常其他指令不影響V位。

Q---在ARM V5的E系列處理器中,CPSR的bit[27]稱為Q標(biāo)識位,主要用于指示增強的DSP指令是否發(fā)生了溢出。同樣的spsr的bit[27]位也稱為Q標(biāo)識位,用于在異常中斷發(fā)生時保存和恢復(fù)CPSR中的Q標(biāo)識位。在ARM V5以前的版本及ARM V5的非E系列的處理器中,Q標(biāo)識位沒有被定義。

I和F---當(dāng)I=1時禁止IRQ中斷,當(dāng)F=1時禁止FIQ中斷

T---對于ARM V4以更高版本的T系列ARM處理器,T=0表示執(zhí)行ARM指令;T=1表示執(zhí)行Thumb指令
對于ARM V5以及更高版本的非T系列處理器,T=0表示執(zhí)行ARM指令;T=1表示強制下一條執(zhí)行的指令產(chǎn)生未定指令中斷

M[4:0]---定義了的ARM工作模式,具體見1中表CSPR[4:0]定義的ARM工作模式

3 控制程序的執(zhí)行流程的3種方式

1)在正常執(zhí)行過程中,每執(zhí)行一條ARM指令,程序計數(shù)器(PC)的值加4個字節(jié);每執(zhí)行一條Thumb指令,程序計數(shù)器寄存器(PC)加2個字節(jié)。整個過程是按順序執(zhí)行。

2)跳轉(zhuǎn)指令,程序可以跳轉(zhuǎn)到特定的地址處執(zhí)行,或者跳轉(zhuǎn)到特定的子程序處執(zhí)行。其中,B指令用于執(zhí)行跳轉(zhuǎn)操作;BL指令在執(zhí)行跳轉(zhuǎn)操作同時,保存子程序的返回地址;BX指令在執(zhí)行跳轉(zhuǎn)操作同時,根據(jù)目標(biāo)地址為可以將程序切換到Thumb狀態(tài);BLX指令執(zhí)行3個操作,跳轉(zhuǎn)到目標(biāo)地址處執(zhí)行,保存子程序的返回地址,根據(jù)目標(biāo)地址為可以將程序切換到Thumb狀態(tài)。

3)當(dāng)異常中斷發(fā)生時,系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。當(dāng)異常中斷處理程序執(zhí)行完成后,程序返回到發(fā)生中斷指令的下條指令處執(zhí)行。在進入異常中斷處理程序時,要保存被中斷程序的執(zhí)行現(xiàn)場,從異常中斷處理程序退出時,要恢復(fù)被中斷程序的執(zhí)行現(xiàn)場。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉