在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

AliOS Things电源管理框架怎么使用

159次阅读
没有评论

共计 2989 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要讲解了“AliOS Things 电源管理框架怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“AliOS Things 电源管理框架怎么使用”吧!

一、电源管理框架简介

电源管理框架的目的在于节约 CPU 的功耗。传统上,当操作系统处于空闲状态时,比如所有用户任务和系统任务处于阻塞状态,将执行 idle
task。idle
task 的通常做法是一个 while(1) 空循环,从汇编视角看是不断执行跳转指令,也就是说当操作系统空闲时,CPU 将处于空转状态。使能电源管理框架后,当系统进入 idle
task 后,将设置 CPU 进入低功耗状态,从而节省 CPU 的功耗。

AliOS Things
电源管理框架具有如下特点:

(1)应用配置电源管理框架并添加初始化代码后,整个框架的运行对应用透明,用户无需为了支持电源管理框架而修改应用代码;

(2)支持多级低功耗状态;

在某些 MCU 上,根据不同的节电程度和唤醒时间分为多级睡眠,电源管理框架提供了对该特性的支持,在进入低功耗状态时将根据睡眠时间和节电程度选择最佳睡眠等级。

(3)支持 tickless 机制

当 MCU 决定进入低功耗状态时,将关闭系统 tick 中断,并在醒来的时候恢复系统 tick 中断并补偿睡眠过程中丢失的 tick 数。这种策略通过减少系统时钟中断来最大程度降低系统空闲时的功耗。

(4)支持精简的低功耗模式

当 MCU 进入低功耗后,不关闭系统 tick 中断,系统 tick 也能唤醒系统。它的优点是实现简单,但当系统长时间空闲时,由于系统时钟频繁唤醒系统,不利于节能。

在某基于 nrf52832 MCU 的开发板上测试电源管理框架的运行效果如下:

在普通运行模式下 nrf52832 MCU 的平均运行电流在 4mA 左右,在添加电源管理??楹?MCU 的电流测试如下表所示:

测试项

平均电流

说明

低功耗状态

2.06uA

BLE 广播态功耗(开启低功耗??? 广播 intervel 100ms)

120uA

电压 3v,发送负载 21 字节,TX 功率 0dBm。

BLE 广播态功耗(开启低功耗??? 广播 intervel 1000ms)

14.7uA

电压 3v,发送负载 21 字节,TX 功率 0dBm。

BLE 广播态功耗(开启低功耗??? 广播 intervel 2000ms)

8.1uA

电压 3v,发送负载 21 字节,TX 功率 0dBm。

从测试结果可以看出,在对功耗敏感的系统上,比如依靠电池供电的系统,非常有必要使用电源管理框架,它可显著降低系统功耗,增加系统待机时间。

二、应用配置(为应用添加低功耗支持)

应用若要使用电源管理框架,需进行如下配置:

(1)应用目录的.mk 文件中添加对电源管理??榈囊览担纠?/p>

  GLOBAL_DEFINES +=
RHINO_CONFIG_CPU_PWR_MGMT=1

$(NAME)_COMPONENTS :=
rhino/pwrmgmt

(2)在应用初始化函数中(比如 application_start(int argc,
char *argv[]))调用电源管理??槌跏蓟?。

  cpu_pwrmgmt_init();

三、示例应用(
app/example/pwr_test

目前 AliOS Things 2.0 版本在 developerkit 和 PCA10040 平台上对电源管理框架进行了适配,可用如下命令编译示例应用并下载到 develoerkit 上运行:

aos make
pwr_test@developerkit

aos upload
pwr_test@developerkit

示例应用创建了 2 个任务 demo1 和 demo2。demo1 的主要逻辑是一个 while 循环:count1 增 1,同时打印 count1 和 g_idle_count[0] 的值,然后睡眠 1 秒。demo2 的主要逻辑也是一个 while 循环:count2 增 1,同时打印 count2 的值,然后睡眠 2 秒。

其中 g_idle_count[0] 是一个全局变量,idle 任务在执行时会累加该值。

若没有开启低功耗模块,那么当 demo1 和 demo2 处于睡眠状态时,idle 任务持续执行,g_idle_count[0] 不断增加。输出示例如下:

count1 = 0, idle
= 0

count2 = 0

count1 = 1, idle
= 2347298

count1 = 2, idle
= 4693421

count2 = 1

count1 = 3, idle
= 7036926

count1 = 4, idle
= 9383049

count2 = 2

count1 = 5, idle
= 11726554

count1 = 6, idle
= 14072465

开启低功耗时,当 demo1 和 demo2 处于睡眠状态时,idle 任务执行 g_idle_count[0] 增 1 后,调用 cpu_pwr_down() 进入低功耗状态。因此系统每次进入空闲状态,g_idle_count[0] 只增加 1。输出示例如下:

count1 = 0, idle
= 0

count2 = 0

count1 = 1, idle
= 1

count2 = 1

count1 = 2, idle
= 3

count1 = 3, idle
= 4

count2 = 2

count1 = 4, idle
= 6

count1 = 5, idle
= 7

说明:如果条件允许,直接测试功耗,比如测试 MCU 的电流,效果更直观。 

四、电源管理框架的适配

由于电源管理框架的运行依赖于硬件能力,因此在适配时首先要分析目标硬件是否有能力支持,然后要基于硬件能力为电源管理框架提供相关驱动。

4.1 硬件要求

要想支持电源管理框架,目标 MCU 需要支持如下特性:

(1)至少支持一种低功耗模式。在该低功耗模式下,RAM 和寄存器的值能够被维持。

(2)在低功耗模式下,存在可用的定时器,且该定时器能唤醒系统。在 tickless 机制下,该定时器用于计算低功耗时间,以补偿系统时钟。

4.2 适配接口

为了支持电源管理??樾柰瓿扇缦陆涌谑逝洌?nbsp;

适配接口

功能说明

board_cpu_pwr_init

初始化 CPU 的电源管理能力,比如注册 CPU 电源状态设置函数,注册 CPU 电源管理能力,注册唤醒延迟时间,注册唤醒 / 计时定时器。

cpu_cstate_set_t

设置 CPU 的低功耗状态

systick_suspend

挂起系统时钟,系统时钟在低功耗状态下停止运行

systick_resume

恢复系统时钟

one_shot_timer_t

低功耗下运行的唤醒 / 计时定时器。在低功耗下的计时,用于退出低功耗状态时补偿系统时钟。

在适配过程中用户可以调用如下接口:

可用接口

功能概述

cpu_pwr_node_init_static

初始化 CPU 节点

cpu_pwr_node_record

注册 CPU 节点

cpu_pwr_c_state_capability_set

设置 CPU 支持的低功耗模式

cpu_pwr_c_state_latency_save

设置某个指定低功耗状态的唤醒延迟时间

tickless_one_shot_timer_save

注册支持 tickless 机制的定时器

cpu_pwr_c_method_set

注册 CPU 状态设置函数

感谢各位的阅读,以上就是“AliOS Things 电源管理框架怎么使用”的内容了,经过本文的学习后,相信大家对 AliOS Things 电源管理框架怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2989字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产成人tv在线观看 | 日本边添边摸边做边爱的网站 | 欧美一级专区免费大片 | 国产精品无码mv在线观看 | 大香伊蕉在人线国产最新75 | 国产成人亚洲综合在线 | 久久久老熟女一区二区三区 | 亚洲高清码在线精品av | 起碰成人免费公开网视频 | 国产午夜福利视频在线观看 | 丁香激情六月 | 天天澡日日澡狠狠欧美老妇 | 一二三四在线观看免费高清中文网 | 97国产婷婷综合在线视频 | 4438xx亚洲最大五色丁香 | 国产91精品一区二区麻豆网站 | 一二三四视频在线社区7 | 玩弄放荡人妻一区二区三区 | 一级特级欧美aa毛片免费 | www.999精品视频观看免费 | 91杏吧在线网站 | 黄桃av无码免费一区二区三区 | 国产一区在线观看视频 | 国产激情一级毛片久久久 | 国产成人一区在线播放 | 婷婷综合色伊人阁 | 亚洲av精品一区二区三区 | 国产综合在线观看视频 | 久久se精品一区二区国产 | 99免费精品视频 | 免费深夜福利 | 国产99页 | 欧美特黄一免在线观看 | 欧美一区中文字幕 | 日本人zzzwww色视频 | 国产00高中生在线无套进入 | 天天爽亚洲中文字幕 | 48久久国产精品性色aⅴ人妻 | 中文字幕精品一区二区绿巨人 | 韩国免费a级片 | 一级黄色免费网站 |