xt-sdk 文档
v1.0.3
xt-sdk 嵌入式 SDK API 参考
Toggle main menu visibility
载入中...
搜索中...
未找到
xt_hal_pm.h
浏览该文件的文档.
1
12
13
#ifndef __XT_HAL_PM_H__
14
#define __XT_HAL_PM_H__
15
16
/* ==================== [Includes] ========================================== */
17
18
#include "
xt_hal_internal.h
"
19
#include "
xt_hal_rtc.h
"
20
21
#ifdef __cplusplus
22
extern
"C"
{
23
#endif
24
31
32
/* ==================== [Defines] =========================================== */
33
34
#define XT_HAL_PM_INVALID_ID (0xFF)
35
36
/* ==================== [Typedefs] ========================================== */
37
41
enum
xt_hal_pm_event_id
{
42
XT_HAL_PM_EVENT_WAKEUP
= 0x00,
43
XT_HAL_PM_EVENT_TIMER
= 0x01,
44
};
45
52
typedef
void (*
xt_hal_pm_cb_t
)(uint8_t id, uint32_t event_id);
53
57
enum
xt_hal_pm_mode
{
58
XT_HAL_PM_MODE_WORK
= 0,
59
XT_HAL_PM_MODE_SLEEP
,
60
XT_HAL_PM_MODE_PSM
,
61
XT_HAL_PM_MODE_MAX
,
62
};
63
67
enum
xt_hal_pm_wake_reason
{
68
XT_HAL_PM_WAKE_REASON_RESET
= 0,
69
XT_HAL_PM_WAKE_REASON_RTC
,
70
XT_HAL_PM_WAKE_REASON_WAKEUP
,
71
XT_HAL_PM_WAKE_REASON_KEY_WAKEUP
,
72
};
73
77
enum
xt_hal_pm_last_state
{
78
XT_HAL_PM_LAST_STATE_RESET
= 0,
79
XT_HAL_PM_LAST_STATE_DEEP_SLEEP
= 3,
80
XT_HAL_PM_LAST_STATE_STANDBY
= 4,
81
};
82
86
enum
xt_hal_pm_wake_reason_detail
{
87
XT_HAL_PM_WAKE_REASON_DETAIL_RESET
= 0,
88
XT_HAL_PM_WAKE_REASON_DETAIL_RTC
= 1,
89
XT_HAL_PM_WAKE_REASON_DETAIL_WAKEUP
= 2,
90
XT_HAL_PM_WAKE_REASON_DETAIL_WAKEUP_RTC
= 3,
91
};
92
93
enum
xt_hal_pm_power_on_reason
{
94
XT_HAL_PM_POWER_ON_NORMAL
= 0,
95
XT_HAL_PM_POWER_ON_CHARGING
,
96
XT_HAL_PM_POWER_ON_ALRAM
,
97
XT_HAL_PM_POWER_ON_EXCEPTRESET
,
98
XT_HAL_PM_POWER_ON_FOTA
,
/*!* FOTA 开机 */
99
XT_HAL_PM_POWER_ON_RTC
,
100
XT_HAL_PM_POWER_ON_RESET
,
101
XT_HAL_PM_POWER_ON_WDT
,
102
XT_HAL_PM_POWER_ON_STANDBY
,
103
XT_HAL_PM_POWER_ON_SW_RESET
,
104
XT_HAL_PM_POWER_ON_UNKNOWN
,
105
XT_HAL_PM_POWER_ON_INVALID
,
106
};
107
108
/* ==================== [Global Prototypes] ================================= */
109
119
xt_err_t
xt_hal_pm_request
(uint8_t mode);
120
130
xt_err_t
xt_hal_pm_force
(uint8_t mode);
131
138
int32_t
xt_hal_pm_check
(uint8_t mode);
139
155
xt_err_t
xt_hal_pm_timer_setup
(uint8_t timer_id, uint32_t timeout_ms,
xt_hal_pm_cb_t
cb);
156
166
xt_err_t
xt_hal_pm_timer_close
(uint8_t timer_id);
167
174
bool
xt_hal_pm_timer_is_running
(uint8_t timer_id);
175
189
xt_err_t
xt_hal_pm_timer_get_remaining
(uint8_t timer_id,
xt_hal_rtc_timestamp_t
*remaining_time_ms);
190
198
xt_err_t
xt_hal_pm_get_last_state
(uint8_t *last_state, uint8_t *wake_reason);
199
205
int32_t
xt_hal_pm_get_wake_reason
(
void
);
206
212
int32_t
xt_hal_pm_get_reset_reason
(
void
);
213
219
xt_err_t
xt_hal_pm_poweroff
(
void
);
220
226
xt_err_t
xt_hal_pm_reset
(
void
);
227
238
xt_err_t
xt_hal_pm_set_power
(uint8_t power_id, uint8_t val);
239
240
/* ==================== [Macros] ============================================ */
241
/* xt_hal_pm */
243
244
#ifdef __cplusplus
245
}
/* extern "C" */
246
#endif
247
248
#endif
/* __XT_HAL_PM_H__ */
xt_err_t
int32_t xt_err_t
错误码类型
定义
xt_error.h:38
xt_hal_pm_get_reset_reason
int32_t xt_hal_pm_get_reset_reason(void)
获取重启原因,等同于获取开机原因
xt_hal_pm_wake_reason_detail
xt_hal_pm_wake_reason_detail
唤醒原因详细枚举
定义
xt_hal_pm.h:86
xt_hal_pm_set_power
xt_err_t xt_hal_pm_set_power(uint8_t power_id, uint8_t val)
控制内部电源域开关
xt_hal_pm_event_id
xt_hal_pm_event_id
PM 事件ID枚举
定义
xt_hal_pm.h:41
xt_hal_pm_get_wake_reason
int32_t xt_hal_pm_get_wake_reason(void)
获取开机原因
xt_hal_pm_mode
xt_hal_pm_mode
工作模式枚举
定义
xt_hal_pm.h:57
xt_hal_pm_cb_t
void(* xt_hal_pm_cb_t)(uint8_t id, uint32_t event_id)
PM 回调函数类型定义
定义
xt_hal_pm.h:52
xt_hal_pm_check
int32_t xt_hal_pm_check(uint8_t mode)
检查是否可以进入指定低功耗模式
xt_hal_pm_timer_close
xt_err_t xt_hal_pm_timer_close(uint8_t timer_id)
关闭定时唤醒
xt_hal_pm_timer_get_remaining
xt_err_t xt_hal_pm_timer_get_remaining(uint8_t timer_id, xt_hal_rtc_timestamp_t *remaining_time_ms)
获取定时器剩余时间
xt_hal_pm_request
xt_err_t xt_hal_pm_request(uint8_t mode)
请求进入指定功耗模式
xt_hal_pm_power_on_reason
xt_hal_pm_power_on_reason
定义
xt_hal_pm.h:93
xt_hal_pm_force
xt_err_t xt_hal_pm_force(uint8_t mode)
强制进入指定功耗模式
xt_hal_pm_get_last_state
xt_err_t xt_hal_pm_get_last_state(uint8_t *last_state, uint8_t *wake_reason)
唤醒原因,用于判断是从开机是否是由休眠状态下开机/唤醒
xt_hal_pm_timer_setup
xt_err_t xt_hal_pm_timer_setup(uint8_t timer_id, uint32_t timeout_ms, xt_hal_pm_cb_t cb)
设置定时唤醒
xt_hal_pm_timer_is_running
bool xt_hal_pm_timer_is_running(uint8_t timer_id)
检查定时器是否运行
xt_hal_pm_last_state
xt_hal_pm_last_state
上次状态枚举
定义
xt_hal_pm.h:77
xt_hal_pm_poweroff
xt_err_t xt_hal_pm_poweroff(void)
系统关机
xt_hal_pm_wake_reason
xt_hal_pm_wake_reason
唤醒原因枚举
定义
xt_hal_pm.h:67
xt_hal_pm_reset
xt_err_t xt_hal_pm_reset(void)
系统复位
XT_HAL_PM_WAKE_REASON_DETAIL_WAKEUP_RTC
@ XT_HAL_PM_WAKE_REASON_DETAIL_WAKEUP_RTC
定义
xt_hal_pm.h:90
XT_HAL_PM_WAKE_REASON_DETAIL_RTC
@ XT_HAL_PM_WAKE_REASON_DETAIL_RTC
定义
xt_hal_pm.h:88
XT_HAL_PM_WAKE_REASON_DETAIL_RESET
@ XT_HAL_PM_WAKE_REASON_DETAIL_RESET
定义
xt_hal_pm.h:87
XT_HAL_PM_WAKE_REASON_DETAIL_WAKEUP
@ XT_HAL_PM_WAKE_REASON_DETAIL_WAKEUP
定义
xt_hal_pm.h:89
XT_HAL_PM_EVENT_TIMER
@ XT_HAL_PM_EVENT_TIMER
定义
xt_hal_pm.h:43
XT_HAL_PM_EVENT_WAKEUP
@ XT_HAL_PM_EVENT_WAKEUP
定义
xt_hal_pm.h:42
XT_HAL_PM_MODE_MAX
@ XT_HAL_PM_MODE_MAX
定义
xt_hal_pm.h:61
XT_HAL_PM_MODE_PSM
@ XT_HAL_PM_MODE_PSM
定义
xt_hal_pm.h:60
XT_HAL_PM_MODE_WORK
@ XT_HAL_PM_MODE_WORK
定义
xt_hal_pm.h:58
XT_HAL_PM_MODE_SLEEP
@ XT_HAL_PM_MODE_SLEEP
定义
xt_hal_pm.h:59
XT_HAL_PM_POWER_ON_WDT
@ XT_HAL_PM_POWER_ON_WDT
定义
xt_hal_pm.h:101
XT_HAL_PM_POWER_ON_CHARGING
@ XT_HAL_PM_POWER_ON_CHARGING
定义
xt_hal_pm.h:95
XT_HAL_PM_POWER_ON_STANDBY
@ XT_HAL_PM_POWER_ON_STANDBY
定义
xt_hal_pm.h:102
XT_HAL_PM_POWER_ON_NORMAL
@ XT_HAL_PM_POWER_ON_NORMAL
定义
xt_hal_pm.h:94
XT_HAL_PM_POWER_ON_EXCEPTRESET
@ XT_HAL_PM_POWER_ON_EXCEPTRESET
定义
xt_hal_pm.h:97
XT_HAL_PM_POWER_ON_RESET
@ XT_HAL_PM_POWER_ON_RESET
定义
xt_hal_pm.h:100
XT_HAL_PM_POWER_ON_INVALID
@ XT_HAL_PM_POWER_ON_INVALID
定义
xt_hal_pm.h:105
XT_HAL_PM_POWER_ON_UNKNOWN
@ XT_HAL_PM_POWER_ON_UNKNOWN
定义
xt_hal_pm.h:104
XT_HAL_PM_POWER_ON_ALRAM
@ XT_HAL_PM_POWER_ON_ALRAM
定义
xt_hal_pm.h:96
XT_HAL_PM_POWER_ON_FOTA
@ XT_HAL_PM_POWER_ON_FOTA
定义
xt_hal_pm.h:98
XT_HAL_PM_POWER_ON_RTC
@ XT_HAL_PM_POWER_ON_RTC
定义
xt_hal_pm.h:99
XT_HAL_PM_POWER_ON_SW_RESET
@ XT_HAL_PM_POWER_ON_SW_RESET
定义
xt_hal_pm.h:103
XT_HAL_PM_LAST_STATE_DEEP_SLEEP
@ XT_HAL_PM_LAST_STATE_DEEP_SLEEP
定义
xt_hal_pm.h:79
XT_HAL_PM_LAST_STATE_RESET
@ XT_HAL_PM_LAST_STATE_RESET
定义
xt_hal_pm.h:78
XT_HAL_PM_LAST_STATE_STANDBY
@ XT_HAL_PM_LAST_STATE_STANDBY
定义
xt_hal_pm.h:80
XT_HAL_PM_WAKE_REASON_KEY_WAKEUP
@ XT_HAL_PM_WAKE_REASON_KEY_WAKEUP
定义
xt_hal_pm.h:71
XT_HAL_PM_WAKE_REASON_RTC
@ XT_HAL_PM_WAKE_REASON_RTC
定义
xt_hal_pm.h:69
XT_HAL_PM_WAKE_REASON_RESET
@ XT_HAL_PM_WAKE_REASON_RESET
定义
xt_hal_pm.h:68
XT_HAL_PM_WAKE_REASON_WAKEUP
@ XT_HAL_PM_WAKE_REASON_WAKEUP
定义
xt_hal_pm.h:70
xt_hal_rtc_timestamp_t
uint32_t xt_hal_rtc_timestamp_t
RTC 时间戳类型
定义
xt_hal_rtc.h:39
xt_hal_internal.h
XTINY HAL 内部公共头文件
xt_hal_rtc.h
RTC 接口
platforms
components
xtiny
xt_hal
xt_hal_pm.h
生成于
, 为 xt-sdk 文档使用
1.17.0