本章介绍怎样使用RTOS的功能模块来实现任务/中断间的同步与通信。
简而言之,就是通过某种机制安排各个任务按指令的顺序执行指定功能的代码,以及提供任务/中断之间的通信。
主要内容
同步
在实际应用中,通常会创建并运行多个任务,任务启动运行后,各自并不是相互独立运行。除了前面章节所讲到的,任务间可能会共享资源外,任务间还可能在执行流程上存在一种相互依赖关系。例如,A任务会在某个时间点等待任务B运行给它发通知,然后才继续往下运行。这种执行上的相互先后功能实现称之为“同步”。
这种同步并不限于任务与任务间,还包含中断与任务之间的同步。
通信
在前面讲到的同步中,可能在发送通知进行同步时,还会附带一些具体的数据,告知另一任务具体要做什么。此时,就涉及到任务间的通信,发送的数据称之为消息。
当然,也有可能只是简单地在任务之间传递消息进行通信,并不一定只是在同步时通信。
同样的,并不限于任务与任务间通信,还包含中断与任务间通信。
系统支持
RTOS提供了很多功能模块用于实现这些同步与通信功能。
重点难点
本章各个课时的实例都比较简单,并不贴近实际的例子。
在实际的应用中,多个任务之间的同步与通信关系往往比较复杂,但如果对其进行分解,大多可分解为本课时中所列的例子。
在课时:C7.04 多任务的协同 中,我们会看到一个更加贴合实际的复杂案例,综合了这间课时所介绍的各个例子的应用。