HPM SDK
HPMicro Software Development Kit
hpm_wdg_drv.h File Reference
#include "hpm_common.h"
#include "hpm_wdg_regs.h"

Go to the source code of this file.

Data Structures

struct  wdg_control_struct
 WDG Control configuration structure. More...
 

Macros

#define WDG_WRITE_ENABLE_MAGIC_NUM   (0x5AA5UL)
 
#define WDG_RESTART_MAGIC_NUM   (0xCAFEUL)
 
#define WDG_EXT_CLK_FREQ   (32768UL)
 

Typedefs

typedef enum reset_interval_enum reset_interval_t
 WDG Reset Interval definitions. More...
 
typedef enum interrupt_interval_enum interrupt_interval_t
 WDG Interrupt interval definitions. More...
 
typedef enum wdg_clksrc_enum wdg_clksrc_t
 WDG clock source definitions. More...
 
typedef struct wdg_control_struct wdg_control_t
 WDG Control configuration structure. More...
 

Enumerations

enum  reset_interval_enum {
  reset_interval_clock_period_mult_128 = 0 , reset_interval_clock_period_mult_256 = 1 , reset_interval_clock_period_mult_512 = 2 , reset_interval_clock_period_mult_1k = 3 ,
  reset_interval_clock_period_mult_2k = 4 , reset_interval_clock_period_mult_4k = 5 , reset_interval_clock_period_mult_8k = 6 , reset_interval_clock_period_mult_16k = 7 ,
  reset_interval_max = reset_interval_clock_period_mult_16k , reset_interval_out_of_range
}
 WDG Reset Interval definitions. More...
 
enum  interrupt_interval_enum {
  interrupt_interval_clock_period_multi_64 = 0 , interrupt_interval_clock_period_multi_256 = 1 , interrupt_interval_clock_period_multi_1k = 2 , interrupt_interval_clock_period_multi_2k = 3 ,
  interrupt_interval_clock_period_multi_4k = 4 , interrupt_interval_clock_period_multi_8k = 5 , interrupt_interval_clock_period_multi_16k = 6 , interrupt_interval_clock_period_multi_32k = 7 ,
  interrupt_interval_clock_period_multi_128k = 8 , interrupt_interval_clock_period_multi_512k = 9 , interrupt_interval_clock_period_multi_2m = 10 , interrupt_interval_clock_period_multi_8m = 11 ,
  interrupt_interval_clock_period_multi_32m = 12 , interrupt_interval_clock_period_multi_128m = 13 , interrupt_interval_clock_period_multi_512m = 14 , interrupt_interval_clock_period_multi_2g = 15 ,
  interrupt_interval_max = interrupt_interval_clock_period_multi_2g , interrupt_interval_out_of_range
}
 WDG Interrupt interval definitions. More...
 
enum  wdg_clksrc_enum { wdg_clksrc_extclk , wdg_clksrc_pclk , wdg_clksrc_max = wdg_clksrc_pclk }
 WDG clock source definitions. More...
 

Functions

static void wdg_write_enable (WDG_Type *base)
 WDG write enable function. More...
 
static void wdg_enable (WDG_Type *base)
 WDG Enable function. More...
 
static void wdg_disable (WDG_Type *base)
 WDG Disable function. More...
 
static void wdg_reset_enable (WDG_Type *base)
 WDG reset enable function. More...
 
static void wdg_reset_disable (WDG_Type *base)
 WDG reset disable function. More...
 
static void wdg_interrupt_enable (WDG_Type *base)
 WDG interrupt enable function. More...
 
static void wdg_interrupt_disable (WDG_Type *base)
 WDG interrupt disable function. More...
 
static void wdg_clksrc_select (WDG_Type *base, wdg_clksrc_t clksrc)
 WDG Clock Source selection function. More...
 
static void wdg_restart (WDG_Type *base)
 WDG restart function. More...
 
static uint32_t wdg_get_status (WDG_Type *base)
 WDG Get Status function. More...
 
static void wdg_clear_status (WDG_Type *base, uint32_t status_mask)
 WDG clear status function. More...
 
hpm_stat_t wdg_init (WDG_Type *base, wdg_control_t *wdg_ctrl)
 WDG initialization function. More...
 
reset_interval_t wdg_convert_reset_interval_from_us (const uint32_t src_freq, const uint32_t reset_us)
 Convert the Reset interval value based on the WDG source clock frequency and the expected reset interval in terms of microseconds. More...
 
uint64_t wdg_convert_interrupt_interval_to_us (const uint32_t src_freq, interrupt_interval_t interval)
 Convert the interrupt interval value based on the WDG source clock frequency and the expected interrupt interval in terms of microseconds. More...
 
uint32_t wdg_convert_reset_interval_to_us (const uint32_t src_freq, reset_interval_t interval)
 Convert the Reset interval value based on the WDG source clock frequency and the expected reset interval in terms of microseconds. More...
 
interrupt_interval_t wdg_convert_interrupt_interval_from_us (const uint32_t src_freq, uint32_t interval_us)
 Convert the interrupt interval value based on the WDG source clock frequency and the expected interrupt interval in terms of microseconds. More...
 
uint64_t wdg_get_interrupt_interval_in_us (WDG_Type *base, const uint32_t src_freq)
 Get Actual WDG Interrupt Interval in terms of microseconds. More...
 
uint64_t wdg_get_total_reset_interval_in_us (WDG_Type *base, const uint32_t src_freq)
 Get Actual WDG Reset Interval in terms of microseconds. More...