WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
rtc.c 文件参考
#include <stdbool.h>
#include <limits.h>
#include "securec.h"
#include "common_def.h"
#include "interrupt/osal_interrupt.h"
#include "tcxo.h"
#include "rtc_porting.h"
#include "rtc.h"
rtc.c 的引用(Include)关系图:

结构体

struct  rtc_info
 
struct  soft_rtc_cfg
 
struct  rtcs_manager
 

宏定义

#define UINT64_MAX   (0xFFFFFFFFFFFFFFFFUL)
 
#define CONFIG_RTC_MAX_RTCS_NUM_0   CONFIG_RTC_MAX_RTCS_NUM
 
#define CONFIG_RTC_MAX_RTCS_NUM_1   CONFIG_RTC_MAX_RTCS_NUM
 
#define CONFIG_RTC_MAX_RTCS_NUM_2   CONFIG_RTC_MAX_RTCS_NUM
 
#define CONFIG_RTC_MAX_RTCS_NUM_3   CONFIG_RTC_MAX_RTCS_NUM
 
#define CONFIG_RTC_MAX_RTCS_NUM_EXTRA   CONFIG_RTC_MAX_RTCS_NUM
 
#define CUR_MAX_HARDWARE_RTC_NUM   4
 
#define RTC_SIZE_0   0
 
#define RTC_SIZE_1   1
 
#define RTC_SIZE_2   2
 
#define RTC_SIZE_3   3
 
#define RTC_SIZE_4   4
 

类型定义

typedef enum rtc_flag rtc_flag_t
 
typedef struct rtc_info rtc_info_t
 
typedef struct soft_rtc_cfg soft_rtc_cfg_t
 
typedef struct rtcs_manager rtcs_manager_t
 

枚举

enum  rtc_flag { RTC_FLAG_NORMAL , RTC_FLAG_PERMANENT }
 

函数

STATIC uint64_t rtc_get_cycle_with_mask (rtc_index_t index, uint64_t cycle, int32_t *cycle_deviation)
 
STATIC void rtc_load_cycle_with_mask (rtc_index_t index, uint64_t cycle_with_mask, int32_t cycle_deviation)
 
STATIC bool rtc_update_rtcs_rtc (rtc_index_t index, uint64_t update_amount_cycle)
 
STATIC bool rtc_process_rtcs (rtc_index_t index)
 
STATIC uint32_t rtc_get_next_rtc (rtc_index_t index)
 
STATIC uint64_t rtc_get_rtc_till_interrupt (rtc_index_t index)
 
STATIC void rtc_set_next_rtc_interrupt (rtc_index_t index)
 
STATIC void rtc_int_callback (rtc_index_t index)
 
STATIC errcode_t soft_rtc_list_cfg_get (uint32_t index, soft_rtc_cfg_t *rtc_info)
 
errcode_t uapi_rtc_init (void)
 初始化RTC定时器。
 
errcode_t uapi_rtc_adapter (rtc_index_t index, uint32_t int_id, uint16_t int_priority)
 适配RTC定时器。
 
errcode_t uapi_rtc_deinit (void)
 去初始化RTC定时器。
 
errcode_t uapi_rtc_create (rtc_index_t index, rtc_handle_t *rtc)
 创建RTC定时器。
 
errcode_t uapi_rtc_delete (rtc_handle_t rtc)
 删除RTC定时器。
 
uint32_t uapi_rtc_get_max_ms (void)
 用户可以获取到RTC最大可以设置的延时时间(ms)。
 
errcode_t uapi_rtc_start (rtc_handle_t rtc, uint32_t rtc_ms, rtc_callback_t callback, uintptr_t data)
 启动指定的RTC定时器。
 
errcode_t uapi_rtc_stop (rtc_handle_t rtc)
 停止指定的RTC定时器, 不会调用用户传入的callback。
 
uint32_t uapi_rtc_int_cnt_record_get (rtc_index_t index)
 获取发生中断的次数。
 
errcode_t uapi_rtc_get_current_time_count (rtc_index_t index, uint64_t *current_time_count)
 获取指定底层RTC定时器的当前计数。
 
errcode_t uapi_rtc_get_current_time_us (rtc_index_t index, uint32_t *current_time_us)
 获取指定底层RTC定时器的当前时间。
 
errcode_t uapi_rtc_start_hw_rtc (rtc_index_t index, uint64_t rtc_ms)
 启动指定底层RTC定时器,用于计时,不会处理中断。
 
errcode_t uapi_rtc_stop_hw_rtc (rtc_index_t index)
 停止指定底层RTC定时器。
 

变量

rtcs_manager_t g_rtcs_manager [5] = { 0 }
 

宏定义说明

◆ CONFIG_RTC_MAX_RTCS_NUM_0

#define CONFIG_RTC_MAX_RTCS_NUM_0   CONFIG_RTC_MAX_RTCS_NUM

◆ CONFIG_RTC_MAX_RTCS_NUM_1

#define CONFIG_RTC_MAX_RTCS_NUM_1   CONFIG_RTC_MAX_RTCS_NUM

◆ CONFIG_RTC_MAX_RTCS_NUM_2

#define CONFIG_RTC_MAX_RTCS_NUM_2   CONFIG_RTC_MAX_RTCS_NUM

◆ CONFIG_RTC_MAX_RTCS_NUM_3

#define CONFIG_RTC_MAX_RTCS_NUM_3   CONFIG_RTC_MAX_RTCS_NUM

◆ CONFIG_RTC_MAX_RTCS_NUM_EXTRA

#define CONFIG_RTC_MAX_RTCS_NUM_EXTRA   CONFIG_RTC_MAX_RTCS_NUM

◆ CUR_MAX_HARDWARE_RTC_NUM

#define CUR_MAX_HARDWARE_RTC_NUM   4

◆ RTC_SIZE_0

#define RTC_SIZE_0   0

◆ RTC_SIZE_1

#define RTC_SIZE_1   1

◆ RTC_SIZE_2

#define RTC_SIZE_2   2

◆ RTC_SIZE_3

#define RTC_SIZE_3   3

◆ RTC_SIZE_4

#define RTC_SIZE_4   4

◆ UINT64_MAX

#define UINT64_MAX   (0xFFFFFFFFFFFFFFFFUL)

Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.

Description: Provides rtc driver source
History:
2023-03-06, Create file.

类型定义说明

◆ rtc_flag_t

typedef enum rtc_flag rtc_flag_t

◆ rtc_info_t

typedef struct rtc_info rtc_info_t

◆ rtcs_manager_t

typedef struct rtcs_manager rtcs_manager_t

◆ soft_rtc_cfg_t

typedef struct soft_rtc_cfg soft_rtc_cfg_t

枚举类型说明

◆ rtc_flag

enum rtc_flag
枚举值
RTC_FLAG_NORMAL 
RTC_FLAG_PERMANENT 

函数说明

◆ rtc_get_cycle_with_mask()

STATIC uint64_t rtc_get_cycle_with_mask ( rtc_index_t  index,
uint64_t  cycle,
int32_t *  cycle_deviation 
)

◆ rtc_get_next_rtc()

STATIC uint32_t rtc_get_next_rtc ( rtc_index_t  index)

◆ rtc_get_rtc_till_interrupt()

STATIC uint64_t rtc_get_rtc_till_interrupt ( rtc_index_t  index)

◆ rtc_int_callback()

STATIC void rtc_int_callback ( rtc_index_t  index)

◆ rtc_load_cycle_with_mask()

STATIC void rtc_load_cycle_with_mask ( rtc_index_t  index,
uint64_t  cycle_with_mask,
int32_t  cycle_deviation 
)

◆ rtc_process_rtcs()

STATIC bool rtc_process_rtcs ( rtc_index_t  index)

◆ rtc_set_next_rtc_interrupt()

STATIC void rtc_set_next_rtc_interrupt ( rtc_index_t  index)

◆ rtc_update_rtcs_rtc()

STATIC bool rtc_update_rtcs_rtc ( rtc_index_t  index,
uint64_t  update_amount_cycle 
)

◆ soft_rtc_list_cfg_get()

STATIC errcode_t soft_rtc_list_cfg_get ( uint32_t  index,
soft_rtc_cfg_t rtc_info 
)

变量说明

◆ g_rtcs_manager

rtcs_manager_t g_rtcs_manager[5] = { 0 }