一、首先介绍一下智能手表项目的背景:
如图,关注焦点是任务:
1、在一个确定时刻,在那一圈任务中(写有只有一个任务解挂)只有一个任务处在运行,界面显示的是该任务应该显示的内容;
2、切换菜单的按键每被按下一次,就会切换下一个任务,界面显示也会随着任务切换而不一样;
3、在那一圈任务(写有只有一个任务解挂),它们都会读取按键队列的按键值,因为每个任务都要和按键交互;
4、按键任务最高优先级,负责把识别到的按键值发送到按键队列里面。
二、任务切换的实现,即挂起与解挂任务是在按键任务中实现的:请注意整体流程以及代码注释
挂起所有任务:
唤醒某一任务:
拿一个任务举例:
项目来自书本《嵌入式实时操作系统FreeRTOS原理及应用》 主编 张超
由于没有找到源码,所以以上代码重点在实现的方式逻辑。