FreeRTOS:两个带中断的任务

FreeRTOS: two tasks with interrupt

我是 FreeRTOS 的新手。我有两个任务:第一个必须在循环中连续执行,第二个应该在中断后才打开,第二个完成后应该 return 到第一个,需要从开始(这很重要,因为第一个任务收集数据,如果我从中断的地方继续执行它,我将得到垃圾。)。

我可以使用 Semaphore 还是有更好的东西?提前谢谢你。

不清楚你在问什么或者你想用信号量做什么。通过中断和第一个任务保护数据访问?或者可能发出第一个任务的信号?据我所知,这听起来像是你想要一个较低优先级的任务 运行 连续,然后当中断发生时让中断处理程序解除阻塞一个较高优先级的任务,然后抢占较低优先级的任务并执行。然后当它完成并再次阻塞时,调度程序自然会继续 运行 较低优先级的任务。我对你的说法感到困惑,如果你继续从中断的地方执行,你会得到垃圾 - 中断总是 return 到他们中断的地方。

从中断中解除阻塞任务的最有效方法是 direct-to-task notification。我还建议阅读 FreeRTOS.org 网站上提供的一些通用 FreeRTOS 文档和书籍。