参考文档
task 任务
rtos的任务是独立上下文的(独立程序段,RAM内存、寄存器值、堆栈内容), 创建任务时指定优先级,栈空间大小。嵌入式的应用程序根据业务需要拆分任务以完成产品业务流程开发。任务间的切换由内核调度器完成,开发人员只需做好自己的业务即可。
任务间通信
Semaphore 信号量
接口:vSemaphoreCreateBinary()
使用场景:任务之间的通知功能,通常当锁来用,对公共资源进行管理避免多任务下访问冲突。Queue队列
接口:xQueueCreate()
使用场景:当任务间需要通知并且有通信数据时,采用队列将数据缓存,并通知目标任务,让数据交互更容易。Event Groups
接口:xEventGroupCreate()
使用场景:当任务关心多个通知事件时,比semaphore用起来更简洁。
Timer
接口:xTimerCreate()
使用场景:软件定时器可以完成指定时间点的任务,比如1s 后执行一个业务,当然也可以定时重复运行。