ESP-IDF中调用xEventGroupWaitBits函数失效问题的分析(2)

接前一篇文章:ESP-IDF中调用xEventGroupWaitBits函数失效问题的分析(1)

上一回讲了笔者在实际项目中所遇到的问题,跟到最后发现,是FreeRTOS等待函数xEventGroupWaitBits自身在任务挂起/恢复后不能阻塞住所导致的。并且在上一回中,笔者做了一个复现问题的最小例程。

那么,这到底是FreeRTOS的问题还是机制使然呢?为此,笔者咨询了乐鑫技术支持,他们给出了以下答复:

 

看来不止我一个人遇到了这个问题,早在2018年就有人也发现了这个问题,只是没有多少人能看到这个帖子,这才导致了7年过去了(都快和抗战一样了),仍然会再次陷坑。这也正是笔者写此文的目的,利用优快云平台以及自身的影响力,把这个问题让更多人看到,避免重复入坑、掉坑里出不来。

进入到乐鑫技术支持给出的网页链接:xEventGroupWaitBits unexpected behavior - FreeRTOS

在此把当时这位同仁(应该是一位外国同仁)遇到的问题藐视翻译一下:

你好,我发现xEventGroupWaitBits函数有以下行为:

我有两个任务。在第一个任务中,执行以下事务:

xEventGroupWaitBits(handle, bits, …, portMAXDELAY_);

在第二个任务中,执行以下事务:

vTaskSuspend(handletask1); avtivity(); vTaskResum(handletask1);

在task1中,即使没有设置任何位,函数xEventGroupWaitBits也会在vtaskResume之后立即退出。这是正确的行为吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值