77 lines
3.1 KiB
C
77 lines
3.1 KiB
C
|
||
|
||
|
||
#ifndef __CH57x_SYS_H__
|
||
#define __CH57x_SYS_H__
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include "CH579SFR.h"
|
||
#include "core_cm0.h"
|
||
|
||
|
||
|
||
/**
|
||
* @brief rtc interrupt event define
|
||
*/
|
||
typedef enum
|
||
{
|
||
RST_STATUS_SW = 0, // 软件复位
|
||
RST_STATUS_RPOR, // 上电复位
|
||
RST_STATUS_WTR, // 看门狗超时复位
|
||
RST_STATUS_MR, // 外部手动复位
|
||
RST_STATUS_LRM0, // 唤醒复位-软复位引起
|
||
RST_STATUS_GPWSM, // 下电模式唤醒复位
|
||
RST_STATUS_LRM1, // 唤醒复位-看门狗引起
|
||
RST_STATUS_LRM2, // 唤醒复位-手动复位引起
|
||
|
||
}SYS_ResetStaTypeDef;
|
||
|
||
/**
|
||
* @brief rtc interrupt event define
|
||
*/
|
||
typedef enum
|
||
{
|
||
INFO_ROM_READ = 0, // FlashROM 代码和数据区 是否可读
|
||
INFO_RESET_EN = 2, // RST#外部手动复位输入功能是否开启
|
||
INFO_BOOT_EN, // 系统引导程序 BootLoader 是否开启
|
||
INFO_DEBUG_EN, // 系统仿真调试接口是否开启
|
||
INFO_LOADER, // 当前系统是否处于Bootloader 区
|
||
STA_SAFEACC_ACT, // 当前系统是否处于安全访问状态,否则RWA属性区域不可访问
|
||
|
||
}SYS_InfoStaTypeDef;
|
||
|
||
|
||
#define SYS_GetChipID() R8_CHIP_ID /* 获取芯片ID类,一般为固定值 */
|
||
#define SYS_GetAccessID() R8_SAFE_ACCESS_ID /* 获取安全访问ID,一般为固定值 */
|
||
UINT8 SYS_GetInfoSta( SYS_InfoStaTypeDef i ); /* 获取当前系统信息状态 */
|
||
// refer to SYS_ResetStaTypeDef
|
||
#define SYS_GetLastResetSta() (R8_RESET_STATUS&RB_RESET_FLAG) /* 获取系统上次复位状态 */
|
||
void SYS_ResetExecute( void ); /* 执行系统软件复位 */
|
||
#define SYS_ResetKeepBuf( d ) (R8_GLOB_RESET_KEEP = d) /* 不受手动复位、 软件复位、 看门狗复位或者普通唤醒复位的影响 */
|
||
|
||
void SYS_DisableAllIrq( PUINT32 pirqv); /* 关闭所有中断,并保留当前中断值 */
|
||
void SYS_RecoverIrq( UINT32 irq_status ); /* 恢复之前关闭的中断值 */
|
||
UINT32 SYS_GetSysTickCnt( void ); /* 获取当前系统(SYSTICK)计数值 */
|
||
|
||
#define WWDG_SetCounter( c ) (R8_WDOG_COUNT = c) /* 加载看门狗计数初值,递增型 */
|
||
void WWDG_ITCfg( UINT8 s ); /* 看门狗溢出中断使能 */
|
||
void WWDG_ResetCfg( UINT8 s ); /* 看门狗溢出复位使能 */
|
||
#define WWDG_GetFlowFlag() (R8_RST_WDOG_CTRL&RB_WDOG_INT_FLAG) /* 获取当前看门狗定时器溢出标志 */
|
||
void WWDG_ClearFlag(void); /* 清除看门狗中断标志,重新加载计数值也可清除 */
|
||
|
||
|
||
void mDelayuS( UINT16 t ); /* uS 延时 */
|
||
void mDelaymS( UINT16 t ); /* mS 延时 */
|
||
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif // __CH57x_SYS_H__
|
||
|