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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]FIQ(Fast Interrupt Request)FIQ異常是為了支持?jǐn)?shù)據(jù)傳輸或者通道處理而設(shè)計(jì)的。在ARM狀態(tài)下,系統(tǒng)有足夠的私有寄存器,從而可以避免對(duì)寄存器保存的需求,并減小了系統(tǒng)上下文切換的開(kāi)銷。若將CPSR的F位置為1,則會(huì)禁

FIQ(Fast Interrupt Request)

FIQ異常是為了支持?jǐn)?shù)據(jù)傳輸或者通道處理而設(shè)計(jì)的。在ARM狀態(tài)下,系統(tǒng)有足夠的私有寄存器,從而可以避免對(duì)寄存器保存的需求,并減小了系統(tǒng)上下文切換的開(kāi)銷。

若將CPSR的F位置為1,則會(huì)禁止FIQ中斷,若將CPSR的F位清零,處理器會(huì)在指令執(zhí)行時(shí)檢查FIQ的輸入。注意只有在特權(quán)模式下才能改變F位的狀態(tài)。

可由外部通過(guò)對(duì)處理器上的nFIQ引腳輸入低電平產(chǎn)生FIQ。不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入FIQ模式,F(xiàn)IQ處理程序均會(huì)執(zhí)行以下指令從FIQ模式返回:

SUBS PC,R14_fiq ,#4

該指令將寄存器 R14_fiq 的值減去 4 后,復(fù)制到程序計(jì)數(shù)器 PC 中,從而實(shí)現(xiàn)從異常處理程序中的返回,同時(shí)將 SPSR_mode 寄存器的內(nèi)容復(fù)制到當(dāng)前程序狀態(tài)寄存器 CPSR 中。

IRQ(Interrupt Request)

IRQ異常屬于正常的中斷請(qǐng)求,可通過(guò)對(duì)處理器的nIRQ引腳輸入低電平產(chǎn)生,IRQ的優(yōu)先級(jí)低于FIQ,當(dāng)程序執(zhí)行進(jìn)入FIQ異常時(shí),IRQ可能被屏蔽。

若將CPSR的I位置為1,則會(huì)禁止IRQ中斷,若將CPSR的I位清零,處理器會(huì)在指令執(zhí)行完之前檢查IRQ的輸入。注意只有在特權(quán)模式下才能改變I位的狀態(tài)。

不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入IRQ模式,IRQ處理程序均會(huì)執(zhí)行以下指令從IRQ模式返回:

SUBS PC , R14_irq , #4

該指令將寄存器 R14_irq 的值減去 4 后,復(fù)制到程序計(jì)數(shù)器 PC 中,從而實(shí)現(xiàn)從異常處理程序中的返回,同時(shí)將 SPSR_mode 寄存器的內(nèi)容復(fù)制到當(dāng)前程序狀態(tài)寄存器 CPSR 中。

ABORT(中止)

產(chǎn)生中止異常意味著對(duì)存儲(chǔ)器的訪問(wèn)失敗。ARM微處理器在存儲(chǔ)器訪問(wèn)周期內(nèi)檢查是否發(fā)生中止異常。

中止異常包括兩種類型:

─ 指令預(yù)取中止:發(fā)生在指令預(yù)取時(shí)。

─ 數(shù)據(jù)中止:發(fā)生在數(shù)據(jù)訪問(wèn)時(shí)。

當(dāng)指令預(yù)取訪問(wèn)存儲(chǔ)器失敗時(shí),存儲(chǔ)器系統(tǒng)向ARM處理器發(fā)出存儲(chǔ)器中止(Abort)信號(hào),預(yù)取的指令被記為無(wú)效,但只有當(dāng)處理器試圖執(zhí)行無(wú)效指令時(shí),指令預(yù)取中止異常才會(huì)發(fā)生,如果指令未被執(zhí)行,例如在指令流水線中發(fā)生了跳轉(zhuǎn),則預(yù)取指令中止不會(huì)發(fā)生。

若數(shù)據(jù)中止發(fā)生,系統(tǒng)的響應(yīng)與指令的類型有關(guān)。

當(dāng)確定了中止的原因后,Abort處理程序均會(huì)執(zhí)行以下指令從中止模式返回,無(wú)論是在ARM狀態(tài)還是Thumb狀態(tài):

SUBS PC, R14_abt, #4 ;指令預(yù)取中止

SUBS PC, R14_abt, #8 ;數(shù)據(jù)中止

以上指令恢復(fù)PC(從R14_abt)和CPSR(從SPSR_abt)的值,并重新執(zhí)行中止的指令。

Software Interruupt(軟件中斷)

軟件中斷指令(SWI)用于進(jìn)入管理模式,常用于請(qǐng)求執(zhí)行特定的管理功能。軟件中斷處理程序執(zhí)行以下指令從SWI模式返回,無(wú)論是在ARM狀態(tài)還是Thumb狀態(tài):

MOV PC , R14_svc

以上指令恢復(fù)PC(從R14_svc)和CPSR(從SPSR_svc)的值,并返回到SWI的下一條指令。

Undefined Instruction(未定義指令)

當(dāng)ARM處理器遇到不能處理的指令時(shí),會(huì)產(chǎn)生未定義指令異常。采用這種機(jī)制,可以通過(guò)軟件仿真擴(kuò)展ARM或Thumb指令集。

在仿真未定義指令后,處理器執(zhí)行以下程序返回,無(wú)論是在ARM狀態(tài)還是Thumb狀態(tài):

MOVS PC, R14_und

以上指令恢復(fù)PC(從R14_und)和CPSR(從SPSR_und)的值,并返回到未定義指令后的下一條指令。


本站聲明: 本文章由作者或相關(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)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉