FreeRTOS不同任务状态对功耗的影响

FreeRTOS的任务一共有运行、就绪、阻塞、挂起和删除五种状态。

下面分别介绍一下各个状态下的功耗情况:

运行状态(Running)

        任务在运行状态下会占用CPU资源,导致较高的功耗,是功耗最高的状态;

        尽量将任务逻辑拆分为小块,减少任务的运行时间,避免长时间占用CPU。

就绪状态(Ready)

        任务处于就绪状态时,虽然没有运行,但调度器会定期检查就绪任务,导致一定的功耗,其功耗低于运行状态,但高于阻塞或挂起状态。

        尽量减少高优先级任务的就是时间,用阻塞或挂起状态来带代替就绪状态。

阻塞状态(Blocked)

        任务在阻塞状态下不会占用CPU资源,功耗较低。任务会等待事件(如信号量、队列、延时等),在事件发生前不会消耗CPU。如果所有任务都处于阻塞状态,系统会进入空闲任务(Idle Task),此时可通过vApplicationIdleHook()钩子函数进入低功耗模式,进一步降低功耗。

        尽量使用vTaskDelay()函数或者等待信号量、队列等机制,使任务进入阻塞状态,减少任务运行时间。

挂起状态(Suspended)

        任务在挂起状态下不会参与调度,完全停止运行,是功耗最低的状态之一。

        对于长时间不需要运行的任务使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值