涉及文件OSAL_PwrMgr.h OSAL电源管理的API头文件OSAL_PwrMgr.C OSAL电源管理的API C文件hal_sleep.c 底层的电源管理文件电源管理结构体typedef struct{uint16 pwrmgr_task_state; //任务状态uint16 pwrmgr_next_timeout; //下一次超时uint16 accumulated_sleep_time; //睡眠时间uint8 pwrmgr_device; //电源管理设备属性,有PWRMGR_ALWAYS_ON和//PWRMGR_BATTERY两种} pwrmgr_attribute_t;#define PWRMGR_ALWAYS_ON 0#define PWRMGR_BATTERY 1选择PWRMGR_ALWAYS_ON的话将不会进入睡眠模式,选择PWRMGR_BATTERY将允许HAL管理CPU进入SLEEP LITE或者SLEEP DEEP状态。#define PWRMGR_CONSERVE 0#define PWRMGR_HOLD 1低功耗标志,主要用于osal_pwrmgr_task_state()这个函数中,用于标志每一任务是否需要低功耗。extern pwrmgr_attribute_t pwrmgr_attribute;定义一个电源管理的全局变量。函数void osal_pwrmgr_init( void ){pwrmgr_attribute.pwrmgr_device = PWRMGR_ALWAYS_ON; //默认没有睡眠模式pwrmgr_attribute.pwrmgr_task_state = 0; //清零}uint8 osal_pwrmgr_task_state( uint8 task_id, uint8 state ){if ( task_id >= tasksCnt )return ( INVALID_TASK );if ( state == PWRMGR_CONSERVE ){// 清零pwrmgr_attribute.pwrmgr_task_state &= ~(1