参考文档

官方文档

观看视频讲解

task 任务

rtos的任务是独立上下文的(独立程序段,RAM内存、寄存器值、堆栈内容), 创建任务时指定优先级,栈空间大小。嵌入式的应用程序根据业务需要拆分任务以完成产品业务流程开发。任务间的切换由内核调度器完成,开发人员只需做好自己的业务即可。

任务间通信

  • Semaphore 信号量
    接口:vSemaphoreCreateBinary()
    使用场景:任务之间的通知功能,通常当锁来用,对公共资源进行管理避免多任务下访问冲突。

  • Queue队列
    接口:xQueueCreate()
    使用场景:当任务间需要通知并且有通信数据时,采用队列将数据缓存,并通知目标任务,让数据交互更容易。

  • Event Groups
    接口:xEventGroupCreate()
    使用场景:当任务关心多个通知事件时,比semaphore用起来更简洁。

Timer

接口:xTimerCreate()
使用场景:软件定时器可以完成指定时间点的任务,比如1s 后执行一个业务,当然也可以定时重复运行。