RM新时代网站-首页

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

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

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

Cortex-M3處理器中斷和FreeRTOS中斷優(yōu)先級配置

5RJg_mcuworld ? 來源:工程師曾玲 ? 2018-12-30 11:23 ? 次閱讀

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

1寫在前面

寫本文之前,先寫點相關(guān)的擴展內(nèi)容。

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

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

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

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

2

STM32中斷控制

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

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

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

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

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

1.中斷輸入向量表

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

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

o4YBAFwl7DKAUZJEAAE7Ey4cyQ8521.png

o4YBAFwl7DSAOEBSAAL9y3HJtHY018.png

2.中斷和異常區(qū)別

很多初學(xué)的朋友不知道什么是中斷?什么是異常?甚至有人直接把中斷和異?;\統(tǒng)稱為“中斷”。

中斷和異常其實有差異,也有關(guān)聯(lián),我們常說的中斷其實是包含了異常。異??梢岳斫鉃?a target="_blank">MCU,或者程序處于了某種異常狀態(tài)。

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

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

所以:

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

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

3.優(yōu)先級

對于Cortex-M3來說,每個外部中斷都有一個對應(yīng)的優(yōu)先級寄存器。

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

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

o4YBAFwl7DSAV7ZYAACfxtM1a14387.png

提示:

1.STM32中斷優(yōu)先級數(shù)值越小,優(yōu)先級越大。

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

而有的內(nèi)核就沒有,如Cortex-M0就沒有。

3.參考資料

可以參看《Cortex-M3權(quán)威指南》

STM32的內(nèi)核編程手冊:

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

3

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

本節(jié)內(nèi)容講述一下FreeRTOS最大中斷優(yōu)先級配置問題,也就是FreeRTOSConfig.h配置文件中的:

configMAX_SYSCALL_INTERRUPT_PRIORITY

你們知道配置數(shù)值的含義嗎?

這里就需要結(jié)合NVIC相關(guān)的內(nèi)容來理解。

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

o4YBAFwl7DaAd3QNAACV3jGna3A397.png

看上圖,明白了嗎,上面這個數(shù)值就是95,但代表的優(yōu)先級為5。

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

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

提示:

FreeRTOS任務(wù)優(yōu)先級是數(shù)值越大,優(yōu)先級越高。需要和中斷優(yōu)先級區(qū)分開來。

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

    關(guān)注

    68

    文章

    19259

    瀏覽量

    229649
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355727
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    898

    瀏覽量

    41470

原文標題:STM32中斷及FreeRTOS中斷優(yōu)先級配置知識!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Cortex-M3處理器是什么

    STM32單片機STM32的核心Cortex-M3處理器是一個標準化的微控制結(jié)構(gòu),希望思考一下,何為標準化?簡言之,Cortex-M3處理器
    發(fā)表于 07-16 06:33

    STM32的核心Cortex-M3處理器是什么

    STM32的核心Cortex-M3處理器是一個標準化的微控制結(jié)構(gòu),希望思考一下,何為標準化?簡言之,Cortex-M3處理器擁有32位CP
    發(fā)表于 08-02 08:52

    Cortex-M3處理器中斷FreeRTOS中斷優(yōu)先級配置

    置頂/星標公眾號,不錯過每一條消息!很多朋友對中斷的一些知識還是不了解,今天就寫點關(guān)于Cortex-M3處理器中斷相關(guān),以及FreeRTOS
    發(fā)表于 08-13 06:16

    STM32(Cortex-M3)中的優(yōu)先級概念

    一、中斷優(yōu)先級:STM32(Cortex-M3)中的優(yōu)先級概念STM32(Cortex-M3)中有兩個優(yōu)
    發(fā)表于 08-16 07:21

    Cortex-M3處理器中的嵌套向量中斷控制器的特性是什么?

    中斷和異常的作用是什么?Cortex-M3處理器中的嵌套向量中斷控制器的特性是什么?
    發(fā)表于 11-05 07:25

    STM32的核心Cortex-M3處理器的標準化是什么意思

    STM32的核心Cortex-M3處理器是一個標準化的微控制結(jié)構(gòu),希望思考一下,何為標準化?簡言之,Cortex-M3處理器擁有32位CP
    發(fā)表于 12-06 07:53

    FreeRTOS中斷優(yōu)先級和任務(wù)優(yōu)先級架構(gòu)的相關(guān)資料推薦

    FreeRTOS中斷優(yōu)先級和任務(wù)優(yōu)先級架構(gòu):Cortex-M3版本:FreeRTOS V9.0.
    發(fā)表于 02-08 06:36

    STM32的Cortex-M3中斷異常處理

    在STM32處理器中有43個可屏蔽中斷通道(不包含 16個 Cortex?-M3中斷線)。共設(shè)置了16個可編程的
    發(fā)表于 11-16 15:35 ?8208次閱讀
    STM32的<b class='flag-5'>Cortex-M3</b><b class='flag-5'>中斷</b>異常<b class='flag-5'>處理</b>

    STM32中斷FreeRTOS中斷優(yōu)先級配置

    STM32中斷,及FreeRTOS中斷優(yōu)先級配置
    的頭像 發(fā)表于 03-04 11:45 ?8904次閱讀
    STM32<b class='flag-5'>中斷</b>及<b class='flag-5'>FreeRTOS</b><b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級</b><b class='flag-5'>配置</b>

    2.FreeRTOS中斷優(yōu)先級和任務(wù)優(yōu)先級

    FreeRTOS中斷優(yōu)先級和任務(wù)優(yōu)先級架構(gòu):Cortex-M3版本:FreeRTOS V9.0.
    發(fā)表于 12-04 20:21 ?9次下載
    2.<b class='flag-5'>FreeRTOS</b><b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級</b>和任務(wù)<b class='flag-5'>優(yōu)先級</b>

    FREERTOS中斷組屏蔽實驗

    FREERTOS中斷組屏蔽實驗Cortex M中斷管理(該段取自正點原子FREETRTOS開發(fā)手冊,我覺得比較詳細了)當多個
    發(fā)表于 12-31 19:16 ?6次下載
    <b class='flag-5'>FREERTOS</b><b class='flag-5'>中斷</b>組屏蔽實驗

    STM32筆記之中斷優(yōu)先級和開關(guān)總中斷

    STM32中斷優(yōu)先級和開關(guān)總中斷一,中斷優(yōu)先級:STM32(Cortex-M3)中的
    發(fā)表于 01-14 15:24 ?13次下載
    STM32筆記之<b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級</b>和開關(guān)總<b class='flag-5'>中斷</b>

    Cortex-M中斷FreeRTOS中斷優(yōu)先級配置原理

    下面就來說說關(guān)于Cortex-M中斷,及FreeRTOS中斷優(yōu)先級配置原理。
    發(fā)表于 02-08 15:30 ?3次下載
    <b class='flag-5'>Cortex-M</b><b class='flag-5'>中斷</b>及<b class='flag-5'>FreeRTOS</b><b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級</b><b class='flag-5'>配置</b>原理

    Cortex-M3中斷優(yōu)先級的相關(guān)知識

    本文詳細介紹Cortex-M3中斷優(yōu)先級相關(guān)知識。
    的頭像 發(fā)表于 03-23 11:45 ?2675次閱讀
    <b class='flag-5'>Cortex-M3</b><b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級</b>的相關(guān)知識

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

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