| 同问,帮顶。 |
|
这貌似是一个断言出错了,而且是在执行中断服务函数的时候报错,我猜测这个外部中断的优先级超过了FreeRTOS可管理的中断优先级,你仔细查查。 另外不用判断YieldRequired是否为判断pdTRUE,因为portYIELD_FROM_ISR内部会判断的。最终是这样的#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired != pdFALSE ) portYIELD()。这个和你提出的问题没有关系。只是说一下。 |
|
本帖最后由 霸王猫 于 2020-5-11 14:36 编辑 1、移 植 到 FreeRTOS 操 作 系 统 时 , 嵌 套 优 先 级 分 组 必 须 设 置 为 4 , 即 : NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4)。 2、FreeRTOSConfig.h 中 configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY=5, 因此如果需要在中断服务程序中发送信号量、消息邮箱、消息队列来同步任务,则该中断的优先级要求不能小于 5 3、下图中USART3的优先级定义为6 > 5
|
/1
|手机版|OpenEdv-开源电子网
( 粤ICP备12000418号-1 )
GMT+8, 2026-9-29 22:26
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网