HPM SDK
HPMicro Software Development Kit
WDG driver APIs

WDG APIs. More...

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...
 

Detailed Description

WDG APIs.

Macro Definition Documentation

◆ WDG_EXT_CLK_FREQ

#define WDG_EXT_CLK_FREQ   (32768UL)

#include <drivers/inc/hpm_wdg_drv.h>

WDG External CLock frequency: 32768 Hz

◆ WDG_RESTART_MAGIC_NUM

#define WDG_RESTART_MAGIC_NUM   (0xCAFEUL)

#include <drivers/inc/hpm_wdg_drv.h>

WDG restart magic number

◆ WDG_WRITE_ENABLE_MAGIC_NUM

#define WDG_WRITE_ENABLE_MAGIC_NUM   (0x5AA5UL)

#include <drivers/inc/hpm_wdg_drv.h>

WDG enable magic number

Typedef Documentation

◆ interrupt_interval_t

#include <drivers/inc/hpm_wdg_drv.h>

WDG Interrupt interval definitions.

◆ reset_interval_t

#include <drivers/inc/hpm_wdg_drv.h>

WDG Reset Interval definitions.

◆ wdg_clksrc_t

#include <drivers/inc/hpm_wdg_drv.h>

WDG clock source definitions.

◆ wdg_control_t

#include <drivers/inc/hpm_wdg_drv.h>

WDG Control configuration structure.

Note
WDG reset time = reset_interval + interrupt interval

Enumeration Type Documentation

◆ interrupt_interval_enum

#include <drivers/inc/hpm_wdg_drv.h>

WDG Interrupt interval definitions.

Enumerator
interrupt_interval_clock_period_multi_64 
interrupt_interval_clock_period_multi_256 
interrupt_interval_clock_period_multi_1k 
interrupt_interval_clock_period_multi_2k 
interrupt_interval_clock_period_multi_4k 
interrupt_interval_clock_period_multi_8k 
interrupt_interval_clock_period_multi_16k 
interrupt_interval_clock_period_multi_32k 
interrupt_interval_clock_period_multi_128k 
interrupt_interval_clock_period_multi_512k 
interrupt_interval_clock_period_multi_2m 
interrupt_interval_clock_period_multi_8m 
interrupt_interval_clock_period_multi_32m 
interrupt_interval_clock_period_multi_128m 
interrupt_interval_clock_period_multi_512m 
interrupt_interval_clock_period_multi_2g 
interrupt_interval_max 
interrupt_interval_out_of_range 

◆ reset_interval_enum

#include <drivers/inc/hpm_wdg_drv.h>

WDG Reset Interval definitions.

Enumerator
reset_interval_clock_period_mult_128 
reset_interval_clock_period_mult_256 
reset_interval_clock_period_mult_512 
reset_interval_clock_period_mult_1k 
reset_interval_clock_period_mult_2k 
reset_interval_clock_period_mult_4k 
reset_interval_clock_period_mult_8k 
reset_interval_clock_period_mult_16k 
reset_interval_max 
reset_interval_out_of_range 

◆ wdg_clksrc_enum

#include <drivers/inc/hpm_wdg_drv.h>

WDG clock source definitions.

Enumerator
wdg_clksrc_extclk 

WDG clock source: external clock

wdg_clksrc_pclk 

WDG clock source: Peripheral clock

wdg_clksrc_max 

Function Documentation

◆ wdg_clear_status()

static void wdg_clear_status ( WDG_Type base,
uint32_t  status_mask 
)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG clear status function.

Parameters
[in]baseWDG base address
[in]status_maskWDG status mask value

◆ wdg_clksrc_select()

static void wdg_clksrc_select ( WDG_Type base,
wdg_clksrc_t  clksrc 
)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG Clock Source selection function.

Parameters
[in]baseWDG base address
[in]clksrcWDG clock source
  • wdg_clksrc_extclk External clock
  • wdg_clksrc_pclk Peripheral clock

◆ wdg_convert_interrupt_interval_from_us()

interrupt_interval_t wdg_convert_interrupt_interval_from_us ( const uint32_t  src_freq,
uint32_t  interval_us 
)

#include <drivers/inc/hpm_wdg_drv.h>

Convert the interrupt interval value based on the WDG source clock frequency and the expected interrupt interval in terms of microseconds.

Parameters
[in]src_freqWDG source clock frequency
[in]interval_usExpected Interrupt interval in terms of microseconds
Return values
ConvertedWDG interrupt interval

◆ wdg_convert_interrupt_interval_to_us()

uint64_t wdg_convert_interrupt_interval_to_us ( const uint32_t  src_freq,
interrupt_interval_t  interval 
)

#include <drivers/inc/hpm_wdg_drv.h>

Convert the interrupt interval value based on the WDG source clock frequency and the expected interrupt interval in terms of microseconds.

Parameters
[in]src_freqWDG source clock frequency
[in]intervalExpected Interrupt interval
Return values
ConvertedWDG interrupt interval in us

◆ wdg_convert_reset_interval_from_us()

reset_interval_t wdg_convert_reset_interval_from_us ( const uint32_t  src_freq,
const uint32_t  reset_us 
)

#include <drivers/inc/hpm_wdg_drv.h>

Convert the Reset interval value based on the WDG source clock frequency and the expected reset interval in terms of microseconds.

Parameters
[in]src_freqWDG source clock frequency
[in]reset_usExpected Reset interval in terms of microseconds
Return values
ConvertedWDG reset interval

◆ wdg_convert_reset_interval_to_us()

uint32_t wdg_convert_reset_interval_to_us ( const uint32_t  src_freq,
reset_interval_t  interval 
)

#include <drivers/inc/hpm_wdg_drv.h>

Convert the Reset interval value based on the WDG source clock frequency and the expected reset interval in terms of microseconds.

Parameters
[in]src_freqWDG source clock frequency
[in]intervalExpected Reset interval
Return values
ConvertedWDG reset interval in us

◆ wdg_disable()

static void wdg_disable ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG Disable function.

Parameters
[in]baseWDG base address

◆ wdg_enable()

static void wdg_enable ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG Enable function.

Parameters
[in]baseWDG base address

◆ wdg_get_interrupt_interval_in_us()

uint64_t wdg_get_interrupt_interval_in_us ( WDG_Type base,
const uint32_t  src_freq 
)

#include <drivers/inc/hpm_wdg_drv.h>

Get Actual WDG Interrupt Interval in terms of microseconds.

Parameters
[in]baseWDG base address
[in]src_freqWDG source clock frequency
Returns
Converted WDG interrupt interval in terms of microseconds

◆ wdg_get_status()

static uint32_t wdg_get_status ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG Get Status function.

Parameters
[in]baseWDG base address
Return values
WDGstatus register value

◆ wdg_get_total_reset_interval_in_us()

uint64_t wdg_get_total_reset_interval_in_us ( WDG_Type base,
const uint32_t  src_freq 
)

#include <drivers/inc/hpm_wdg_drv.h>

Get Actual WDG Reset Interval in terms of microseconds.

Parameters
[in]baseWDG base address
[in]src_freqWDG source clock frequency
Returns
Converted WDG total reset interval in terms of microseconds

◆ wdg_init()

hpm_stat_t wdg_init ( WDG_Type base,
wdg_control_t wdg_ctrl 
)

#include <drivers/inc/hpm_wdg_drv.h>

WDG initialization function.

Parameters
[in]baseWDG base address
[in]wdg_ctrlWDG control structure
Return values
APIexecution status

◆ wdg_interrupt_disable()

static void wdg_interrupt_disable ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG interrupt disable function.

Parameters
[in]baseWDG base address

◆ wdg_interrupt_enable()

static void wdg_interrupt_enable ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG interrupt enable function.

Parameters
[in]baseWDG base address

◆ wdg_reset_disable()

static void wdg_reset_disable ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG reset disable function.

Parameters
[in]baseWDG base address

◆ wdg_reset_enable()

static void wdg_reset_enable ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG reset enable function.

Parameters
[in]baseWDG base address

◆ wdg_restart()

static void wdg_restart ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG restart function.

Parameters
[in]baseWDG base address

< WDG restart magic number

◆ wdg_write_enable()

static void wdg_write_enable ( WDG_Type base)
inlinestatic

#include <drivers/inc/hpm_wdg_drv.h>

WDG write enable function.

Parameters
[in]baseWDG base address

< WDG enable magic number