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

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

1.ARM的7種工作模式

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

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

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

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

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

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

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

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

CPSR[4:0]定義的ARM工作模式CPSR[4:0]處理器模式可訪問(wèn)的寄存器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(進(jìn)程堆棧指針),用戶模式和特權(quán)模式組合成4種工作模式,將其他模式整合到異常向量表中,干凈簡(jiǎn)潔舒服啦。

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


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

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

2.3 R13和R14

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

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

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

執(zhí)行以下任意一條指令:
MOV PC, LR
BX LR
在子程序入口處使用以下指令將R14存入堆棧:
STMFD SP!,{,LR}
對(duì)應(yīng)的,使用以下指令可以完成子程序返回:
LDMFD SP!,{,PC}
R14也可作為通用寄存器。
2.4 程序計(jì)數(shù)器PC(R15)
所有工作模式下訪問(wèn)的R15都是同一個(gè)物理寄存器,由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,PC總是指向當(dāng)前指令的下兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8個(gè)字節(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可在任何工作模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。

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

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

31302928272676543210NZCVQDNM(RAZ)IFTM4M3M2M1M0

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

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

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