0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

中斷優(yōu)先級(jí)處理的原則及配置 搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)的區(qū)別

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-05-18 15:10 ? 次閱讀

首先我們需要知道什么是中斷優(yōu)先級(jí):中斷優(yōu)先級(jí)是CPU響應(yīng)中斷的先后順序

中斷優(yōu)先處理的原則是:

  1. 先響應(yīng)優(yōu)先級(jí)高的中斷請(qǐng)求,再響應(yīng)優(yōu)先級(jí)低的中斷請(qǐng)求。
  2. 如果一個(gè)中斷請(qǐng)求己被響應(yīng),同級(jí)的其他中斷請(qǐng)求將被禁止。
  3. 如果同級(jí)的多個(gè)中斷請(qǐng)求同時(shí)出現(xiàn)

中斷優(yōu)先級(jí)是CPU響應(yīng)中斷的先后順序。中斷優(yōu)先處理的原則是:

  1. 先響應(yīng)優(yōu)先級(jí)高的中斷請(qǐng)求,再響應(yīng)優(yōu)先級(jí)低的中斷請(qǐng)求。
  2. 如果一個(gè)中斷請(qǐng)求己被響應(yīng),同級(jí)的其他中斷請(qǐng)求將被禁止。
  3. 如果同級(jí)的多個(gè)中斷請(qǐng)求同時(shí)出現(xiàn),CPU則按單片機(jī)內(nèi)部的自然優(yōu)先級(jí)順序響應(yīng)各中斷請(qǐng)求。

單片機(jī)內(nèi)部自然優(yōu)先級(jí)順序(由高到低)為:

外部中斷0→定時(shí)器0中斷→外部中斷l(xiāng)→定時(shí)器1中斷→串行接口中斷

中斷優(yōu)先級(jí)的配置:

首先,對(duì)STM32中斷進(jìn)行分組,組0-4.同時(shí),對(duì)每個(gè)中斷設(shè)置一個(gè)搶占優(yōu)先級(jí)和一個(gè)響應(yīng)優(yōu)先級(jí)

分組配置是在寄存器SCB->AIRCR中配置

poYBAGKEmM2AAkp_AABlzIctiLU297.png

搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)的區(qū)別
高優(yōu)先級(jí)的搶占優(yōu)先級(jí)是可以打斷正在進(jìn)行的低搶占優(yōu)先級(jí)中斷的。

搶占優(yōu)先級(jí)相同的中斷,高響應(yīng)優(yōu)先級(jí)不可以打斷低響應(yīng)優(yōu)先級(jí)的中斷。

搶占優(yōu)先級(jí)相同的中斷,當(dāng)兩個(gè)中斷同時(shí)發(fā)生的情況下,哪個(gè)響應(yīng)優(yōu)先級(jí)高,哪個(gè)先執(zhí)行。

如果兩個(gè)中斷的搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)都是一樣的話,則看哪個(gè)中斷先發(fā)生就先執(zhí)行。

使用講解 :
實(shí)際在使用中我們可以根據(jù)實(shí)際情況設(shè)置相應(yīng)的優(yōu)先級(jí)分組。

特別注意:一個(gè)程序代碼里只能有一個(gè)中斷優(yōu)先級(jí)分組,存在多個(gè) 優(yōu)先級(jí)分組可能會(huì)導(dǎo)致程序出現(xiàn)奇奇怪怪的錯(cuò)誤!

poYBAGKEm8GALyznAAGvpmciYEA297.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6052

    文章

    44768

    瀏覽量

    642821
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10977

    瀏覽量

    214494
  • 中斷優(yōu)先級(jí)

    關(guān)注

    0

    文章

    22

    瀏覽量

    9479
收藏 人收藏
  • lovecmy1

評(píng)論

相關(guān)推薦

配電柜—斷電危機(jī)?配電柜故障排查優(yōu)先級(jí)指南

在排查配電柜故障過程中,合理安排排查優(yōu)先級(jí)至關(guān)重要。下面聊一下如何科學(xué)合理安排配電柜故障排查優(yōu)先級(jí)順序。
的頭像 發(fā)表于 03-06 18:55 ?103次閱讀
配電柜—斷電危機(jī)?配電柜故障排查<b class='flag-5'>優(yōu)先級(jí)</b>指南

freertos中斷優(yōu)先級(jí)在哪設(shè)置

FreeRTOS是一個(gè)流行的實(shí)時(shí)操作系統(tǒng),它廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)。在FreeRTOS中,中斷優(yōu)先級(jí)是一個(gè)重要的概念,因?yàn)樗鼪Q定了中斷處理的順序和
的頭像 發(fā)表于 09-02 14:17 ?1013次閱讀

APS智能優(yōu)化排產(chǎn)軟件的優(yōu)先級(jí)應(yīng)用

資源、訂單需求和約束條件,自動(dòng)計(jì)算出最優(yōu)的生產(chǎn)計(jì)劃。在這個(gè)過程中,訂單排產(chǎn)的優(yōu)先規(guī)則起著至關(guān)重要的作用。1.交期優(yōu)先級(jí)交期優(yōu)先級(jí)是訂單排產(chǎn)中最基本的優(yōu)先規(guī)則。根據(jù)
的頭像 發(fā)表于 06-26 17:43 ?549次閱讀
APS智能優(yōu)化排產(chǎn)軟件的<b class='flag-5'>優(yōu)先級(jí)</b>應(yīng)用

ESP32S2如何設(shè)置中斷優(yōu)先級(jí)?

ESP32S2有六級(jí)中斷, 如何設(shè)置中斷優(yōu)先級(jí)? 比如在GPIO例程里 ,這種中斷優(yōu)先級(jí)是如何設(shè)
發(fā)表于 06-21 07:59

請(qǐng)問有什么方法降低WIFI中斷優(yōu)先級(jí)?

因?yàn)轫?xiàng)目對(duì)時(shí)序輸出要求比較嚴(yán)格,WIFI中斷優(yōu)先級(jí)比硬件定時(shí)器中斷優(yōu)先級(jí)要高,在定時(shí)器中斷里面對(duì)GPIO管腳控制被延長(zhǎng)執(zhí)行,請(qǐng)問有什么方法降
發(fā)表于 06-19 07:37

為什么不能在不同的優(yōu)先級(jí)中安裝相同的處理程序?

在不同的優(yōu)先級(jí)中安裝相同的處理程序? 我需要一個(gè)解決方案,在不同的優(yōu)先級(jí)中安裝相同的處理程序(ISR),以便在我的項(xiàng)目中處理 CAT2
發(fā)表于 05-31 08:16

如何在不同優(yōu)先級(jí)安裝相同的處理程序?

在不同的優(yōu)先級(jí)中安裝相同的處理程序? 我需要一個(gè)解決方案,在不同的優(yōu)先級(jí)中安裝相同的處理程序(ISR),以便在我的項(xiàng)目中處理 CAT2
發(fā)表于 05-28 08:13

systick的中斷優(yōu)先級(jí)是否應(yīng)該設(shè)置為最高優(yōu)先級(jí)的嵌套中斷

最近在學(xué)習(xí)ucosii有這樣一個(gè)疑問,關(guān)于stm32的systick作為ucosii的基準(zhǔn)時(shí)鐘,systick的中斷優(yōu)先級(jí)是否應(yīng)該設(shè)置為最高優(yōu)先級(jí)的嵌套中斷。理由是什么?各位大俠求指教
發(fā)表于 05-16 06:44

stm32的中斷優(yōu)先級(jí)分組了之后還能改分組嗎?

如標(biāo)題所示,stm32的中斷優(yōu)先級(jí)分組了之后還能改分組嗎? 比如我要使用外部中斷EXIT2,3,我在配置的時(shí)候配置
發(fā)表于 05-13 08:40

創(chuàng)建了兩個(gè)task如果一個(gè)優(yōu)先級(jí)高 一個(gè)優(yōu)先級(jí)低,高優(yōu)先級(jí)的那個(gè)一直在做,什么時(shí)候會(huì)調(diào)度到低優(yōu)先級(jí)的呢?

創(chuàng)建了兩個(gè)task如果一個(gè)優(yōu)先級(jí)高一個(gè)優(yōu)先級(jí)低, 我看到任務(wù)的函數(shù)都是用死循環(huán)做的,那個(gè)高優(yōu)先級(jí)的那個(gè)一直在做,什么時(shí)候會(huì)調(diào)度到低優(yōu)先級(jí)的呢?
發(fā)表于 05-13 07:13

STM8中斷優(yōu)先級(jí)不夠怎么解決?

STM8L 中,中斷優(yōu)先級(jí)通過下面函數(shù)設(shè)置,但此處僅 ITC_PriorityLevel_1,ITC_PriorityLevel_2,ITC_PriorityLevel_3總共才3個(gè)中斷優(yōu)先級(jí)
發(fā)表于 05-06 06:54

求助,關(guān)于stm32F4中斷優(yōu)先級(jí)0無法搶占的問題求解

搶占優(yōu)先級(jí)具有最高優(yōu)先級(jí)別。 現(xiàn)在我使用兩個(gè)定時(shí)器: 1)TIM2設(shè)置優(yōu)先級(jí)為0,TIM4設(shè)置優(yōu)先級(jí)為1 2)若先啟動(dòng)TIM4,延時(shí)一下再啟動(dòng)TIM2(為了先觸發(fā)定時(shí)器4
發(fā)表于 04-23 07:26

關(guān)于stm32cube中freertos的優(yōu)先級(jí)設(shè)置問題求解

在用stm32cube中freertos,在配置界面里設(shè)置為12級(jí)任務(wù)優(yōu)先級(jí),但是在cube中配置每個(gè)任務(wù)優(yōu)先級(jí)時(shí)還是只能選擇7種
發(fā)表于 04-22 07:25

如何測(cè)試STM32中斷搶占,為何優(yōu)先級(jí)高的定時(shí)器2居然一次都搶不到中斷了呢?

個(gè)位大佬你們是如何測(cè)試STM32中斷搶占的,我的測(cè)試步驟如下:第一步、我配置了兩個(gè)定時(shí)器,定時(shí)器2優(yōu)先級(jí)為3,定時(shí)器3優(yōu)先級(jí)為4, 第二步、
發(fā)表于 04-22 06:31

嵌入式實(shí)時(shí)操作系統(tǒng)優(yōu)先級(jí)搶占式調(diào)度機(jī)制解析

當(dāng)搶占發(fā)生時(shí),任務(wù)即使沒有完成也會(huì)被迫放棄處理器,此時(shí)任務(wù)并沒有被掛起,而是會(huì)返回就緒隊(duì)列。任務(wù)在隊(duì)列中的位置是由優(yōu)先級(jí)決定的,它會(huì)在隊(duì)列中等待到下一次被調(diào)度。
的頭像 發(fā)表于 04-05 05:22 ?3161次閱讀
嵌入式實(shí)時(shí)操作系統(tǒng)<b class='flag-5'>優(yōu)先級(jí)</b><b class='flag-5'>搶占</b>式調(diào)度機(jī)制解析

電子發(fā)燒友

中國(guó)電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品