FreeRTOS-低功耗tickless模式

1.整体思路图

在这里插入图片描述

2.keil5中配置

在这里插入图片描述

当将宏定义configUSE_TICKLESS_IDLE配置为1时且系统运行满足以下两个条件时,系统内核会自动的调用低功耗宏定义函数portSUPPRESS_TICKS_AND_SLEEP()。
1.当前空闲任务正在运行,所有其它的任务处在挂起状态或者阻塞状态。
2.在这里插入图片描述
只有当系统可运行于低功耗模式的时钟节拍数大于等于这个参数时,系统才可以进入到低功耗模式。默认配置为2,我们自定义时一定不能小于2

这个函数被空闲任务调用,是低功耗tickless的关键
在这里插入图片描述

3.滴答定时器频率与系统主频的关系

实时操作系统一般都是采用滴答定时器做系统时钟,一个是系统主频,另一个是系统主频的八分频,默认的port.c移植文件中是用的系统主频。

1.SysTick滴答定时器时钟源选择系统主频
在这里插入图片描述
2.SysTick滴答定时器时钟源选择系统主频的八分频
在这里插入图片描述
这个地方由72000000/8=9000000即可。

4.系统进入停机模式

介绍两个函数

configPRE_SLEEP_PROCESSING( xExpectedIdleTime )

configPOST_SLEEP_PROCESSING( xExpectedIdleTime )
在这里插入图片描述
函数被调用在
在这里插入图片描述

1.configPRE_SLEEP_PROCESSING( xExpectedIdleTime )
执行低功耗模式前,用户可以在这个函数里面关闭外设时钟来进一步降低系统功耗。
设置其它低功耗方式也是在这个函数里面,用户只需设置参数xExpectedIdleTime=0即可屏蔽掉默认的wfi指令执行方式。
因为退出这个函数后会通过if语句检测此参数是否大于0,配置好其它低功耗模式后,设置参数 xExpectedIdleTime = 0即可,但切不可将此参数随意设置为0以外的其它数值。

2.configPOST_SLEEP_PROCESSING ( xExpectedIdleTime )
退出低功耗模式后,此函数会得到调用,之前在configPRE_SLEEP_PROCESSING里面关闭的外设时钟,可以在此函数里面重新打开,让系统恢复到正常运行状态。

5.低功耗注意要点

1.用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。可以使用的低功耗方式有睡眠模式,待机模式,停机模式。
2.选择了低功耗方式后就是关闭可以关闭的外设时钟。
3 . 降低系统主频。
4 . 注意I/O的状态。
如果此I/O口带上拉,请设置为高电平输出或者高阻态输入。
如果此I/O口带下拉,请设置为低电平输出或者高阻态输入。
i. 在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态。
ii. 在停机模式下,所有的I/O引脚都保持它们在运行模式时的状态。
iii. 在待机模式下,所有的I/O引脚处于高阻态,除了以下的引脚:复位引脚(始终有效)。当被设置为防侵入或校准输出时的TAMPER引脚。被使能的唤醒引脚
5 . 注意I/O和外设IC的连接。
6 .测低功耗的时候,一定不要连接调试器,更不能边调试边测电流。

总结

跟着这个博主学习的-很厉害的
点个赞呗!
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值