hpw422移植新的sdk

This commit is contained in:
xushaoxiang
2026-07-03 18:08:25 +08:00
commit 945a5a5b0b
2583 changed files with 713209 additions and 0 deletions
@@ -0,0 +1,264 @@
/*!
* \file xc6xxx_hal_wdt.h
*
* \brief The header of xc6xxx_hal_wdt.c
*
* \copyright Revised BSD License, see section \ref LICENSE.
*
* \code
*
* _ __ _ ________ _
* | |/ /(_)___ / ____/ /_ (_)___
* | // / __ \/ / / __ \/ / __ \
* / |/ / / / / /___/ / / / / /_/ /
* /_/|_/_/_/ /_/\____/_/ /_/_/ .___/
* /_/
* (C) 2022-2025 XinChip
*
* \endcode
*
* \author ( XinChip ) Alex-J
*
* \author ( XinChip )
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __XC_DRV_WDT_H_
#define __XC_DRV_WDT_H_
/*-----------------------------------------------------------------------------------
INCLUDE HEADE FILES
------------------------------------------------------------------------------------*/
#include "xc6xxx.h"
#define WDT_SYS_RSTN_MASK_DISABLE (0x00)
#define WDT_SYS_RSTN_MASK_ENABLE (0x01)
#define WDT_M0_RSTN_MASK_ENABLE (0x02)
#define WDT_M0_RSTN_MASK_DISABLE (0x00)
#define WDT_CR_RPL_2PCLK (0UL)
#define WDT_CR_RPL_4PCLK (1UL)
#define WDT_CR_RPL_8PCLK (2UL)
#define WDT_CR_RPL_16PCLK (3UL)
#define WDT_CR_RPL_32PCLK (4UL)
#define WDT_CR_RPL_64PCLK (5UL)
#define WDT_CR_RPL_128PCLK (6UL)
#define WDT_CR_RPL_256PCLK (7UL)
#define WDT_CRR_CRR_ENABLE (0x76UL)
#define WDT_CLK_32K_RESET_MODE0_2048MS 0x00
#define WDT_CLK_32K_RESET_MODE0_4096MS 0x01
#define WDT_CLK_32K_RESET_MODE0_8192MS 0x02
#define WDT_CLK_32K_RESET_MODE0_16384MS 0x03
#define WDT_CLK_32K_RESET_MODE0_32768MS 0x04
#define WDT_CLK_32K_RESET_MODE0_65536MS 0x05
#define WDT_CLK_32K_RESET_MODE0_131072MS 0x06
#define WDT_CLK_32K_RESET_MODE0_262144MS 0x07
#define WDT_CLK_32K_RESET_MODE0_524288MS 0x08
#define WDT_CLK_32K_RESET_MODE0_1048576MS 0x09
#define WDT_CLK_32K_RESET_MODE0_2097152MS 0x0a
#define WDT_CLK_32K_RESET_MODE0_4194304MS 0x0b
#define WDT_CLK_32K_RESET_MODE0_8388608MS 0x0c
#define WDT_CLK_32K_RESET_MODE0_16777216MS 0x0d
#define WDT_CLK_32K_RESET_MODE0_33554432MS 0x0e
#define WDT_CLK_32K_RESET_MODE0_67108864MS 0x0f
#define WDT_CLK_16M_RESET_MODE0_8192US 0x00
#define WDT_CLK_16M_RESET_MODE0_16384US 0x01
#define WDT_CLK_16M_RESET_MODE0_32768US 0x02
#define WDT_CLK_16M_RESET_MODE0_65536US 0x03
#define WDT_CLK_16M_RESET_MODE0_131072US 0x04
#define WDT_CLK_16M_RESET_MODE0_262144US 0x05
#define WDT_CLK_16M_RESET_MODE0_524288US 0x06
#define WDT_CLK_16M_RESET_MODE0_1048576US 0x07
#define WDT_CLK_16M_RESET_MODE0_2097152US 0x08
#define WDT_CLK_16M_RESET_MODE0_4194304US 0x09
#define WDT_CLK_16M_RESET_MODE0_8388608US 0x0a
#define WDT_CLK_16M_RESET_MODE0_16777216US 0x0b
#define WDT_CLK_16M_RESET_MODE0_33554432US 0x0c
#define WDT_CLK_16M_RESET_MODE0_67108864US 0x0d
#define WDT_CLK_16M_RESET_MODE0_134217728US 0x0e
#define WDT_CLK_16M_RESET_MODE0_268435456US 0x0f
#define WDT_CLK_32M_RESET_MODE0_4096US 0x00
#define WDT_CLK_32M_RESET_MODE0_8192US 0x01
#define WDT_CLK_32M_RESET_MODE0_16384US 0x02
#define WDT_CLK_32M_RESET_MODE0_32768US 0x03
#define WDT_CLK_32M_RESET_MODE0_65536US 0x04
#define WDT_CLK_32M_RESET_MODE0_131072US 0x05
#define WDT_CLK_32M_RESET_MODE0_262144US 0x06
#define WDT_CLK_32M_RESET_MODE0_524288US 0x07
#define WDT_CLK_32M_RESET_MODE0_1048576US 0x08
#define WDT_CLK_32M_RESET_MODE0_2097152US 0x09
#define WDT_CLK_32M_RESET_MODE0_4194304US 0x0a
#define WDT_CLK_32M_RESET_MODE0_8388608US 0x0b
#define WDT_CLK_32M_RESET_MODE0_16777216US 0x0c
#define WDT_CLK_32M_RESET_MODE0_33554432US 0x0d
#define WDT_CLK_32M_RESET_MODE0_67108864US 0x0e
#define WDT_CLK_32M_RESET_MODE0_134217728US 0x0f
#define WDT_CLK_48M_RESET_MODE0_2731US 0x00
#define WDT_CLK_48M_RESET_MODE0_5461US 0x01
#define WDT_CLK_48M_RESET_MODE0_10923US 0x02
#define WDT_CLK_48M_RESET_MODE0_21845US 0x03
#define WDT_CLK_48M_RESET_MODE0_43691US 0x04
#define WDT_CLK_48M_RESET_MODE0_87381US 0x05
#define WDT_CLK_48M_RESET_MODE0_174763US 0x06
#define WDT_CLK_48M_RESET_MODE0_349525US 0x07
#define WDT_CLK_48M_RESET_MODE0_699051US 0x08
#define WDT_CLK_48M_RESET_MODE0_1398101US 0x09
#define WDT_CLK_48M_RESET_MODE0_2796203US 0x0a
#define WDT_CLK_48M_RESET_MODE0_5592405US 0x0b
#define WDT_CLK_48M_RESET_MODE0_11184811US 0x0c
#define WDT_CLK_48M_RESET_MODE0_22369621US 0x0d
#define WDT_CLK_48M_RESET_MODE0_44739243US 0x0e
#define WDT_CLK_48M_RESET_MODE0_89478485US 0x0f
#define WDT_CLK_64M_RESET_MDOE0_2048US 0x00
#define WDT_CLK_64M_RESET_MDOE0_4096US 0x01
#define WDT_CLK_64M_RESET_MDOE0_8192US 0x02
#define WDT_CLK_64M_RESET_MDOE0_16384US 0x03
#define WDT_CLK_64M_RESET_MDOE0_32768US 0x04
#define WDT_CLK_64M_RESET_MDOE0_65536US 0x05
#define WDT_CLK_64M_RESET_MDOE0_131072US 0x06
#define WDT_CLK_64M_RESET_MDOE0_262144US 0x07
#define WDT_CLK_64M_RESET_MDOE0_524288US 0x08
#define WDT_CLK_64M_RESET_MDOE0_1048576US 0x09
#define WDT_CLK_64M_RESET_MDOE0_2097152US 0x0a
#define WDT_CLK_64M_RESET_MDOE0_4194304US 0x0b
#define WDT_CLK_64M_RESET_MDOE0_8388608US 0x0c
#define WDT_CLK_64M_RESET_MDOE0_16777216US 0x0d
#define WDT_CLK_64M_RESET_MDOE0_33554432US 0x0e
#define WDT_CLK_64M_RESET_MDOE0_67108864US 0x0f
#define WDT_CLK_32K_RESET_MODE1_4096MS 0x00
#define WDT_CLK_32K_RESET_MODE1_8192MS 0x01
#define WDT_CLK_32K_RESET_MODE1_16384MS 0x02
#define WDT_CLK_32K_RESET_MODE1_32768MS 0x03
#define WDT_CLK_32K_RESET_MODE1_65536MS 0x04
#define WDT_CLK_32K_RESET_MODE1_131072MS 0x05
#define WDT_CLK_32K_RESET_MODE1_262144MS 0x06
#define WDT_CLK_32K_RESET_MODE1_524288MS 0x07
#define WDT_CLK_32K_RESET_MODE1_1048576MS 0x08
#define WDT_CLK_32K_RESET_MODE1_2097152MS 0x09
#define WDT_CLK_32K_RESET_MODE1_4194304MS 0x0a
#define WDT_CLK_32K_RESET_MODE1_8388608MS 0x0b
#define WDT_CLK_32K_RESET_MODE1_16777216MS 0x0c
#define WDT_CLK_32K_RESET_MODE1_33554432MS 0x0d
#define WDT_CLK_32K_RESET_MODE1_67108864MS 0x0e
#define WDT_CLK_32K_RESET_MODE1_134217728MS 0x0f
#define WDT_CLK_16M_RESET_MODE1_16384US 0x00
#define WDT_CLK_16M_RESET_MODE1_32768US 0x01
#define WDT_CLK_16M_RESET_MODE1_65536US 0x02
#define WDT_CLK_16M_RESET_MODE1_131072US 0x03
#define WDT_CLK_16M_RESET_MODE1_262144US 0x04
#define WDT_CLK_16M_RESET_MODE1_524288US 0x05
#define WDT_CLK_16M_RESET_MODE1_1048576US 0x06
#define WDT_CLK_16M_RESET_MODE1_2097152US 0x07
#define WDT_CLK_16M_RESET_MODE1_4194304US 0x08
#define WDT_CLK_16M_RESET_MODE1_8388608US 0x09
#define WDT_CLK_16M_RESET_MODE1_16777216US 0x0a
#define WDT_CLK_16M_RESET_MODE1_33554432US 0x0b
#define WDT_CLK_16M_RESET_MODE1_67108864US 0x0c
#define WDT_CLK_16M_RESET_MODE1_134217728US 0x0d
#define WDT_CLK_16M_RESET_MODE1_268435456US 0x0e
#define WDT_CLK_16M_RESET_MODE1_536870912US 0x0f
#define WDT_CLK_32M_RESET_MODE1_8192US 0x00
#define WDT_CLK_32M_RESET_MODE1_16384US 0x01
#define WDT_CLK_32M_RESET_MODE1_32768US 0x02
#define WDT_CLK_32M_RESET_MODE1_65536US 0x03
#define WDT_CLK_32M_RESET_MODE1_131072US 0x04
#define WDT_CLK_32M_RESET_MODE1_262144US 0x05
#define WDT_CLK_32M_RESET_MODE1_524288US 0x06
#define WDT_CLK_32M_RESET_MODE1_1048576US 0x07
#define WDT_CLK_32M_RESET_MODE1_2097152US 0x08
#define WDT_CLK_32M_RESET_MODE1_4194304US 0x09
#define WDT_CLK_32M_RESET_MODE1_8388608US 0x0a
#define WDT_CLK_32M_RESET_MODE1_16777216US 0x0b
#define WDT_CLK_32M_RESET_MODE1_33554432US 0x0c
#define WDT_CLK_32M_RESET_MODE1_67108864US 0x0d
#define WDT_CLK_32M_RESET_MODE1_134217728US 0x0e
#define WDT_CLK_32M_RESET_MODE1_268435456US 0x0f
#define WDT_CLK_48M_RESET_MODE1_5461US 0x00
#define WDT_CLK_48M_RESET_MODE1_10923US 0x01
#define WDT_CLK_48M_RESET_MODE1_21845US 0x02
#define WDT_CLK_48M_RESET_MODE1_43691US 0x03
#define WDT_CLK_48M_RESET_MODE1_87381US 0x04
#define WDT_CLK_48M_RESET_MODE1_174763US 0x05
#define WDT_CLK_48M_RESET_MODE1_349525US 0x06
#define WDT_CLK_48M_RESET_MODE1_699051US 0x07
#define WDT_CLK_48M_RESET_MODE1_1398101US 0x08
#define WDT_CLK_48M_RESET_MODE1_2796203US 0x09
#define WDT_CLK_48M_RESET_MODE1_5592405US 0x0a
#define WDT_CLK_48M_RESET_MODE1_11184811US 0x0b
#define WDT_CLK_48M_RESET_MODE1_22369621US 0x0c
#define WDT_CLK_48M_RESET_MODE1_44739243US 0x0d
#define WDT_CLK_48M_RESET_MODE1_89478485US 0x0e
#define WDT_CLK_48M_RESET_MODE1_178956971US 0x0f
#define WDT_CLK_64M_RESET_MODE1_4096US 0x00
#define WDT_CLK_64M_RESET_MODE1_8192US 0x01
#define WDT_CLK_64M_RESET_MODE1_16384US 0x02
#define WDT_CLK_64M_RESET_MODE1_32768US 0x03
#define WDT_CLK_64M_RESET_MODE1_65536US 0x04
#define WDT_CLK_64M_RESET_MODE1_131072US 0x05
#define WDT_CLK_64M_RESET_MODE1_262144US 0x06
#define WDT_CLK_64M_RESET_MODE1_524288US 0x07
#define WDT_CLK_64M_RESET_MODE1_1048576US 0x08
#define WDT_CLK_64M_RESET_MODE1_2097152US 0x09
#define WDT_CLK_64M_RESET_MODE1_4194304US 0x0a
#define WDT_CLK_64M_RESET_MODE1_8388608US 0x0b
#define WDT_CLK_64M_RESET_MODE1_16777216US 0x0c
#define WDT_CLK_64M_RESET_MODE1_33554432US 0x0d
#define WDT_CLK_64M_RESET_MODE1_67108864US 0x0e
#define WDT_CLK_64M_RESET_MODE1_134217728US 0x0f
/*------------------------------------------------------------------------------------
TypeDef
-------------------------------------------------------------------------------------*/
typedef enum
{
WDT_WORK_MODE0,
WDT_WORK_MODE1
} WDT_WorkModeTypeDef;
typedef enum
{
WDT_WORK_32M,
WDT_WORK_32K,
} WDT_WorkSrcTypeDef;
typedef struct
{
uint32_t ReloadValue;
WDT_WorkModeTypeDef WorkMode;
WDT_WorkSrcTypeDef PclkSel;
} WDT_InitCfg_t;
/*------------------------------------------------------------------------------------
Inline Functions
-------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------
Exported Functions
-------------------------------------------------------------------------------------*/
void xc_wdt_init(WDT_InitCfg_t *WDT_InitStruct);
void xc_wdt_start(void);
void xc_wdt_stop(void);
void xc_wdt_refresh(void);
void xc_wdt_reload(void);
#endif /* __XC6xxx_HAL_WDT_H_ */