看到一個交流群在討論關(guān)于【關(guān)于STM32中斷優(yōu)先級的話題】,其中就有小伙伴提到:為什么有些STM32中斷沒有【子優(yōu)先級】? 比如,有時候你在使用STM32CubeMX配置時,你會發(fā)現(xiàn)只有Preemption Priority【搶占優(yōu)先級】,而沒有Sub Priority【次優(yōu)先級】:
這個問題就牽涉到STM32,準(zhǔn)確的來說的是 Cortex-M NVIC嵌套向量中斷控制器的問題。
下面就展開來說說關(guān)于ARM單片機(jī)NVIC的內(nèi)容。
關(guān)于Cortex-M的NVIC
NVIC:Nested Vectored Interrupt Controller,嵌套向量中斷控制器。 在每個Cortex-M內(nèi)核中都有這么一個NVIC嵌套向量中斷控制器,當(dāng)MCU使用的內(nèi)核不同,其中的NVIC也可能不同。 比如,Cortex-M0和Cortex-M3內(nèi)核中NVIC功能就不同。 其中,中斷優(yōu)先級分組功能就不同。 Cortex-M0的NVIC沒有優(yōu)先級分組功能,Cortex-M3、 M4、M7有分組功能。
NVIC寄存器
NVIC寄存器,需查看對應(yīng)的內(nèi)核(Cortex-M)手冊,在ARM官網(wǎng)能找到(M3也有對應(yīng)的中文翻譯版,大家可以自己網(wǎng)上搜索)。 內(nèi)核中的寄存器和我們STM32參考手冊中寄存器一樣,不同的Bit位代表含義不同。 但是,對于NVIC來說,由于包含眾多優(yōu)先級相關(guān)配置,寄存器數(shù)量相對較多(NVIC寄存器族)。

中斷入口
額外提下一個小伙伴問的問題:為什么外部中斷8和9都使用同一個中斷?
void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line8) != RESET)
{
/* 代碼 */
EXTI_ClearITPendingBit(EXTI_Line8);
}
if(EXTI_GetITStatus(EXTI_Line9) != RESET)
{
/* 代碼 */
EXTI_ClearITPendingBit(EXTI_Line9);
}
}
我想,這個問題應(yīng)該不難。好比一個main程序入口,進(jìn)入之后需要處理很多事情,只是在里面需要區(qū)分事件。
很多外設(shè)中斷,都會使用同一個中斷入口,有一個原因:節(jié)約中斷入口資源分配。
像USART發(fā)送和接收中斷,TIM不同通道捕獲中斷等。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
mcu
+關(guān)注
關(guān)注
146文章
17978瀏覽量
366656 -
控制器
+關(guān)注
關(guān)注
114文章
17100瀏覽量
184220 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
364767
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
ADL5308可以通過軟件和硬件配置的參數(shù),配置的優(yōu)先級是什么?
你好,麻煩問一下ADL5308可以通過軟件和硬件配置的參數(shù),配置的優(yōu)先級是什么?有沒有更詳細(xì)的寄存器配置手冊,截距配置的步進(jìn)是多少?
發(fā)表于 06-10 06:39
第十章 W55MH32中斷應(yīng)用概覽
本章講述了W55MH32中斷應(yīng)用,涵蓋異常類型、NVIC介紹、優(yōu)先級定義與分組,闡述中斷編程三要點(diǎn)(使能中斷、配置 NVIC、編寫服務(wù)函數(shù)),并強(qiáng)調(diào)

CyU3PDebugPrint的最高優(yōu)先級和最低優(yōu)先級是什么?
[i]CyU3PDebugPrint的最高優(yōu)先級和最低優(yōu)先級是什么?
發(fā)表于 05-13 08:22
一天一個嵌入式面試知識(1:中斷處理機(jī)制詳解)
立即響應(yīng)(優(yōu)先級高)
需經(jīng)過系統(tǒng)調(diào)度(優(yōu)先級可控)
典型應(yīng)用
外部事件響應(yīng)(如UART數(shù)據(jù)到達(dá))
系統(tǒng)服務(wù)調(diào)用(如文件讀寫)
三、中斷處理流程解析
以STM32為例,
發(fā)表于 03-21 10:18
配電柜—斷電危機(jī)?配電柜故障排查優(yōu)先級指南
在排查配電柜故障過程中,合理安排排查優(yōu)先級至關(guān)重要。下面聊一下如何科學(xué)合理安排配電柜故障排查優(yōu)先級順序。

c51單片機(jī)中斷
優(yōu)先級的中斷正在處理,CPU 會暫停當(dāng)前正在執(zhí)行的指令,將程序計(jì)數(shù)器(PC)等關(guān)鍵寄存器的值保存到堆棧中,然后根據(jù)中斷源找到對應(yīng)的中斷向量地
發(fā)表于 11-25 21:43
瑞薩ethercat中斷對程序中其他周期性中斷的影響
瑞薩ethercat數(shù)據(jù)收發(fā)中斷對程序中其他周期計(jì)時中斷的影響要如何解決,周期中斷里通過配置GPT進(jìn)行pwm的輸出,對時間要求嚴(yán)格,ethercat的通信數(shù)據(jù)收發(fā)
發(fā)表于 11-21 18:34
使用CH32V103C8TC設(shè)置中斷優(yōu)先級分組時,編譯報錯的原因?
使用CH32V103C8TC設(shè)置中斷優(yōu)先級分組時,設(shè)置為NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);編譯報錯
而使用NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
卻不會報
發(fā)表于 09-27 06:03
CH32V103 使用中斷優(yōu)先級分組0時報錯
使用CH32V103C8TC設(shè)置中斷優(yōu)先級分組時,設(shè)置為NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);而使用NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);卻不會報錯
發(fā)表于 09-23 13:52
STM32CUBEMX(11)--外部中斷(EXTI)
的優(yōu)先權(quán),數(shù)值越低優(yōu)先級越高。
同理,如果搶占優(yōu)先級相同,那么就會比較子優(yōu)先級,子
發(fā)表于 09-10 15:44
車載以太網(wǎng)交換機(jī)入門基本功(4)—優(yōu)先級設(shè)計(jì)與VLAN測試
VLAN通過報文Tag、交換機(jī)端口屬性、交換機(jī)端口過濾功能得以實(shí)現(xiàn),并通過優(yōu)先級和隊(duì)列實(shí)現(xiàn)轉(zhuǎn)發(fā)的有效調(diào)度。為了驗(yàn)證交換機(jī)芯片的功能實(shí)現(xiàn),需要參考OPEN聯(lián)盟的TC11交換機(jī)芯片測試規(guī)范,包括通用測試、地址解析、VLAN等9個方面,此外,實(shí)時更進(jìn)規(guī)范修改方案并與讀者分享。

在汽車區(qū)域模塊中使用理想二極管的優(yōu)先級電源多路復(fù)用器
電子發(fā)燒友網(wǎng)站提供《在汽車區(qū)域模塊中使用理想二極管的優(yōu)先級電源多路復(fù)用器.pdf》資料免費(fèi)下載
發(fā)表于 09-05 11:08
?0次下載

freertos中斷優(yōu)先級在哪設(shè)置
FreeRTOS是一個流行的實(shí)時操作系統(tǒng),它廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)。在FreeRTOS中,中斷優(yōu)先級是一個重要的概念,因?yàn)樗鼪Q定了中斷處理的順序和響應(yīng)時間。 1. 理解
stm32怎樣觸發(fā)軟件中斷
STM32中,您需要配置NVIC以啟用所需的中斷。這包括設(shè)置中斷通道、優(yōu)先級和觸發(fā)條件。 編寫中斷
【「ARM MCU嵌入式開發(fā) | 基于國產(chǎn)GD32F10x芯片」閱讀體驗(yàn)】+閱讀中斷篇
優(yōu)先級的中斷程序正在執(zhí)行時發(fā)生了一個高搶占式優(yōu)先級的中斷,則第1個中斷要暫停,以此來響應(yīng)這個新的中斷
發(fā)表于 09-01 23:59
評論