娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月04日(星期三)

正在發(fā)生

2020年09月04日 | 對ARM異常中斷的集中情況進行總結(jié),并給出了一些解決方法

發(fā)布者:CreativeMind 來源: elecfans關(guān)鍵字:ARM  異常中斷  單片機 手機看文章 掃描二維碼
隨時隨地手機看文章

ARM單片機是大多數(shù)新手選擇的入門切入點,但由于知識的不足,在設(shè)計過程中新手們經(jīng)常會遇到這樣或那樣的問題,ARM異常中斷返回就是這樣一種令人頭疼的問題。在ARM的使用問題中異常中斷返回是新手們較為苦惱的問題,本文就將對ARM異常中斷的集中情況進行總結(jié),并給出了一些解決方法。


在正式介紹之前,要為大家補充一些較為重要的基礎(chǔ)知識。首先R15(PC)總是指向“正在取指”的指令,而不是指向“正在執(zhí)行”的指令或正在“譯碼”的指令。一般來說,人們習(xí)慣性約定將“正在執(zhí)行的指令作為參考點”,稱之為當(dāng)前第一條指令,因此PC總是指向第三條指令。當(dāng)ARM狀態(tài)時,每條指令為4字節(jié)長,所以PC始終指向該指令地址加8字節(jié)的地址,即:PC值=當(dāng)前程序執(zhí)行位置+8;而ADS中的pc,是為了調(diào)試看著方便而修改過的,它指向的是正在執(zhí)行的指令,即“真正pc-8”!


SWI和未定義指令異常中斷的返回

指令地址:

A PC-8當(dāng)前指令為SWI或未定義指令,此時發(fā)生中斷.PC的值還沒有更新。

A+4 PC-4中斷時處理器將PC-4保存到LR。;r!

A+8 PC

返回時,從發(fā)生中斷的指令A(yù)(PC-8)的下一條指令A(yù)+4(PC-4)處開始執(zhí)行,所以直接把LR的值賦給PC就行了,具體指令為MOV PC,LR(PC=A+4=LR)。


白話解釋:對于SWI和未定義指令發(fā)生異常時pc沒有更新,根據(jù)ARM的三級流水線原理,pc沒有更新,仍然等于(A+8);lr = pc – 4(這時處理器決定的,無法更改!)即A+4。

由于這類異常返回后應(yīng)執(zhí)行下一條指令(A+4),所以返回時,pc=lr即可。


IRQ 和FIQ異常中斷處理的返回指令地址對應(yīng)于PC A,PC-8執(zhí)行此指令完成后(!)查詢IRQ及FIQ,如果有中斷請求則產(chǎn)生中斷。

A+4 PC-4

A+8 PC ;lr!

(此時PC的值已經(jīng)更新,指向A+12.將當(dāng)前PC-4,即A+8)。

保存到LR.返回時,要接著執(zhí)行A+4(LR-4)處的指令,所以返回指令為:

SUBS PC,LR,#4(PC=A+4=LR-4)

白話解釋:對于普中斷和快中斷異常,中斷必須在一條指令執(zhí)行完以后被檢測到,如正在執(zhí)行指令甲時發(fā)生了中斷,不等指令甲執(zhí)行完是不會處理該中斷的,發(fā)生異常時pc已經(jīng)更新(A+12); lr=pc– 4(這時處理器決定的,無法更改!)即A+8返回后,應(yīng)執(zhí)行被中斷而沒有執(zhí)行的指令(上面的A+4),所以返回時,pc= lr-4。

對ARM異常中斷的集中情況進行總結(jié),并給出了一些解決方法

指令預(yù)取中止異常中斷處理的返回

指令地址:

A PC-8 執(zhí)行本指令時發(fā)生中斷,A+4 PC-4處理器將A+4(PC-4)保存到:

LR. ;lr!A+8 PC

返回時,發(fā)生指令預(yù)取中止的指令A(yù)(PC-8)處重新執(zhí)行,所以返回指令為SUBS PC,LR,#4(PC=A=LR-4)。

白話解釋:對于預(yù)取指令中止異常發(fā)生預(yù)取指令異常時,是在執(zhí)行時發(fā)生的異常,pc未更新,即pc=A+8;lr=pc – 4(這時處理器決定的,無法更改!)即A+4。

由于這類異常返回后應(yīng)重新執(zhí)行異常的那個指令(A),所以返回時,pc = lr-4。

數(shù)據(jù)訪問中止異常中斷處理的返回

指令地址:

A PC-8 本指令訪問有問題的數(shù)據(jù),產(chǎn)生中斷時,PC的值已經(jīng)更新。

A+4 PC-4 中斷發(fā)生時PC=A+12,處理器將A+8(PC-4)保存到LR.。

A+8 PC ;lr!

返回時,要返回到A處繼續(xù)執(zhí)行,所以指令為SUBS PC,LR,#8.(PC=A=LR-8)

白話解釋:對于數(shù)據(jù)訪問中止異常時,是在執(zhí)行時訪問數(shù)據(jù)錯誤。

導(dǎo)致的異常,pc已經(jīng)更新,即pc=A+12。

lr=pc–4(這時處理器決定的,無法更改!)即A+8。

由于這類異常返回后應(yīng)重新執(zhí)行異常的那個指令(A),所以返回時,pc=lr-8。

總結(jié)

引起PC更新的原因一種是數(shù)據(jù)中止,還有就是中斷了。

中斷必須是在一條指令執(zhí)行完畢后才能被檢測到,所以它中斷的只是還未執(zhí)行的那條。指令(pc-8),所以pc=lr – 4;

與中斷相同,SWI和未定義指令異常也是返回到下一條指令(pc-4),只是他們在執(zhí)行時,PC的值并沒有更新,所以pc= lr。

預(yù)取指令中止異常,也沒有發(fā)生pc更新,但它還得重新執(zhí)行發(fā)生異常的那條指令,所以pc=lr–4。

數(shù)據(jù)訪問中止異常,發(fā)生了pc更新,并且它也需要重新執(zhí)行發(fā)生異常的那條指令,所以pc=lr–8。

通過以上的介紹,可以看到造成單片機中斷返回的原因非常多,每種方法的應(yīng)對方案都不盡相同。在ARM芯片調(diào)試過程中遇到中斷返回問題的朋友不妨仔細閱讀本文,相信會從中找到問題的解決方法。

關(guān)鍵字:ARM  異常中斷  單片機 引用地址:對ARM異常中斷的集中情況進行總結(jié),并給出了一些解決方法

上一篇:基于ARM和FPGA的開放性計算機數(shù)控系統(tǒng)
下一篇:學(xué)習(xí)ARM+Linux之前講解用ADS或RealViewMDK調(diào)試ARM開發(fā)板的原因

推薦閱讀

? ?9月4日上午消息,據(jù)充電頭網(wǎng)爆料,目前MFi(Made for iPhone/iPod/iPad)配件廠商收到蘋果公司USB-C to Lightning開放授權(quán)郵件,這意味著用戶或?qū)⒖梢再徺I第三方Lightning快充連接線。充電頭網(wǎng)爆料  根據(jù)充電頭網(wǎng)的說法,最新開放授權(quán)的快充連接器型號為C94,提供給配件配件廠商使用。之前的C53、C91型號為蘋果自用,而之前的C48型號則會停產(chǎn)...
機器人是一種可編程和多功能的,用來搬運材料、零件、的操作機,或是為了執(zhí)行不同的任務(wù)而具有可改變和可編程動作的專門系統(tǒng)。智能機器人則是一個在感知-思維-效應(yīng)方面全面模擬人的機器系統(tǒng),外形不一定像人。它是人工智能技術(shù)的綜合試驗場,可以全面地考察人工智能各個領(lǐng)域的技術(shù),研究它們相互之間的關(guān)系。還可以在有害環(huán)境中代替人從事危險工作、上天...
1,復(fù)用STM32有很多的內(nèi)置外設(shè),這些外設(shè)的外部引腳都是與GPIO復(fù)用的。也就是說,一個GPIO如果可以復(fù)用為內(nèi)置外設(shè)的功能引腳,那么當(dāng)這個GPIO作為內(nèi)置外設(shè)使用的時候,就叫做復(fù)用。哪些端口可以復(fù)用為什么,這個查表就可以了2,如何進行端口復(fù)用?比如AF1要復(fù)用到TIM1;通過設(shè)置AFRL寄存器和AFRH寄存器就可以AF1----->TIM1;一組IO口有16個 GPIOAF0~15AFRL...
文/陳根兩周前,造車的特斯拉突然成為了機器人圈內(nèi)的熱點,馬斯克在特斯拉AI Day的結(jié)尾以一個彩蛋的形式宣布特斯拉正在開發(fā)的人形機器人,立時引起人們的熱議。馬斯克提到,這款人型機器人最早會在2022年投放市場,而就機器人行業(yè)發(fā)展現(xiàn)狀來看,這無疑又是一個激進的目標(biāo)。上周,特斯拉公開招聘與機器人相關(guān)的職位,包括機械工程師-執(zhí)行器集成、機械工程師-制動器...

史海拾趣

問答坊 | AI 解惑

電源控制與充電器功能的融合趨勢

在便攜式應(yīng)用領(lǐng)域,多種器件整合已是必然。正如臺灣電源管理芯片廠商立锜科技指出:“未來基于空間小以及高效率的需求,整合勢在必行。”多輸入、多功能器件正開始將充電、監(jiān)控及管理功能集于一身。電源控制器和電源管理芯片(傳統(tǒng)上是相互關(guān)聯(lián)但又 ...…

查看全部問答∨

印刷電子當(dāng)選2010年影響世界的十大潛力新技術(shù)

2. 印刷電子      能快速印刷出多個導(dǎo)體/絕緣體或半導(dǎo)體層以形成電路的技術(shù),可望催生比目前采用傳統(tǒng)制程生產(chǎn)之IC成本更低芯片。通常印刷半導(dǎo)體意味著使用性能與硅大不相同 的有機材料,甚至所生產(chǎn)之組件尺寸也能超越硅材料的 ...…

查看全部問答∨

編譯交叉工具時遇到的問題

我想在cygwin下編譯基于目標(biāo)cpu i960的交叉編譯工具鏈 在編譯bootrap gcc的時候遇到一個libgcc1.a的問題 mv libgcc1.a libgcc1.cross || (echo You must find a way to make libgcc1.a; false) mv: cannot stat `libgcc1.a\': No such file or d ...…

查看全部問答∨

超級終端下輸入顯示亂碼,而在dnw下輸入顯示正常

我這幾天用筆記本串口連接開發(fā)板(之前用臺式機正常),但是在超級終端下輸入顯示亂碼,而在dnw下輸入顯示正常。開發(fā)板像超級終端輸出顯示正常。 怎么才能在超級終端下正常輸入呢,請指教,謝謝!…

查看全部問答∨

中斷方式下,arm(嵌入式的linux)讀雙口ram的驅(qū)動中,讀ram只能一直處于阻塞狀態(tài),只有中斷來了才能喚醒讀。只能這樣嗎?

中斷方式下,arm(嵌入式的linux)讀雙口ram的驅(qū)動中,讀ram只能一直處于阻塞狀態(tài),只有中斷來了才能喚醒讀。只能這樣嗎? 而不能象單片機的中斷那樣,來了中斷直接進入中斷函數(shù)進行處理。…

查看全部問答∨

lcd屏閃爍問題

我的LCD屏閃爍是哪個參數(shù)設(shè)置問題嗎? 聽說是行頻那個參數(shù),這個在wince的那個文件里設(shè)置呢?…

查看全部問答∨

Pocket PC怎樣通過activesync連接到局域網(wǎng)?

我已經(jīng)安裝好Activesync4.2,Pocket PC通過USB線連接到我的電腦上,連接成功.我的電腦是連在局域網(wǎng)上的,怎樣將Pocket PC連到局域網(wǎng)上呢?…

查看全部問答∨

關(guān)于verilog語言綜合中l(wèi)atch的一些疑問?

1:如果變量沒有在IF語句的每個分支中進行賦值,將會產(chǎn)生latch。如果IF語句中產(chǎn)生了latch,則IF的條件中最好不要用到算術(shù)操作。Case語句類似。Case的條款可以是變量。如果一個變量在同一個IF條件分支中先贖值然后讀取,則不會產(chǎn)生latch。如果先讀取 ...…

查看全部問答∨

超級廣場效果的耳機放大器電路

本帖最后由 jameswangsynnex 于 2015-3-3 19:54 編輯 用頭戴式耳機,尤其是小型耳機聽音樂,總感到音樂味不夠足,在低頻段的效果更差。因此用本機增強耳機的低頻特性,并采用立體聲反相合成的辦法,加上內(nèi)藏簡易矩陣環(huán)繞聲電路,能獲得強勁的低音 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 洛阳市| 同德县| 兰考县| 徐水县| 栾城县| 义马市| 武鸣县| 榕江县| 绥宁县| 黎川县| 寿宁县| 长阳| 汨罗市| 门源| 昌吉市| 江门市| 松江区| 拉萨市| 桐庐县| 教育| 文登市| 吴忠市| 鲁山县| 綦江县| 汾阳市| 延安市| 永新县| 新邵县| 望谟县| 唐海县| 方城县| 北流市| 古交市| 云和县| 汶川县| 黑龙江省| 云安县| 丰镇市| 定日县| 灵台县| 句容市|