【发布时间】:2021-09-23 19:35:45
【问题描述】:
我在 STM32G070 上的 cmsis 操作系统线程标志和中断服务例程之间的交互存在一个奇怪的问题。
当从 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 优先级分组(G070 不可用或未定义)
- 更改所有任务优先级
- 增加堆栈/堆分配
出于某种奇怪的原因,我在下面的回答修复了它。如果有人想评论为什么这可能已经解决了它,请随意。我把这个贴在这里,以防其他可怜的人在搜索引擎上找到这个。
【问题讨论】: