精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

關于Cortex-M0的NVIC沒有優先級分組功能,以及衍生內容

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 作者:黃工的嵌入式技術 ? 2020-03-01 13:08 ? 次閱讀

今天遍地都是520的消息,華為也是熱點。我們可以關注熱點,自己的事還得繼續做下去。

1寫在前面

今天在一個交流群看到有人問,為什么NVIC沒有優先級分組配置的選項,如下如:

這個問題,想必沒有遇到過的人,還以為是STM32CubeMX的Bug。

其實,答案很簡單:有的MCU是沒有NVIC分組功能。

下面就針對這個NVIC分組功能展開來講述。

2關于Cortex-M的NVIC

NVIC:Nested Vectored Interrupt Controller,嵌套向量中斷控制器

在每個Cortex-M內核中都有這么一個NVIC嵌套向量中斷控制器,當MCU使用的內核不同,其中的NVIC也可能不同。

比如,Cortex-M0和Cortex-M3內核中NVIC功能就不同。

其中,中斷優先級分組功能就不同。

Cortex-M0的NVIC沒有優先級分組功能,Cortex-M3、 M4、M7有分組功能。

所以,你在使用STM32CubeMX配置時,M0內核的STM32是沒有那個選項的。

Cortex-M0包含STM32F0、L0、G0等處理器

對底層感興趣的朋友可以繼續往下看。

3NVIC寄存器

NVIC寄存器,需查看對應的內核(Cortex-M)手冊,在ARM官網能找到。

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0432c/index.html

M3也有對應的中文翻譯版,大家可以自己網上搜索。

內核中的寄存器和我們STM32參考手冊中寄存器一樣,不同的Bit位代表含義不同。

但是,對于NVIC來說,由于包含眾多優先級相關配置,寄存器數量相對較多(NVIC寄存器族)。

拿M3來說,優先級分組的配置,位于NVIC的AIRCR應用程序中斷及復位控制寄存器中:

這里推薦閱讀之前我寫過的一篇文章:STM32中斷,及FreeRTOS中斷優先級配置

4中斷入口

前兩天有人問題外部中斷入口的問題:為什么外部中斷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); }}

我想,這個問題應該不難。

好比一個main程序入口,進入之后需要處理很多事情,只是在里面需要區分事件。

很多外設中斷,都會使用同一個中斷入口,有一個原因:節約中斷入口資源分配。

像USART發送和接收中斷,TIM不同通道捕獲中斷等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2266

    文章

    10876

    瀏覽量

    354925
  • Cortex
    +關注

    關注

    2

    文章

    202

    瀏覽量

    46449
  • NVIC
    +關注

    關注

    0

    文章

    35

    瀏覽量

    11680
收藏 人收藏

    評論

    相關推薦

    使用CH32V103C8TC設置中斷優先級分組時,編譯報錯的原因?

    使用CH32V103C8TC設置中斷優先級分組時,設置為NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);編譯報錯 而使用
    發表于 09-27 06:03

    CH32V103 使用中斷優先級分組0時報錯

    使用CH32V103C8TC設置中斷優先級分組時,設置為NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);而使用
    發表于 09-23 13:52

    freertos中斷優先級在哪設置

    FreeRTOS是一個流行的實時操作系統,它廣泛應用于嵌入式系統開發。在FreeRTOS中,中斷優先級是一個重要的概念,因為它決定了中斷處理的順序和響應時間。 1. 理解中斷優先級 在討論如何設置
    的頭像 發表于 09-02 14:17 ?564次閱讀

    systick的中斷優先級是否應該設置為最高優先級的嵌套中斷?

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

    請問stm32的cortex-m0怎么樣?

    為什么都說STM32專業做M3 ,M4,M0要找芯唐和NXP,難道因為ST的CORTEX-M0芯片不穩定還是有其他問題?
    發表于 05-15 06:31

    stm32的中斷優先級分組了之后還能改分組嗎?

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

    請問stm32f030R8的中斷優先級分組如何設置?

    官方的庫函數中沒有中斷優先級分組的函數 查閱了M0的手冊也沒有找到SCB->AIRCR寄存器詳細的說明
    發表于 05-13 07:43

    創建了兩個task如果一個優先級高 一個優先級低,高優先級的那個一直在做,什么時候會調度到低優先級的呢?

    創建了兩個task如果一個優先級高一個優先級低, 我看到任務的函數都是用死循環做的,那個高優先級的那個一直在做,什么時候會調度到低優先級的呢?
    發表于 05-13 07:13

    求助,關于stm32F4中斷優先級0無法搶占的問題求解

    使用F407遇到一個搶占優先級的問題: 現設置優先級分組 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORIT
    發表于 04-23 07:26

    不會RTOS,是因為你沒搞懂NVIC

    管理的中斷可進行中斷嵌套,直譯為高優先級可打斷低優先級中斷,然后高優先級執行完了再轉回去執行低優先級中斷。對于RTOS(實時操作系統)類型的OS有很大的好處,所以
    的頭像 發表于 03-31 08:09 ?977次閱讀
    不會RTOS,是因為你沒搞懂<b class='flag-5'>NVIC</b>

    STM32F103的寄存器NVIC_IPRx搶占優先級和子優先級是怎么設置的?

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

    TLE9877的EXIT2怎么沒有優先級配置?

    TLE9877的EXIT2的優先級怎么沒有配置啊,這個的優先級是多少,該怎么配置
    發表于 02-01 06:06

    M0516中斷優先級怎么設置?

    新唐M0516中斷優先級的設置,有沒有示例,沒找到相關接口,謝謝!
    發表于 01-16 07:25

    華為和思科默認路由優先級

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

    GD32如何配置中斷優先級分組以及中斷優先級

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