在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32中斷及FreeRTOS中斷優先級配置

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-04 11:45 ? 次閱讀

很多朋友對中斷的一些知識還是不了解,今天就寫點關于Cortex-M3處理器中斷相關,以及FreeRTOS中斷優先級配置的內容。

1寫在前面

寫本文之前,先寫點相關的擴展內容。

STM32屬于ARM中Cortex-M系列處理器,比如:STM32F1數據Cortex-M3,STM32F7數據Cortex-M7。

可以參看我之前分享文章:從Cortex-M到Cortex-A認識ARM處理器,了解一下關于ARM處理器的種類。

本文主要結合Cortex-M3下面STM32F1系列處理器為例來講述中斷控制相關內容。而Cortex-M其它系列,或者說STM32其它系列關于中斷的內容類似。

Cortex-M3只是STM32F1的一個內核。反過來說STM32F1是在Cortex-M3基礎上增加了一些外設(如:USART、AD等)的芯片。

2

STM32中斷控制

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

STM32中NVIC我們比較熟悉,編程的時候使用中斷都會對NVIC進行配置。

而STM32F1中的NVIC是屬于Cortex-M3中的一部分,而不是STM32增加的外設。

NVIC向量中斷控制器是Cortex‐M3不可分離的一部分,它與 CM3 內核的邏輯緊密耦合,有一部分甚至水乳交融在一起。

所以,NVIC相關的寄存器位于Cortex-M手冊中。講述STM32的中斷控制,還得從Cortex-M3的NVIC講起,

1.中斷輸入向量表

Cortex-M3的NVIC支持1至240個中斷輸入,比如STM32中xxxIRQs,也就是中斷向量表,具體的數值由芯片廠商在設計芯片時決定。

比如STM32F1的中斷和異常向量表:

2.中斷和異常區別

很多初學的朋友不知道什么是中斷?什么是異常?甚至有人直接把中斷和異常籠統稱為“中斷”。

中斷和異常其實有差異,也有關聯,我們常說的中斷其實是包含了異常。異常可以理解為MCU,或者程序處于了某種異常狀態。

這么區分吧,看上面向量表,上部分有灰色背景的為異常,下部分白色的為中斷。

異常屬于Cortex‐M3內核的一部分,而中斷屬于MCU(STM32)的一部分(由廠家決定)。

所以:

1.站在Cortex‐M3內核角度,像STM32中USART這類中斷,屬于外部中斷。

2.站在STM32角度,EXTI外部引腳中斷才屬于中斷。

3.優先級

對于Cortex-M3來說,每個外部中斷都有一個對應的優先級寄存器。

每個寄存器占用8位,但是允許最少只使用最高3位,在STM32F1中使用了高4位。(也就是我們可以分16個優先級)

優先級可以被分為高低兩個位段,分別是搶占優先級和亞(響應)優先級。

提示:

1.STM32中斷優先級數值越小,優先級越大。

2.優先級分組:Cortex-M3,M4具有分組功能,即存在搶占優先級和響應優先級,如下圖:

而有的內核就沒有,如Cortex-M0就沒有。

3.參考資料

可以參看《Cortex-M3權威指南》

STM32的內核編程手冊:

http://www.st.com/stonline/products/literature/pm/15491.pdf

3

FreeRTOS中斷優先級配置

本節內容講述一下FreeRTOS最大中斷優先級配置問題,也就是FreeRTOSConfig.h配置文件中的:

configMAX_SYSCALL_INTERRUPT_PRIORITY

你們知道配置數值的含義嗎?

這里就需要結合NVIC相關的內容來理解。

上面說了,在STM32中,使用了NVIC優先級的高4位,而我們配置時需要對高4位進行配置(低4位未使用)。

看上圖,明白了嗎,上面這個數值就是95,但代表的優先級為5。

這個配置數值的含義,大概意思是:你代碼中使用的中斷(比如USART1_IRQn)優先級需要大于5才可行。

如下面配置,優先級為2就不行(當然,有分組的還牽涉到分組問題)。

關于FreeRTOS最大優先級配置的內容可以參考:

https://www.freertos.org/RTOS-Cortex-M3-M4.html

提示:

FreeRTOS任務優先級是數值越大,優先級越高。需要和中斷優先級區分開來。

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

    關注

    68

    文章

    19704

    瀏覽量

    232699
  • STM32
    +關注

    關注

    2282

    文章

    10986

    瀏覽量

    361065
  • FreeRTOS
    +關注

    關注

    12

    文章

    485

    瀏覽量

    63398
  • Cortex-M3
    +關注

    關注

    9

    文章

    270

    瀏覽量

    59971
收藏 人收藏

    評論

    相關推薦

    stm32 GPIO中斷配置教程

    在嵌入式開發STM32微控制器因其高性能和豐富的外設而廣受歡迎。GPIO(通用輸入/輸出)中斷STM32微控制器中常用的功能之一,它允許開發者在特定引腳上檢測到外部信號變化時快速
    的頭像 發表于 11-19 15:53 ?2461次閱讀

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

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

    STM32CUBEMX(11)--外部中斷(EXTI)

    都相等,則根據他們在中斷的排位順序決定先處理哪一個。 中斷服務函數 配置中斷優先級之后,
    發表于 09-10 15:44

    freertos中斷優先級在哪設置

    FreeRTOS是一個流行的實時操作系統,它廣泛應用于嵌入式系統開發。在FreeRTOS中斷優先級是一個重要的概念,因為它決定了
    的頭像 發表于 09-02 14:17 ?1151次閱讀

    stm32怎樣觸發軟件中斷

    STM32,您需要配置NVIC以啟用所需的中斷。這包括設置中斷通道、優先級和觸發條件。 編寫
    的頭像 發表于 09-02 09:32 ?1400次閱讀

    ESP32S2如何設置中斷優先級

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

    請問有什么方法降低WIFI中斷優先級

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

    如何在不同優先級安裝相同的處理程序?

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

    TC375中斷嵌套如何實現?

    這里描述說實現中斷嵌套需要配置中斷優先級組,但是我沒看到有介紹分組的文檔,請問中斷嵌套要如和實現謝謝?
    發表于 05-27 07:30

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

    最近在學習ucosii有這樣一個疑問,關于stm32的systick作為ucosii的基準時鐘,systick的中斷優先級是否應該設置為最高優先級的嵌套
    發表于 05-16 06:44

    stm32怎么設置EXTI10 、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15的中斷優先級呢?

    、EXTI13、EXTI14、EXTI15中斷級別是一樣的,但是我想區別設置高低優先級的,這個怎么操作啊?請高手指導,謝謝。 /* Enable EXTI Interrupt to the highest
    發表于 05-14 08:30

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

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

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

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

    STM8中斷優先級不夠怎么解決?

    STM8L 中斷優先級通過下面函數設置,但此處僅 ITC_PriorityLevel_1,ITC_PriorityLevel_2,ITC_PriorityLevel_3總共才3個中斷
    發表于 05-06 06:54

    STM32L152 FREERTOS中斷調用osSignalSet()函數異常的原因?

    STM32L152搭了一個程序框架,在UART接收中斷調用osSignalSet()函數出現異常,在接收到串口信息后,看了下是說優先級配置
    發表于 04-28 07:11
    主站蜘蛛池模板: 国产在线精品香蕉综合网一区 | 欧美一区二区三区大片 | 久久精品2020 | 亚洲福利一区 | 成人网久久 | 操日本美女视频 | 狠狠操天天 | 三级黄色一级视频 | 韩国理论片在线看2828dy | 一级做a爰片久久毛片免费 一级做a爰片久久毛片免费看 | 岛国毛片在线观看 | 久久天天躁狠狠躁夜夜爽 | zzji国产精品视频 | 日本成人免费在线视频 | 日韩一级在线观看 | 国模吧一区二区三区精品视频 | 成人在线免费 | 国产精品美女自在线观看免费 | 免费网站黄 | 亚洲最大黄色网址 | 国产精品第页 | 婷婷久久五月天 | 欧美亚洲h在线一区二区 | 乱码一区二区三区完整视频 | 色婷婷影院 | 手机看片精品国产福利盒子 | 中文4480yy私人免费影院 | 轻点太大了好深好爽h文 | 午夜精品影院 | 乱j伦小说在线阅读 | 日本不卡一区二区三区在线观看 | 97色吧| 男男gay污小黄文 | 午夜小影院 | 国产精品美女自在线观看免费 | 97天天干| 全黄性色大片 | 牛牛碰在线 | 黄 色 片免费观看 | 日本特级视频 | 手机看片1024免费视频 |