原帖 | Jack | 2024-10-08 09:49 | 👍0 | 阅读约1
老师,队列函数中带ISR&不带ISR的有何区别,各自适用于什么使用场景?
A:这里涉及所谓线程安全的内容
使用场景:不带fromisr的API函数在普通代码段中使用,带fromisr的API函数在中断服务程序中使用(但是也只能在FreeRTOS可管理的中断中调用)
区别:
1. 带FromISR的api不会阻塞,而是马上返回(中断不是任务,不能阻塞)
2. 会唤醒别的任务,但不会马上进行上下文切换(目前在中断中,即使切换了也不会运行,浪费性能)
概括:带FromISR的api被设计为在中断中使用,因此具有更极致的性能要求以保证线程安全,为此把正常任务需要的阻塞等功能删除了
相关笔记