日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Cortex-M3中断的具体行为

發(fā)布時(shí)間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cortex-M3中断的具体行为 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


中斷響應(yīng)序列

Cortex-M3的中斷響應(yīng)序列包括:入棧,取向量,更新寄存器;

1. 入棧

Cortex-M3的中斷響應(yīng)會(huì)自動(dòng)保存現(xiàn)場(chǎng):依次將xPSR,PC,LR,R12,R0-R3壓入堆棧;響應(yīng)異常時(shí)正在使用哪個(gè)堆棧指針,則壓入哪個(gè)堆棧,進(jìn)入中斷服務(wù)例程后,將一直使用MSP;

地址寄存器保存的順序
舊SP(N-0)原內(nèi)容-
(N-4)xPSR2
(N-8)PC1
(N-12)LR8
(N-16)R127
(N-20)R36
(N-24)R25
(N-28)R14
新SP(N-32)R03

先把PC和xPSR的值入棧,是為了盡早的啟動(dòng)服務(wù)例程指令的預(yù)取,以及更新xPSR的IPSR段的值;

2. 取向量

當(dāng)數(shù)據(jù)總線執(zhí)行入棧操作的時(shí)候,指令總線正在執(zhí)行取向量操作;即從向量表中找出正確的中斷向量,然后在服務(wù)例程入口處預(yù)取指令;取向量和入棧是同時(shí)進(jìn)行的;

3. 更新寄存器

在中斷開始響應(yīng)之后,執(zhí)行服務(wù)例程之前,更新了一系列寄存器:
SP:入棧會(huì)把SP更新到新的位置,中斷服務(wù)例程由MSP負(fù)責(zé)堆棧的訪問(wèn);
PSR:IPSR位段會(huì)更新為新響應(yīng)的異常編號(hào);
PC:PC將指向服務(wù)例程的入口地址;
LR:LR的用法將被重新解釋,其值將更新為一種特殊的值,稱為“EXC_RETURN”,并在異常返回時(shí)使用;
在中斷響應(yīng)時(shí),NVIC也更新了一些寄存器,例如,新響應(yīng)異常的懸起位被清除,其活動(dòng)位被激活;

中斷返回

Cortex-M3的中斷返回序列需要一個(gè)特定的動(dòng)作來(lái)觸發(fā),這個(gè)動(dòng)作就是把EXC_RETURN送往PC,例如:BX LR;
在啟動(dòng)了中斷返回序列后,將執(zhí)行以下操作:
出棧:將先前壓入堆棧的寄存器恢復(fù),堆棧指針也更新;
更新NVIC寄存器:異常返回,其相應(yīng)的活動(dòng)位將被硬件清除;

EXC_RETURN

進(jìn)入中斷服務(wù)程序后,LR(R14)寄存器的值會(huì)被更新為特殊的值‘EXC_RETURN’(原來(lái)的值已壓入堆棧);執(zhí)行完中斷服務(wù)程序后,只要把這個(gè)值送往PC,就會(huì)啟動(dòng)中斷返回序列;

EXC_RETURN位段如下:

bits-
bit[31:4]EXC_RETURN的標(biāo)識(shí),全為1
bit[3]0表示返回后進(jìn)入handler模式,1表示返回后進(jìn)入線程模式
bit[2]0表示返回后使用MSP,1表示返回后使用PSP
bit[1]保留
bit[0]0表示返回ARM狀態(tài),1表示返回thumb狀態(tài),CM3中必須為1

合法的EXC_RETURN值

  • 0xffffffff1 : 返回handler模式
  • 0xffffffff9 : 返回線程模式,并使用MSP
  • 0xffffffffd : 返回線程模式,并使用PSP

如果在線程模式,且使用MSP時(shí)被中斷,中斷服務(wù)例程中EXC_RETURN=0xfffffff9;
如果在線程模式,且使用PSP時(shí)被中斷,中斷服務(wù)例程中EXC_RETURN=0xfffffffd;
如果在handler模式時(shí)被中斷,中斷服務(wù)例程中EXC_RETURN=0xfffffff1;

總結(jié)

以上是生活随笔為你收集整理的Cortex-M3中断的具体行为的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。