Files
AC707N/SDK/interface/driver/power/power_reset.h
T
2025-12-03 11:12:34 +08:00

97 lines
2.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef __POWER_RESET_H__
#define __POWER_RESET_H__
/*
*复位原因包括两种
1.系统复位源: p33 p11 主系统
2.自定义复位源:唤醒、断言、异常等
*/
enum RST_REASON {
/*主系统*/
MSYS_P11_RST, //P11复位
MSYS_P33_RST, //P33复位
MSYS_DVDD2_POR_RST, //DVDD2上电
MSYS_DVDD_POR_RST, //DVDD上电
MSYS_SOFT_RST, //主系统软件复位
MSYS_P2M_RST, //低功耗唤醒复位(p11数字复位msyssoff/poff)
MSYS_LPMR_RST, //低功耗唤醒复位(p33数字复位msys, soff)
MSYS_POWER_RETURN, //主系统未被复位
/*P11*/
P11_PVDD_POR_RST, //pvdd上电
P11_LPMR_RST, //低功耗唤醒复位(softoff legacy)
P11_P33_RST, //p33复位
P11_P33_POR_RST, //p33电源复位
P11_WDT_RST, //看门狗复位
P11_SOFT_RST, //软件复位
P11_MSYS_RST, //主系统复位P11
P11_WVDD_POR, //P33电源复位了
P11_POWER_RETURN, //P11系统未被复位
/*P33*/
P33_VDDIO_POR_RST, //vddio上电复位(电池/vpwr供电)
P33_VDDIO_LVD_RST, //vddio低压复位、上电复位(电池/vpwr供电)
P33_WDT_RST, //看门狗复位
P33_VCM_RST, //vcm高电平短接复位
P33_MCLR_RST, //mclr低电平短接复位
P33_PPINR_RST, //数字io输入长按复位
P33_P11_RST, //p11系统复位p33rset_mask=0
P33_MSYS_RST, //msys系统复位p33rset_mask=0
P33_SOFT_RST, //p33软件复位,一般软件复位指此系统复位源,所有系统会直接复位。
P33_PPINR1_RST, //模拟io输入长按复位,包括charge_full、vatch、ldoint、vabt_det
P33_PPINR1_SOFT_RST, //PINR1保护机制使能时,当软件清PINR PND1的操作发生在窗口外时产生的复位
P33_POWER_RETURN, //p33系统未被复位。
P33_LV0_RST,
/*RTC*/
R3_VDDIO_RST, //rtc vddio
R3_SOFT_RST, //rtc 软件复位
R3_POWER_RETURN, //rtc未被复位
RST_REASON_RESERVE = 63,
};
enum RESET_FLAG {
RESET_FLAG_RESERVE,
EXCEPTION_FLAG,
ASSERT_FLAG,
UPDATE_FLAG,
BT_FLAG,
LP_OSC_UP_TO,
SPI0_WAIT_PND_ERR,
SOFF_ENTER_TO,
};
/**
* @brief 判断是否为指定复位源
* @param index: 复位源
* @retval 1: 是 0:否
*/
bool is_reset_source(enum RST_REASON index);
/**
* @brief 判断是否为指定系统软件复位源
指定软件复位源为flag
is_system_reset(flag)
is_reset_source(flag+P33_EXCEPTION_SOFT_RST)
* @param index: 软件复位源
* @retval 1: 是 0:否
*/
bool is_system_reset(enum RESET_FLAG flag);
/**
* @brief 系统软复位,并指定复位信息
* @param flag:系统软复位源
* @retval 1: 是 0:否
*/
void system_reset(enum RESET_FLAG flag);
/**
* @brief 复位的时候锁存模拟模块状态,例如GPIO
*/
void latch_reset();
#endif