前言
电源管理显着延长了电池为嵌入式设备供电的时间。但是,应用程序、操作系统和外围驱动程序在执行重要操作时发生动态节能转换可能会受到不利影响。为了管理此类影响,为这些组件提供电源管理功能以协调和安全地管理与省电状态之间的转换。SimpleLink MCU SDK 电源管理支持 CC13xx/CC26xx、CC32xx、MSP432 和 MSP432E4系列 器件。
Power Manager API 用于各种开发级别。一般来说,驱动程序负责用于定义与何时可以使用省电状态以及什么情况相关的具体要求必须在使用省电状态之前和之后执行操作。
一.Static Configuration
某些 Power Manager 功能可通过 Power Manager 配置对象进行静态配置在板文件中定义。 配置对象的元素是特定于设备系列的,并且是在相关的 Power*.h 设备特定头文件中定义。例如,对于 CC32xx,PowerCC32XX_ConfigV1 类型的配置结构需要是为申请声明。 此结构及其元素在 PowerCC32XX.h 中定义。 结构通常在 Board.h 文件包含的设备特定文件中声明,在本例中为CC3220S_LAUNCHXL.c 或 CC3220SF_LAUNCHXL.c。 如果此结构未包含在应用程序中,则应用程序将无法链接。
配置对象在以下位置定义和声明:
二.Runtime Configuration
对于每个目标,Power 配置结构的配置元素之一(即,PowerCC26XX_Config、PowerCC32XX_ConfigV1、PowerMSP432_ConfigV1,或PowerMSP432E4_Config)是“enablePolicy”标志。此布尔值确定是否已配置每次通过空闲循环时都会调用电源策略函数。此标志通常设置为“假”在SDK 示例。这允许应用程序最初在调试器中运行而不会产生副作用由于转换到低功耗状态。这对于 CC32xx 器件尤其重要,因为睡眠转换通常会导致调试器分离。Power_enablePolicy() API 允许应用程序在运行时显式启用策略,覆盖静态配置结构中的设置。这允许一个通用的板文件被用于多个应用程序,因为各个应用程序可以在适当的时候单独启用电源策略。Power_disablePolicy() API 允许应用程序在运行时显式禁用策略。
三.API Functions
• Power_enablePolicy() 使配置的电源策略功能在每次通过时运行操作系统空闲循环。
• Power_disablePolicy() 在运行时禁用配置的电源策略功能。
• Power_setPolicy() 在运行时选择不同的电源策略。
• Power_getConstraintMask() 获取一个位掩码,用于标识当前声明的约束集。
• Power_getDependencyCount() 获取当前声明的依赖项的数量资源。
• Power_getPerformanceLevel() 获取设备的当前性能级别。(仅限 MSP432)
• Power_getTransitionLatency() 获取睡眠状态的最小转换延迟,单位为微秒。
• Power_getTransitionState() 获取当前的Power Manager 转换状态。
• Power_init() 是一个需要在启动时调用以初始化电源管理器状态的函数。
• Power_registerNotify() 注册在特定电源事件时调用的函数。
• Power_releaseConstraint() 释放先前设置的约束。
• Power_releaseDependency() 释放先前设置的依赖项。
• Power_setConstraint() 设置操作约束。
• Power_setDependency() 设置对可管理资源的依赖。
• Power_setPerformanceLevel() 将设备转换到新的性能级别。 (仅限 MSP432)
• Power_shutdown() 将设备置于最低功耗关机状态。
• Power_sleep() 将设备置于预定义的睡眠状态。。
• Power_unregisterNotify() 从事件通知中取消注册函数。