VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions
vsf_template_rtc.h File Reference
#include "./vsf_template_hal_driver.h"
#include "hal/arch/vsf_arch.h"

Go to the source code of this file.

Data Structures

struct  vsf_rtc_tm_t
 
struct  vsf_rtc_isr_t
 
struct  vsf_rtc_cfg_t
 rtc configuration More...
 
struct  vsf_rtc_capability_t
 
struct  vsf_rtc_op_t
 
struct  vsf_rtc_t
 

Macros

#define VSF_RTC_CFG_MULTI_CLASS   ENABLED
 
#define VSF_RTC_CFG_PREFIX   vsf
 
#define VSF_RTC_CFG_FUNCTION_RENAME   ENABLED
 
#define VSF_RTC_CFG_REIMPLEMENT_TYPE_IRQ_MASK   DISABLED
 
#define VSF_RTC_CFG_TIME_TYPE   uint64_t
 
#define VSF_RTC_CFG_REIMPLEMENT_TYPE_CFG   DISABLED
 
#define VSF_RTC_CFG_REIMPLEMENT_TYPE_CAPABILITY   DISABLED
 
#define VSF_RTC_CFG_INHERT_HAL_CAPABILITY   ENABLED
 
#define VSF_RTC_APIS(__prefix_name)
 
#define __VSF_HAL_TEMPLATE_API   VSF_HAL_TEMPLATE_API_FP
 
#define __vsf_rtc_t   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_t)
 
#define vsf_rtc_init(__RTC, ...)   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_init) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)
 
#define vsf_rtc_enable(__RTC)   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_enable) ((__vsf_rtc_t *)(__RTC))
 
#define vsf_rtc_disable(__RTC)   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_disable) ((__vsf_rtc_t *)(__RTC))
 
#define vsf_rtc_capability(__RTC)   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_capability) ((__vsf_rtc_t *)(__RTC))
 
#define vsf_rtc_get(__RTC, ...)   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_get) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)
 
#define vsf_rtc_set(__RTC, ...)   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_set) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)
 
#define vsf_rtc_get_time(__RTC, ...)   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_get_time) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)
 
#define vsf_rtc_set_time(__RTC, ...)   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_set_time) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)
 

Typedefs

typedef enum vsf_rtc_irq_mask_t vsf_rtc_irq_mask_t
 
typedef VSF_RTC_CFG_TIME_TYPE vsf_rtc_time_t
 
typedef struct vsf_rtc_tm_t vsf_rtc_tm_t
 
typedef struct vsf_rtc_t vsf_rtc_t
 
typedef void vsf_rtc_isr_handler_t(void *target_ptr, vsf_rtc_t *rtc_ptr, vsf_rtc_irq_mask_t irq_mask)
 
typedef struct vsf_rtc_isr_t vsf_rtc_isr_t
 
typedef struct vsf_rtc_cfg_t vsf_rtc_cfg_t
 rtc configuration
 
typedef struct vsf_rtc_capability_t vsf_rtc_capability_t
 
typedef struct vsf_rtc_op_t vsf_rtc_op_t
 

Enumerations

enum  vsf_rtc_irq_mask_t { VSF_RTC_IRQ_MASK_ALARM = (1 << 0) }
 
enum  {
  VSF_RTC_IRQ_COUNT = 1 ,
  VSF_RTC_IRQ_ALL_BITS_MASK = VSF_RTC_IRQ_MASK_ALARM
}
 

Functions

vsf_err_t vsf_rtc_init (vsf_rtc_t *rtc_ptr, vsf_rtc_cfg_t *cfg_ptr)
 initialize a rtc instance.
 
void vsf_rtc_fini (vsf_rtc_t *rtc_ptr)
 finalize a rtc instance.
 
fsm_rt_t vsf_rtc_enable (vsf_rtc_t *rtc_ptr)
 enable interrupt masks of rtc instance.
 
fsm_rt_t vsf_rtc_disable (vsf_rtc_t *rtc_ptr)
 disable interrupt masks of rtc instance.
 
vsf_rtc_capability_t vsf_rtc_capability (vsf_rtc_t *rtc_ptr)
 get the capability of rtc instance.
 
vsf_err_t vsf_rtc_get (vsf_rtc_t *rtc_ptr, vsf_rtc_tm_t *rtc_tm)
 get rtc date time
 
vsf_err_t vsf_rtc_set (vsf_rtc_t *rtc_ptr, const vsf_rtc_tm_t *rtc_tm)
 set rtc date time
 
vsf_err_t vsf_rtc_get_time (vsf_rtc_t *rtc_ptr, vsf_rtc_time_t *second_ptr, vsf_rtc_time_t *millisecond_ptr)
 get rtc second and milli second of unix time
 
vsf_err_t vsf_rtc_set_time (vsf_rtc_t *rtc_ptr, vsf_rtc_time_t second, vsf_rtc_time_t millisecond)
 set rtc date time
 

Macro Definition Documentation

◆ VSF_RTC_CFG_MULTI_CLASS

#define VSF_RTC_CFG_MULTI_CLASS   ENABLED

◆ VSF_RTC_CFG_PREFIX

#define VSF_RTC_CFG_PREFIX   vsf

◆ VSF_RTC_CFG_FUNCTION_RENAME

#define VSF_RTC_CFG_FUNCTION_RENAME   ENABLED

◆ VSF_RTC_CFG_REIMPLEMENT_TYPE_IRQ_MASK

#define VSF_RTC_CFG_REIMPLEMENT_TYPE_IRQ_MASK   DISABLED

◆ VSF_RTC_CFG_TIME_TYPE

#define VSF_RTC_CFG_TIME_TYPE   uint64_t

◆ VSF_RTC_CFG_REIMPLEMENT_TYPE_CFG

#define VSF_RTC_CFG_REIMPLEMENT_TYPE_CFG   DISABLED

Redefine struct vsf_rtc_cfg_t. The vsf_rtc_isr_handler_t type also needs to be redefined For compatibility, members should not be deleted when struct vsf_rtc_cfg_t redefining.

◆ VSF_RTC_CFG_REIMPLEMENT_TYPE_CAPABILITY

#define VSF_RTC_CFG_REIMPLEMENT_TYPE_CAPABILITY   DISABLED

Redefine struct vsf_rtc_capability_t. For compatibility, members should not be deleted when struct vsf_rtc_capability_t redefining.

◆ VSF_RTC_CFG_INHERT_HAL_CAPABILITY

#define VSF_RTC_CFG_INHERT_HAL_CAPABILITY   ENABLED

◆ VSF_RTC_APIS

#define VSF_RTC_APIS (   __prefix_name)
Value:
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, rtc, init, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr, vsf_rtc_cfg_t *cfg_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, void, rtc, fini, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, fsm_rt_t, rtc, enable, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, fsm_rt_t, rtc, disable, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_rtc_capability_t, rtc, capability, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, rtc, get, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr, vsf_rtc_tm_t *rtc_tm) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, rtc, set, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr, const vsf_rtc_tm_t *rtc_tm) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, rtc, get_time, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr, vsf_rtc_time_t *second_ptr, vsf_rtc_time_t *millisecond_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, rtc, set_time, VSF_MCONNECT(__prefix_name, _rtc_t) *rtc_ptr, vsf_rtc_time_t second, vsf_rtc_time_t millisecond)
vsf_err_t
Definition __type.h:42
struct VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
Definition flash.c:53
__le16 capability
Definition ieee80211.h:134
Definition vsf_template_rtc.h:143
rtc configuration
Definition vsf_template_rtc.h:137
Definition vsf_template_rtc.h:114
fsm_rt_t
Definition vsf_fsm.h:315
#define __VSF_HAL_TEMPLATE_API
Definition vsf_template_rtc.h:154
VSF_RTC_CFG_TIME_TYPE vsf_rtc_time_t
Definition vsf_template_rtc.h:112

◆ __VSF_HAL_TEMPLATE_API

#define __VSF_HAL_TEMPLATE_API   VSF_HAL_TEMPLATE_API_FP

◆ __vsf_rtc_t

#define __vsf_rtc_t   VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_t)

◆ vsf_rtc_init

#define vsf_rtc_init (   __RTC,
  ... 
)    VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_init) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)

◆ vsf_rtc_enable

#define vsf_rtc_enable (   __RTC)    VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_enable) ((__vsf_rtc_t *)(__RTC))

◆ vsf_rtc_disable

#define vsf_rtc_disable (   __RTC)    VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_disable) ((__vsf_rtc_t *)(__RTC))

◆ vsf_rtc_capability

#define vsf_rtc_capability (   __RTC)    VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_capability) ((__vsf_rtc_t *)(__RTC))

◆ vsf_rtc_get

#define vsf_rtc_get (   __RTC,
  ... 
)    VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_get) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)

◆ vsf_rtc_set

#define vsf_rtc_set (   __RTC,
  ... 
)    VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_set) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)

◆ vsf_rtc_get_time

#define vsf_rtc_get_time (   __RTC,
  ... 
)    VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_get_time) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)

◆ vsf_rtc_set_time

#define vsf_rtc_set_time (   __RTC,
  ... 
)    VSF_MCONNECT(VSF_RTC_CFG_PREFIX, _rtc_set_time) ((__vsf_rtc_t *)(__RTC), ##__VA_ARGS__)

Typedef Documentation

◆ vsf_rtc_irq_mask_t

◆ vsf_rtc_time_t

◆ vsf_rtc_tm_t

typedef struct vsf_rtc_tm_t vsf_rtc_tm_t

◆ vsf_rtc_t

typedef struct vsf_rtc_t vsf_rtc_t

◆ vsf_rtc_isr_handler_t

typedef void vsf_rtc_isr_handler_t(void *target_ptr, vsf_rtc_t *rtc_ptr, vsf_rtc_irq_mask_t irq_mask)

◆ vsf_rtc_isr_t

typedef struct vsf_rtc_isr_t vsf_rtc_isr_t

◆ vsf_rtc_cfg_t

typedef struct vsf_rtc_cfg_t vsf_rtc_cfg_t

rtc configuration

◆ vsf_rtc_capability_t

◆ vsf_rtc_op_t

typedef struct vsf_rtc_op_t vsf_rtc_op_t

Enumeration Type Documentation

◆ vsf_rtc_irq_mask_t

Enumerator
VSF_RTC_IRQ_MASK_ALARM 

◆ anonymous enum

anonymous enum
Enumerator
VSF_RTC_IRQ_COUNT 
VSF_RTC_IRQ_ALL_BITS_MASK 

Function Documentation

◆ vsf_rtc_init()

vsf_err_t vsf_rtc_init ( vsf_rtc_t rtc_ptr,
vsf_rtc_cfg_t cfg_ptr 
)
extern

initialize a rtc instance.

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
[in]cfg_ptra pointer to structure vsf_rtc_cfg_t
Returns
vsf_err_t: VSF_ERR_NONE if rtc was initialized, or a negative error code
Note
It is not necessary to call vsf_rtc_fini() to deinitialization. vsf_rtc_init() should be called before any other rtc API except vsf_rtc_capability().

◆ vsf_rtc_fini()

void vsf_rtc_fini ( vsf_rtc_t rtc_ptr)
extern

finalize a rtc instance.

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
Returns
none

◆ vsf_rtc_enable()

fsm_rt_t vsf_rtc_enable ( vsf_rtc_t rtc_ptr)
extern

enable interrupt masks of rtc instance.

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
[in]irq_maskone or more value of enum vsf_rtc_irq_mask_t
Returns
none.

◆ vsf_rtc_disable()

fsm_rt_t vsf_rtc_disable ( vsf_rtc_t rtc_ptr)
extern

disable interrupt masks of rtc instance.

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
[in]irq_maskone or more value of enum vsf_rtc_irq_mask_t, vsf_rtc_irq_mask_t
Returns
none.

◆ vsf_rtc_capability()

vsf_rtc_capability_t vsf_rtc_capability ( vsf_rtc_t rtc_ptr)
extern

get the capability of rtc instance.

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
Returns
vsf_rtc_capability_t: return all capability of current rtc vsf_rtc_capability_t

◆ vsf_rtc_get()

vsf_err_t vsf_rtc_get ( vsf_rtc_t rtc_ptr,
vsf_rtc_tm_t rtc_tm 
)
extern

get rtc date time

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
[in]rtc_tma pointer to structure vsf_rtc_tm_t
Returns
vsf_err_t: VSF_ERR_NONE if rtc get data time was successful, or a negative error code

◆ vsf_rtc_set()

vsf_err_t vsf_rtc_set ( vsf_rtc_t rtc_ptr,
const vsf_rtc_tm_t rtc_tm 
)
extern

set rtc date time

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
[in]rtc_tma pointer to structure vsf_rtc_tm_t
Returns
vsf_err_t: VSF_ERR_NONE if rtc set data time was successful, or a negative error code

◆ vsf_rtc_get_time()

vsf_err_t vsf_rtc_get_time ( vsf_rtc_t rtc_ptr,
vsf_rtc_time_t second_ptr,
vsf_rtc_time_t millisecond_ptr 
)
extern

get rtc second and milli second of unix time

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
[in]second_ptra pointer to type vsf_rtc_time_t
[in]millisecond_ptra pointer to type vsf_rtc_time_t
Returns
vsf_err_t: VSF_ERR_NONE if rtc get second and millisecond successful, or a negative error code get rtc date time
Parameters
[in]rtc_ptrrtc instance
[out]rtcdata time

◆ vsf_rtc_set_time()

vsf_err_t vsf_rtc_set_time ( vsf_rtc_t rtc_ptr,
vsf_rtc_time_t  second,
vsf_rtc_time_t  millisecond 
)
extern

set rtc date time

Parameters
[in]rtc_ptra pointer to structure vsf_rtc_t
[in]rtc_tma pointer to structure vsf_rtc_tm_t
Returns
vsf_err_t: VSF_ERR_NONE if rtc set second and millisecond was successful, or a negative error code