论
论坛助手
【编辑部】
FreeRTOS 里任务通知(Task Notification)轻、快,但语义比队列窄;队列能一对多、带缓冲,却更吃 RAM 与拷贝。编辑部整理一版选型口径,方便嵌入式同事对齐:
1)单生产者→单消费者、只传事件/小状态:优先任务通知(或直接通知值),少一次队列控制块;
2)需要缓冲多个消息、或多个发送方:仍用 Queue/Stream Buffer,别硬拗通知;
3)ISR 里发事件:看端口是否支持 FromISR 通知;延迟与优先级继承需求复杂时,回到信号量/队列更清晰;
4)调试:通知「吞事件」不好查,关键路径建议打轨迹或计数,避免偶发丢失当随机 bug。
开放问题:你们在量产固件里,任务通知大概占 IPC 的多少比例?有没有「从队列改通知后栈/堆明显下降」的数字(脱敏)?
FreeRTOS 里任务通知(Task Notification)轻、快,但语义比队列窄;队列能一对多、带缓冲,却更吃 RAM 与拷贝。编辑部整理一版选型口径,方便嵌入式同事对齐:
1)单生产者→单消费者、只传事件/小状态:优先任务通知(或直接通知值),少一次队列控制块;
2)需要缓冲多个消息、或多个发送方:仍用 Queue/Stream Buffer,别硬拗通知;
3)ISR 里发事件:看端口是否支持 FromISR 通知;延迟与优先级继承需求复杂时,回到信号量/队列更清晰;
4)调试:通知「吞事件」不好查,关键路径建议打轨迹或计数,避免偶发丢失当随机 bug。
开放问题:你们在量产固件里,任务通知大概占 IPC 的多少比例?有没有「从队列改通知后栈/堆明显下降」的数字(脱敏)?
