相关疑难解决方法(0)

使用 STM32 和 FreeRTOS 时,“HAL_NVIC_SetPriority()”的有效值是什么?

在学习了有关中断优先级的一些知识之后,我仍然有点困惑,试图理解允许HAL_NVIC_SetPriority()SysTick_IRQn(每 1 毫秒调用 FreeRTOS 调度程序的 ISR)上调用什么值。

太长了;

我的一部分认为HAL_NVIC_SetPriority(SysTick_IRQn, 15 ,0U)(可能的最低优先级)和HAL_NVIC_SetPriority(SysTick_IRQn, 10 ,0U)(更高一点)之间的任何内容都是允许的,而我的一部分认为HAL_NVIC_SetPriority(SysTick_IRQn, 15 ,0U)(可能的最低优先级)和HAL_NVIC_SetPriority(SysTick_IRQn, 5 ,0U)(更高一点)之间的任何内容都是允许的。这是假设configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY在 FreeRTOSConfig.h 中设置为 5。令人困惑的是,在 FreeRTOS 中,数字越大优先级越高,但在 STM32 中,数字越高优先级越低,并且文档非常难以理解。


细节:

为了证明我已经做出了勇敢的努力,也为了帮助大家帮我填补空白,以下是我目前的理解。我将以这样一种方式写下我所知道的真实情况的描述,看起来像是在教,尽管我正在寻求上述问题的答案,以及 更正确认补充您认为合适的洞察力。

尽管这可能适用于许多 STM32 微控制器或系列,但让我们特别针对 STM32F207ZG 进行讨论

注意:STM32CubeF2下载在这里

我的理解:

如果您查看标准FreeRTOSConfig.h文件(例如:STM32Cube_FW_F2_V1.7.0/Projects/STM322xG_EVAL/Applications/FreeRTOS/FreeRTOS_ThreadCreation/Inc/FreeRTOSConfig.h),您将看到以下内容:

/* Cortex-M specific definitions. */
#ifdef __NVIC_PRIO_BITS
    /* __BVIC_PRIO_BITS will be specified when CMSIS is …
Run Code Online (Sandbox Code Playgroud)

c stm32 freertos

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

freertos ×1

stm32 ×1