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

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式分享

中斷的運(yùn)行并非 “瞬間完成”,而是遵循一套嚴(yán)謹(jǐn)?shù)挠布c軟件協(xié)同流程,從 “事件觸發(fā)” 到 “任務(wù)恢復(fù)” 可分為五個(gè)核心階段:中斷請(qǐng)求、中斷響應(yīng)、現(xiàn)場(chǎng)保護(hù)、執(zhí)行 ISR、現(xiàn)場(chǎng)恢復(fù)與返回。每個(gè)階段都有明確的硬件邏輯與軟件規(guī)則,確保中斷處理的正確性與高效性。

(一)中斷請(qǐng)求:事件的 “信號(hào)傳遞”

中斷流程的起點(diǎn)是 “中斷請(qǐng)求(IRQ, Interrupt Request)”—— 當(dāng)外設(shè)或內(nèi)部模塊發(fā)生特定事件時(shí)(如按鍵按下導(dǎo)致 GPIO 引腳電平變化、定時(shí)器計(jì)數(shù)達(dá)到設(shè)定值、串口接收緩沖區(qū)有數(shù)據(jù)),會(huì)向 MCU 的 “中斷控制器” 發(fā)送一個(gè)硬件信號(hào)(通常是電平信號(hào)或脈沖信號(hào)),表明 “需要緊急處理”。

不同嵌入式芯片的中斷請(qǐng)求機(jī)制存在差異,但核心邏輯一致:首先,外設(shè)需具備 “中斷使能” 開(kāi)關(guān) —— 只有當(dāng)外設(shè)自身的中斷使能位被置 1 時(shí),事件發(fā)生才會(huì)觸發(fā) IRQ(例如,要讓串口接收數(shù)據(jù)觸發(fā)中斷,需先開(kāi)啟串口的 “接收中斷使能位”);其次,中斷請(qǐng)求需經(jīng)過(guò) “同步電路”—— 由于外設(shè)時(shí)鐘與 MCU 核心時(shí)鐘可能不同步(如外設(shè)用 32kHz 時(shí)鐘,核心用 100MHz 時(shí)鐘),IRQ 信號(hào)需經(jīng)過(guò) 1-2 個(gè)核心時(shí)鐘周期的同步,避免 metastability(亞穩(wěn)態(tài))導(dǎo)致的信號(hào)誤判;最后,中斷請(qǐng)求會(huì)被暫存在中斷控制器的 “掛起寄存器(Pending Register)” 中,等待 MCU 響應(yīng) —— 即使 MCU 暫時(shí)無(wú)法處理(如正在執(zhí)行更高優(yōu)先級(jí)任務(wù)),IRQ 信號(hào)也會(huì)被掛起保存,不會(huì)丟失。

(二)中斷響應(yīng):MCU 的 “優(yōu)先級(jí)判斷”

當(dāng) MCU 接收到中斷請(qǐng)求后,并非立即響應(yīng),而是先進(jìn)行 “中斷響應(yīng)條件判斷”,核心是 “是否允許中斷” 與 “中斷優(yōu)先級(jí)是否足夠高”。

首先是 “全局中斷使能” 判斷:MCU 有一個(gè) “全局中斷使能位”(如 ARM Cortex-M 系列的 PRIMASK 寄存器),只有當(dāng)該位為 0 時(shí)(全局中斷允許),MCU 才會(huì)響應(yīng)中斷;若該位為 1(全局中斷禁止),則所有可屏蔽中斷都會(huì)被忽略,僅不可屏蔽中斷(NMI)能強(qiáng)制響應(yīng) —— 這一機(jī)制用于處理 “臨界區(qū)”(如主程序與 ISR 共享數(shù)據(jù)時(shí),需禁止中斷避免數(shù)據(jù)混亂)。

其次是 “中斷優(yōu)先級(jí)判斷”:當(dāng)多個(gè)中斷請(qǐng)求同時(shí)掛起時(shí),中斷控制器會(huì)根據(jù)預(yù)設(shè)的 “中斷優(yōu)先級(jí)”,選擇優(yōu)先級(jí)最高的中斷進(jìn)行響應(yīng)。嵌入式系統(tǒng)的中斷優(yōu)先級(jí)通常分為 “搶占優(yōu)先級(jí)” 與 “子優(yōu)先級(jí)”(如 Cortex-M NVIC 控制器):搶占優(yōu)先級(jí)高的中斷可打斷正在執(zhí)行的低搶占優(yōu)先級(jí) ISR(即 “中斷嵌套”);若兩個(gè)中斷的搶占優(yōu)先級(jí)相同,則比較子優(yōu)先級(jí),子優(yōu)先級(jí)高的先響應(yīng);若搶占優(yōu)先級(jí)與子優(yōu)先級(jí)均相同,則按 “中斷編號(hào)” 的默認(rèn)順序響應(yīng)(如編號(hào)小的優(yōu)先)。例如,“電機(jī)過(guò)載保護(hù)中斷”(搶占優(yōu)先級(jí) 1)可打斷正在執(zhí)行的 “按鍵掃描中斷”(搶占優(yōu)先級(jí) 2),而 “串口接收中斷” 與 “SPI 接收中斷”(均為搶占優(yōu)先級(jí) 2,子優(yōu)先級(jí) 1 2)則按子優(yōu)先級(jí)順序響應(yīng)。

當(dāng)滿(mǎn)足響應(yīng)條件時(shí),MCU 會(huì)啟動(dòng) “中斷響應(yīng)序列”:首先,禁止同優(yōu)先級(jí)及更低優(yōu)先級(jí)的中斷(防止響應(yīng)過(guò)程中被打斷);其次,自動(dòng)保存 “上下文現(xiàn)場(chǎng)”—— 將當(dāng)前的程序計(jì)數(shù)器(PC,記錄下一條要執(zhí)行的指令地址)、程序狀態(tài)寄存器(PSR,記錄 CPU 狀態(tài))、通用寄存器(R0-R3 等)的值壓入棧(Stack)中,確保后續(xù)能準(zhǔn)確恢復(fù)常規(guī)任務(wù);最后,根據(jù) “中斷向量表” 找到對(duì)應(yīng)的 ISR 入口地址,將 PC 指向該地址,正式進(jìn)入 ISR 執(zhí)行階段。

(三)現(xiàn)場(chǎng)保護(hù)與 ISR 執(zhí)行:事件的 “核心處理”

盡管 MCU 在中斷響應(yīng)階段已自動(dòng)保存部分寄存器(如 R0-R3、PC、PSR),但對(duì)于其他通用寄存器(如 R4-R11),若 ISR 中會(huì)修改這些寄存器的值,則需要在 ISR 開(kāi)頭手動(dòng)進(jìn)行 “現(xiàn)場(chǎng)保護(hù)”—— 將這些寄存器的值壓入棧中;若 ISR 中不修改,則無(wú)需保護(hù),以減少處理延遲。這一環(huán)節(jié)的核心原則是 “誰(shuí)修改,誰(shuí)保護(hù)”,避免 ISR 執(zhí)行后,常規(guī)任務(wù)的寄存器值被篡改,導(dǎo)致程序運(yùn)行異常。

中斷服務(wù)程序(ISR)是中斷處理的 “核心邏輯”,其設(shè)計(jì)直接決定中斷處理的效率與可靠性。ISR 的核心要求是 “短小精悍”—— 僅處理與中斷事件直接相關(guān)的必要操作,避免執(zhí)行復(fù)雜運(yùn)算、循環(huán)或調(diào)用耗時(shí)函數(shù)(如 printf、動(dòng)態(tài)內(nèi)存分配)。例如,按鍵中斷的 ISR 應(yīng)僅做 “置位按鍵標(biāo)志位” 或 “讀取按鍵值并緩存”,而將 “按鍵防抖處理”“執(zhí)行按鍵對(duì)應(yīng)的功能(如開(kāi)燈)” 交給主程序;串口接收中斷的 ISR 應(yīng)僅做 “將接收數(shù)據(jù)存入緩沖區(qū)”,而將 “數(shù)據(jù)解析”“數(shù)據(jù)處理” 交給主程序。這樣設(shè)計(jì)的原因在于:ISR 執(zhí)行時(shí)間越長(zhǎng),中斷延遲與嵌套沖突的風(fēng)險(xiǎn)越高,甚至可能導(dǎo)致低優(yōu)先級(jí)中斷被長(zhǎng)期阻塞,丟失重要事件。

此外,ISR 中還需注意 “中斷清除”—— 部分外設(shè)的中斷請(qǐng)求會(huì)在事件發(fā)生后持續(xù)有效(如定時(shí)器溢出中斷),若 ISR 中不手動(dòng)清除 “中斷掛起位”,則 ISR 執(zhí)行完成后,中斷控制器會(huì)認(rèn)為中斷請(qǐng)求仍存在,立即再次觸發(fā)中斷,導(dǎo)致 “中斷風(fēng)暴”(ISR 無(wú)限循環(huán)執(zhí)行)。中斷清除的方式因外設(shè)而異:有的需要清除外設(shè)自身的中斷掛起位(如定時(shí)器的 SR 寄存器),有的需要通過(guò)讀取數(shù)據(jù)自動(dòng)清除(如串口接收數(shù)據(jù)后,讀取 DR 寄存器即可清除接收中斷掛起位)。

(四)現(xiàn)場(chǎng)恢復(fù)與中斷返回:任務(wù)的 “無(wú)縫銜接”

ISR 執(zhí)行完成后,需要進(jìn)行 “現(xiàn)場(chǎng)恢復(fù)” 與 “中斷返回”,確保常規(guī)任務(wù)能從被暫停的位置繼續(xù)執(zhí)行?,F(xiàn)場(chǎng)恢復(fù)與現(xiàn)場(chǎng)保護(hù)相對(duì)應(yīng):若 ISR 開(kāi)頭手動(dòng)保護(hù)了 R4-R11 等寄存器,則需在 ISR 結(jié)尾手動(dòng)將這些寄存器的值從棧中彈出,恢復(fù)原值;若未保護(hù),則無(wú)需操作。

中斷返回的核心是執(zhí)行 “中斷返回指令”(如 ARM Cortex-M 的 BX LR 指令,x86 的 IRET 指令)。當(dāng) MCU 執(zhí)行該指令時(shí),會(huì)自動(dòng)從棧中彈出之前保存的 PC、PSR、R0-R3 等寄存器的值,恢復(fù) CPU 的狀態(tài)與程序計(jì)數(shù)器指向 ——PC 重新指向被中斷的常規(guī)任務(wù)的下一條指令,PSR 恢復(fù)中斷前的 CPU 狀態(tài)(如中斷屏蔽位、條件標(biāo)志位),R0-R3 恢復(fù)原值。同時(shí),中斷控制器會(huì)自動(dòng)清除當(dāng)前中斷的掛起位,并重新允許同優(yōu)先級(jí)及更低優(yōu)先級(jí)的中斷(若之前禁止),至此,整個(gè)中斷流程完成,常規(guī)任務(wù)無(wú)縫銜接繼續(xù)執(zhí)行。
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶(hù)體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉