加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1 中斷基本概念
    • 2 中斷的分類
    • 3 中斷處理具體細(xì)節(jié)
    • 4 總結(jié)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

嵌入式基礎(chǔ)知識-中斷處理過程

2023/08/21
2999
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

本篇來介紹中斷,這是計(jì)算機(jī)系統(tǒng)以及嵌入式系統(tǒng)的重要概念。

1 中斷基本概念

中斷是CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應(yīng)。

中斷的一些基本概念:

中斷源:引起中斷的事件稱為中斷源

中斷請求:中斷源向CPU提出處理的請求稱為中斷請求

中斷向量:中斷源的識別標(biāo)志,中斷服務(wù)程序的入口地址

中斷向量表:按照中斷類型號從小到大的順序存儲對應(yīng)的中斷向量,總共存儲256個中斷向量

斷點(diǎn):發(fā)生中斷時被打斷程序的暫停點(diǎn)稱為斷點(diǎn)

中斷響應(yīng):CPU暫?,F(xiàn)行程序轉(zhuǎn)而為響應(yīng)中斷請求的過程稱為中斷響應(yīng)

關(guān)中斷:在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場過程中都要先關(guān)閉中斷,避免堆棧錯誤

保存現(xiàn)場:保存程序當(dāng)前斷點(diǎn)執(zhí)行所需的寄存器和相關(guān)數(shù)據(jù)

中斷服務(wù)程序:處理中斷源的程序稱為中斷處理程序

中斷處理:CPU執(zhí)行有關(guān)的中斷服務(wù)函數(shù)稱為中斷處理

中斷返回:返回?cái)帱c(diǎn)的過程稱為中斷返回

2 中斷的分類

2.1 硬/軟中斷

按中斷源的不同,可分為:

硬件中斷:由CPU外部的硬件,引入的中斷,是隨機(jī)的

軟件中斷:軟件中斷其實(shí)并不是真正的中斷,它們只是可被調(diào)用執(zhí)行的一般程序,是預(yù)先設(shè)計(jì)的

2.2 外/內(nèi)中斷

根據(jù)中斷源所在的位置,可以分:

外部中斷:一般指由計(jì)算機(jī)外設(shè)發(fā)出的中斷請求,如:鍵盤中斷、打印機(jī)中斷、定時器中斷

內(nèi)部中斷:是指如運(yùn)算出錯(除數(shù)為零、運(yùn)算溢出、單步中斷等)所引起的中斷

2.3 可/非屏蔽中斷

按是否可屏蔽,可分為:

可屏蔽中斷:通過INTR(Interrupt Require)線向CPU請求的中斷,此類中斷并不會影響系統(tǒng)運(yùn)行,可隨時處理,或不處理。此外,除受本身的屏蔽位控制外,還受一個總的中斷允許標(biāo)志位IF(Interrupt ?Flag)的控制

非屏蔽中斷(不可屏蔽中斷):非屏蔽中斷是出現(xiàn)在NMI(Non Maskable Interrupt)線上的請求 ,不受中斷標(biāo)志位IF的影響,內(nèi)部中斷是不可屏蔽的中斷

3 中斷處理具體細(xì)節(jié)

中斷的整個處理過程,由硬件和軟件共同完成,具體處理細(xì)節(jié)如下圖:

根據(jù)此圖,再來分析下各個過程:

關(guān)中斷:進(jìn)入不可響應(yīng)中斷請求的中斷,由硬件自動完成

保存斷點(diǎn):把當(dāng)前的程序計(jì)數(shù)器PC中的內(nèi)容保存起來,用于中斷處理結(jié)束后能繼續(xù)執(zhí)行主程序

識別中斷源:有多個中斷源同時請求時,只能響應(yīng)最高優(yōu)先級的,因此需進(jìn)一步判斷中斷源

保存現(xiàn)場和屏蔽字:進(jìn)入中斷服務(wù)程序后,要先保存現(xiàn)場

設(shè)置新的屏蔽字:用于改變中斷優(yōu)先級和控制中斷的產(chǎn)生

開中斷:執(zhí)行中斷程序時,打開中斷可實(shí)現(xiàn)更高優(yōu)先級的中斷響應(yīng),實(shí)現(xiàn)中斷嵌套

執(zhí)行中斷服務(wù)程序:執(zhí)行中斷服務(wù)程序中的內(nèi)容

再次關(guān)中斷:使得恢復(fù)現(xiàn)場和屏蔽字時不會被中斷打斷

恢復(fù)現(xiàn)場和屏蔽字:使現(xiàn)場和屏蔽字恢復(fù)到中斷之前的狀態(tài)

再次開中斷:中斷執(zhí)行完,現(xiàn)場恢復(fù)完后,可以打開中斷

中斷返回:返回原程序繼續(xù)執(zhí)行

處理過程,會經(jīng)歷兩次的開/關(guān)中斷,也可用下圖描述

4 總結(jié)

本編介紹了中斷基本概念,中斷的分類,以及 中斷處理的具體細(xì)節(jié)

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價格 更多信息
NRF52840-QIAA-R7 1 Nordic Semiconductor Telecom Circuit, 1-Func, PBGA73, AQFN-73
$7.48 查看
CM7V-T1A-LOW-ESR-32.768KHZ-7PF-20-TA-QC 1 Micro Crystal AG Parallel - Fundamental Quartz Crystal,

ECAD模型

下載ECAD模型
$3.02 查看
AT27C512R-45JU-T 1 Microchip Technology Inc OTP ROM, 64KX8, 45ns, CMOS, PQCC32

ECAD模型

下載ECAD模型
$2.23 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

控制科學(xué)與工程碩士,日常分享單片機(jī)、嵌入式、C/C++、Linux等學(xué)習(xí)經(jīng)驗(yàn)干貨~