ARM單片機(jī)三種中斷返回情況的分析與解決_第1頁(yè)
ARM單片機(jī)三種中斷返回情況的分析與解決_第2頁(yè)
ARM單片機(jī)三種中斷返回情況的分析與解決_第3頁(yè)
ARM單片機(jī)三種中斷返回情況的分析與解決_第4頁(yè)
ARM單片機(jī)三種中斷返回情況的分析與解決_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

片機(jī)三種中斷返回情況的分析與解決 片機(jī)是大多數(shù)新手選擇的入門(mén)切入點(diǎn),但由于知識(shí)的不足,在設(shè)計(jì)過(guò)程中新手們經(jīng)常會(huì)遇到這樣或那樣的問(wèn)題, 常中斷返回就是這樣一種令人頭疼的問(wèn)題。在使用問(wèn)題中異常中斷返回是新手們較為苦惱的問(wèn)題,本文就將對(duì) 常中斷的集中情況進(jìn)行總結(jié),并給出了一些解決方法。 在正式介紹之前,要為大家補(bǔ)充一些較為重要的基礎(chǔ)知識(shí)。首先 是指向 “正在取指 ”的指令,而不是指向 “正在執(zhí)行 ”的指令或正在 “譯碼 ”的指令。一般來(lái)說(shuō),人們習(xí)慣性約定將 “正在執(zhí)行的指令作為參考點(diǎn) ”,稱(chēng)之為當(dāng)前第一條指令,因此 是指向第三條指令。當(dāng) 態(tài)時(shí),每條指令為 4 字節(jié)長(zhǎng),所以 終指向該指令地址加 8 字節(jié)的地址,即: =當(dāng)前程序執(zhí)行位置 +8;而 的 為了調(diào)試看著方便而修改過(guò)的,它指向的是正在執(zhí)行的指令,即 “真正 未定義指令異常中斷的返回 指令 地址: A 前指令為 未定義指令,此時(shí)發(fā)生中斷 A+4 斷時(shí)處理器將 存到 ;r! A+8 回時(shí),從發(fā)生中斷的指令 A( 下一條指令 A+4( 開(kāi)始執(zhí)行,所以直接把 值賦給 行了,具體指令為 C, +4= 白話(huà)解釋?zhuān)簩?duì)于 未定義指令發(fā)生異常時(shí) 有更新,根據(jù) 三級(jí)流水線原理, 有更新,仍然等于( A+8) ; 4(這時(shí)處理器決定的,無(wú)法更 改!)即A+4。 由于這類(lèi)異常返回后應(yīng)執(zhí)行下一條指令( A+4),所以返回時(shí), pc=可。 常中斷處理的返回指令地址對(duì)應(yīng)于 ,行此指令完成后(!)查詢(xún) 果有中斷請(qǐng)求則產(chǎn)生中斷。 A+4 +8 (此時(shí) 值已經(jīng)更新,指向 A+A+8)。 保存到 接著執(zhí)行 A+4( 的指令,所以返回指令為: C, #4( +4= 白話(huà)解釋?zhuān)?對(duì)于普中斷和快中斷異常,中斷必須在一條指令執(zhí)行完以后被檢測(cè)到,如正在執(zhí)行指令甲時(shí)發(fā)生了中斷,不等指令甲執(zhí)行完是不會(huì)處理該中斷的,發(fā)生異常時(shí) A+12) ; lr=4(這時(shí)處理器決定的,無(wú)法更改?。┘?A+8 返回后,應(yīng)執(zhí)行被中斷而沒(méi)有執(zhí)行的指令(上面的A+4),所以返回時(shí), 指令預(yù)取中止異常中斷處理的返回 指令地址: A 行本指令時(shí)發(fā)生中斷, A+4 理器將 A+4( 存到: ;A+8 回時(shí),發(fā)生指令預(yù)取中 止的指令 A( 重新執(zhí)行,所以返回指令為 C, #4( = 白話(huà)解釋?zhuān)簩?duì)于預(yù)取指令中止異常發(fā)生預(yù)取指令異常時(shí),是在執(zhí)行時(shí)發(fā)生的異常, 更新,即 +8;lr= 4(這時(shí)處理器決定的,無(wú)法更改?。┘?A+4。 由于這類(lèi)異常返回后應(yīng)重新執(zhí)行異常的那個(gè)指令( A),所以返回時(shí), 數(shù)據(jù)訪問(wèn)中止異常中斷處理的返回 指令地址: A 指令訪問(wèn)有問(wèn)題的數(shù)據(jù),產(chǎn)生中斷時(shí), 值已經(jīng)更新。 A+4 斷發(fā)生時(shí) +12,處理器將 A+8( 存到 A+8 返回時(shí),要返回到 A 處繼續(xù)執(zhí)行,所以指令為 C,#8.( = 白話(huà)解釋?zhuān)簩?duì)于數(shù)據(jù)訪問(wèn)中止異常時(shí),是在執(zhí)行時(shí)訪問(wèn)數(shù)據(jù)錯(cuò)誤。 導(dǎo)致的異常, 經(jīng)更新,即 +12。 lr=(這時(shí)處理器決定的,無(wú)法更改!)即 A+8。 由于這類(lèi)異常返回后應(yīng)重新執(zhí)行異常的那個(gè)指令( A),所以返回時(shí), pc= 總結(jié) 引起 新的原因一種是數(shù)據(jù)中止,還有就是中斷了。 中斷必須是在一條指令執(zhí)行完畢后才能被檢測(cè)到,所以它中斷的只是還未執(zhí)行的那條。指令( 所以 pc= 4; 與中斷相同, 未定義指令異常也是返回到下一條指令( 只是他們?cè)趫?zhí)行時(shí), 值并沒(méi)有更新,所以 預(yù)取指令中止異常,也沒(méi)有發(fā)生 新,但它還得重新執(zhí)行發(fā)生異常的那條指令,所以 pc=。 數(shù)據(jù)訪問(wèn)中止異常,發(fā)生了 新,并且它也需要重新執(zhí)行發(fā)生異常的那條指令,所以 pc=。 通過(guò)以上的介紹,可以看到造成單片機(jī)中斷返回的原因非常多 ,每種方法的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論