国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    20250

    瀏覽量

    252186
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373396
  • FreeRTOS
    +關注

    關注

    14

    文章

    499

    瀏覽量

    66914
  • Cortex-M3
    +關注

    關注

    9

    文章

    276

    瀏覽量

    61519
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CW32F030中斷解析

    可編程的優先級 ?低延時的異常和中斷處理 ?支持中斷嵌套 ?中斷向量表重映射 3 中斷優先級
    發表于 01-12 08:41

    CS32L010系列能否支持串口的發送和接收中斷單獨配置?不同中斷中斷優先級如何設置?

    1、串口能否配置成阻塞式發送和中斷式接收。 2、不同中斷中斷優先級如何設置?我在開啟中斷函數代
    發表于 12-10 18:46

    搶占優先級和子優先級

    關于搶占優先級和子優先級: 1)具有高搶占式優先級中斷可以在具有低搶占式優先級中斷服務程序執
    發表于 12-03 07:11

    芯源MCU中斷相關寄存器

    。 5.5.2 NVIC 中斷掛起和清除掛起 在中斷發生時,如果系統正在處理與之相同優先級或更高優先級中斷,系統將不會立即處理此
    發表于 11-27 07:23

    FreeRTOS任務調度及優先級問題

    都有容錯,但是心里沒底,想向大家了解一下實際工作中有沒有遇到到類似的問題,如果有又是怎么解決的呢? 另外有前輩可以分享一下任務的優先級在實際項目中該基于什么原則來劃分呢?
    發表于 11-06 02:18

    關于蜂鳥E203內核中斷硬件實現中斷嵌套的設計

    嵌套,可以有很多層(蜂鳥處理器該情況下不響應新的端,繼續執行正在處理的ISR,徹底完成后才響應新的中斷請求) 注意:假設新來的中斷請求的優先級比正在處理的
    發表于 10-23 07:07

    什么是RTOS優先級反轉

    當一個高優先級任務正在等待一個資源,但一個低優先級任務正在持有它,一個中等優先級任務繼續在中間運行時,就會發生優先級反轉——阻止低優先級任務
    的頭像 發表于 09-09 14:50 ?1003次閱讀

    求助,關于MS51設置中斷優先級問題求解

    我確實發現在庫代碼和 TRM 之間設置中斷優先級有一些差異,如下圖所示。 Could you check what's wrong with me?
    發表于 08-25 07:01

    請問STM32的內部Flash操作是不是優先級最高?

    STM32的內部Flash操作是不是優先級最高?目前在內部Flash的單獨一頁存儲了數據,發現在進行頁擦除的時候正常工作的定時器中斷無法進入了
    發表于 08-13 07:03

    STM32G474進入Fault3中斷沒辦法設置成周期性觸發嗎?

    手動操作硬件觸發了Fault3故障,進入了Fault3中斷,此時若故障一直存在程序就在中斷里無法出來,FreeRTOS停止運行,把故障解除后FreeRTOS正常運行,即使把Fault3
    發表于 08-01 07:23

    TLe9893怎么調整外設的中斷優先級

    你好林工,我該怎么調整外設的中斷優先級?是否可以通過工具調整?默認設置下,是不是Brdv的在中斷優先級高于T20和can?
    發表于 08-01 06:20

    請問C0系列單片機中斷優先級只有4嗎?

    C0系列單片機中斷優先級只有4?C071在配置的時候只能配置0-3
    發表于 07-23 08:00

    第六章 外部中斷

    本章介紹W55MH32的IO口作為外部中斷輸入的使用。先闡述了NVIC(嵌套向量中斷控制器) 的結構、寄存器、優先級及相關函數,再說明EXTI(外部中斷和事件控制器)的功能。框圖及I
    的頭像 發表于 05-26 16:27 ?1491次閱讀
    第六章 外部<b class='flag-5'>中斷</b>

    第十章 W55MH32中斷應用概覽

    本章講述了W55MH32中斷應用,涵蓋異常類型、NVIC介紹、優先級定義與分組,闡述中斷編程三要點(使能中斷配置 NVIC、編寫服務函數)
    的頭像 發表于 05-22 17:07 ?1889次閱讀
    第十章 W55MH32<b class='flag-5'>中斷</b>應用概覽

    一天一個嵌入式面試知識(1:中斷處理機制詳解)

    立即響應(優先級高) 需經過系統調度(優先級可控) 典型應用 外部事件響應(如UART數據到達) 系統服務調用(如文件讀寫) 三、中斷處理流程解析 以STM32為例,
    發表于 03-21 10:18