概述
freeRTOS中推荐TASK运行流程如下图所示,TASK无限循环于接收消息和处理消息的过程中。
实际上这也是大部分嵌入式系统中,TASK都采用这样的运行流程。这样的设计,非常适合将软件模块移植到到TASK中:消息即对应软件模块对外提供的功能接口,TASK即不停的监听接口并进行相应处理。
当然freeRTOS也支持TASK在执行完成指定处理后,注销自己,
实际上,这也是某些OS将TASK细分为process和thread的原因:process不会注销自己,thread会。
TASK状态
freeRTOS中将TASK的状态粗分为运行态(running)和非运行态(notrunning),前者表示该TASK的指令集合正在被CPU执行,后者表示TASK的指令集合没有被CPU执行。