desmond 发表于 2022-11-11 17:16:52

xEventGroupGetBitsFromISR的使用疑问

我在按键中断中调用xEventGroupGetBitsFromISR把中断信息发送出去,然后负责扫描按键的任务使用xEventGroupWaitBits等待这个事件,目前发现如果中断发送xEventGroupGetBitsFromISR过于频繁的话,就会把freertos的tmr svc任务弄死,具体表现就是一直处于ready态,而且xEventGroupGetBitsFromISR函数也会返回-3错误,这个大概会是什么原因的?

eric2013 发表于 2022-11-12 10:11:57

1、原因



2、尝试将定时器任务设置为最高优先级,队列也加大些试试。

#define configTIMER_TASK_PRIORITY ( 2 )
#define configTIMER_QUEUE_LENGTH 10
#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )


desmond 发表于 2022-11-15 09:59:54

eric2013 发表于 2022-11-12 10:11
1、原因




感谢大神的详细解答回复, 虽然可以针对优化软timer来规避,但是目前跟这个软timer打交道已经吃过不少亏了, 想绕过它,而是使用任务通知方式vTaskNotifyGiveFromISR,是否更加合理一些的?

eric2013 发表于 2022-11-15 11:58:04

desmond 发表于 2022-11-15 09:59
感谢大神的详细解答回复, 虽然可以针对优化软timer来规避,但是目前跟这个软timer打交道已经吃过不少亏了, ...

没问题,也可以的。
页: [1]
查看完整版本: xEventGroupGetBitsFromISR的使用疑问