很多朋友对中断的一些知识还是鈈了解今天就写点关于Cortex-M3处理器中断相关,以及FreeRTOS中断优先级配置的内容
写本文之前,先写点相关的扩展内容
可以参看我之前分享文章:,了解一下关于ARM处理器的种类
本文主要结合Cortex-M3下面STM32F1系列处理器为例来讲述中断控制相关内容。而Cortex-M其它系列或者说STM32其它系列关于中断的內容类似。
STM32中NVIC我们比较熟悉编程的时候使用中断都会对NVIC进行配置。
NVIC向量中断控制器是Cortex‐M3不可分离的一部分它与 CM3 内核的逻辑紧密耦合,囿一部分甚至水乳交融在一起
本节内容讲述一下FreeRTOS最大中断优先级配置问题,也就是FreeRTOSConfig.h配置文件中的:
你们知道配置数值的含义吗
这里就需要结合NVIC相关的内容来理解。
上面说了在STM32中,使用了NVIC优先级的高4位而我们配置时需要对高4位进行配置(低4位未使用)。
看上图明白叻吗,上面这个数值就是95但代表的优先级为5。
这个配置数值的含义大概意思是:你代码中使用的中断(比如USART1_IRQn)优先级需要大于5才可行。
如下面配置优先级为2就不行(当然,有分组的还牵涉到分组问题)
关于FreeRTOS最大优先级配置的内容可以参考:
FreeRTOS任务优先级是数值越大,優先级越高需要和中断优先级区分开来。