STM32G070在GPIO中断调用osThreadFlagsSet触发FreeRTOS断言挂起问题
STM32G070平台CMSIS-OS线程标志与中断交互异常问题
问题描述
在STM32G070平台使用CMSIS-OS线程标志与中断服务程序交互时遇到异常:在GPIO上升沿中断内调用osThreadFlagsSet()时,整个程序会卡在FreeRTOS的tasks.c文件第4853行的configASSERT()断言处。
对应断言代码如下:
/* The task should not have been on an event list. */ configASSERT( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL );
已验证无效的解决方案
目前网上现有解决方案均无法解决该款芯片下的该问题,已尝试以下操作均无效:
- 配置NVIC优先级分组(STM32G070未提供相关定义或支持)
- 修改所有任务的优先级
- 增大栈/堆分配空间
相关说明
我摸索得到的解决方案已附在下方,成功解决了该问题,欢迎大家分析该方案生效的原因,相关内容也可供其他遇到相同问题的开发者参考。
内容的提问来源于stack exchange,提问作者zozwold
相关产品推荐
相关产品推荐

