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

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

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

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

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

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

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

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

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

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

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

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

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

首先,對STM32中斷進行分組,組0-4.同時,對每個中斷設置一個搶占優(yōu)先級和一個響應優(yōu)先級

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

poYBAGKEmM2AAkp_AABlzIctiLU297.png

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

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

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

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

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

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

poYBAGKEm8GALyznAAGvpmciYEA297.png

審核編輯:湯梓紅

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

    關(guān)注

    6030

    文章

    44489

    瀏覽量

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

    關(guān)注

    68

    文章

    10804

    瀏覽量

    210843
  • 中斷優(yōu)先級
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    9339
收藏 人收藏

    評論

    相關(guān)推薦

    freertos中斷優(yōu)先級在哪設置

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

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

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

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

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

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

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

    systick的中斷優(yōu)先級是否應該設置為最高優(yōu)先級的嵌套中斷?

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

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

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

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

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

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

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

    STM32F103的寄存器NVIC_IPRx搶占優(yōu)先級和子優(yōu)先級是怎么設置的?

    STM32F103的寄存器NVIC_IPRx有些不明白,搶占優(yōu)先級和子優(yōu)先級是怎么設置的? 如果,中斷分組2,搶占優(yōu)先級3,子優(yōu)先級3
    發(fā)表于 03-27 07:48

    Hightec對芯片中斷優(yōu)先級分配時,中斷號越高中斷優(yōu)先級越高嗎?

    請問大佬,Hightec對芯片中斷優(yōu)先級分配時,中斷號越高中斷優(yōu)先級越高嗎?看網(wǎng)上的帖子說中斷
    發(fā)表于 02-27 06:13

    RTTnano的用戶main函數(shù)中的優(yōu)先級是多少?

    RTTnano 的用戶main函數(shù)中的優(yōu)先級是多少?為什么會出現(xiàn)創(chuàng)建新的task之后,main函數(shù)會搶占掉低優(yōu)先級的task,例如RT_THREAD_PRIORITY_MAX設置為8 ,低于3
    發(fā)表于 02-26 08:01

    華為和思科默認路由優(yōu)先級

    優(yōu)先級值不同,則優(yōu)先級值最小的為最優(yōu)路由(無論開銷值是否相同,另一種理解就是對不同路由來源或路由協(xié)議之間的比較)。
    的頭像 發(fā)表于 01-11 10:47 ?1037次閱讀

    GD32如何配置中斷優(yōu)先級分組以及中斷優(yōu)先級

    使用GD32 MCU的過程中,大家可能會有以下疑問:中斷優(yōu)先級如何配置和使用?
    的頭像 發(fā)表于 01-10 10:30 ?2870次閱讀
    GD32如何<b class='flag-5'>配置</b><b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級</b>分組以及<b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級</b>

    python中運算符的優(yōu)先級大小

    Python中運算符的優(yōu)先級決定了表達式中各個運算符的計算順序。了解運算符的優(yōu)先級對于正確理解和編寫復雜的表達式非常重要。本文將詳細介紹Python中運算符的優(yōu)先級,并給出一些示例來幫助讀者更好地理
    的頭像 發(fā)表于 11-29 16:21 ?3075次閱讀

    python運算符優(yōu)先級順序口訣

    Python是一種非常流行的編程語言,具有廣泛的應用領(lǐng)域。在Python中,運算符是進行各種數(shù)學和邏輯運算的關(guān)鍵部分。了解運算符的優(yōu)先級順序?qū)τ谡_理解和書寫Python代碼至關(guān)重要。在本文中,我們
    的頭像 發(fā)表于 11-22 14:34 ?2058次閱讀