/**
  **********************************************************************************
  * @file    reset_hal.h
  * @author  Product application department
  * @version V1.0
  * @date    2020.03.20
  * @brief   Header file of RESET HAL module.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __RESET_HAL_H_
#define __RESET_HAL_H_

#ifdef __cplusplus
extern "C"
{
#endif

/* Includes ------------------------------------------------------------------*/
#include "reset_drv.h"

/**@defgroup HAL HAL driver
  *
  *@{
  */

/** @defgroup HAL_RESET RESET
  *
  *@{
  */

/*** 宏定义 *******************************************************************/
/** @defgroup RESET_Exported_Macros Exported Macros
  *
  * @{
  */



/**
  * @}
  */

/*** 结构体、枚举变量定义 *****************************************************/
/** @defgroup RESET_Exported_Types Exported Types
  *
  * @{
  */

  /**
  *@brief 复位方式枚举类型.
  *
  */
typedef enum
{
	HAL_RESET_RESERVE = 0,
	HAL_RESET_CARD,
	HAL_RESET_FD,
	HAL_RESET_POR,
	HAL_RESET_WD,
	HAL_RESET_SOFT,
	HAL_RESET_VD,
	HAL_RESET_TC
} RESET_StatusTypeDef;

  /**
  *@brief 复位源枚举类型.
  *
  */
typedef enum
{
	HAL_RESET_SRC_HFD = 0,
	HAL_RESET_SRC_LFD,
	HAL_RESET_SRC_HVD,
	HAL_RESET_SRC_LVD,
	HAL_RESET_SRC_CARD
} RESET_SourceTypeDef;

/**
  * @}
  */

/*** 全局变量声明 **************************************************************/
/** @defgroup RESET_Exported_Variables Exported Variables
  *
  * @{
  */



/**
  * @}
  */

/*** 函数声明 ******************************************************************/
/** @defgroup CPM_Exported_Functions Exported Functions
  * @{
  */

extern void HAL_RESET_SoftReset(void);

extern void HAL_RESET_GetStatus(RESET_StatusTypeDef *reset);

extern void HAL_RESET_Disable(RESET_SourceTypeDef source);

/**
  * @}
  */

/**
  *@}
  */

/**
  *@}
  */

#ifdef __cplusplus
}
#endif

#endif /* RESET_HAL_H_ */

