/** * @file hv_drvl_Timer.c * @brief timer driver driver abstract layer file. * @details This file provides the following functions: \n * (1) system timer init/cleanup, start/stop\n * (2) system timer set/read counter \n * (3) system timer set/cleanup irq, set irq handler \n * * @author HiView SoC Software Team * @version 1.0.0 * @date 2023-06-12 * @copyright Copyright(c),2023-6, Hiview Software. All rights reserved. * @par History: * *
Author Date Change Description *
*/ #include "hv_vos_Comm.h" #include "hv_chip_Config.h" #include "hv_comm_Assert.h" #include "hv_comm_Define.h" #include "hv_drv_Timer.h" /**@brief init tmr parameters * @param params pointer to tmr configure parameters * @return HwTmr structure pointer */ HwTmr *Hv_Drv_Tmr_Init(HwTmrConfig *pstTmrCfg) { return Hv_Cal_Tmr_Init(pstTmrCfg); } /**@brief stop timer * @param[in] self HwTmr structure pointer */ VOID Hv_Drv_Tmr_Stop(HwTmr *pstTmr) { Hv_Cal_Tmr_Stop(pstTmr); } /**@brief Cleanup tmr parameters * @param self HwTmr structure pointer */ VOID Hv_Drv_Tmr_Cleanup(HwTmr *pstTmr) { Hv_Cal_Tmr_Cleanup(pstTmr); } /**@brief set tmr ms counter register values, use before Hv_Cal_Tmr_Start * @param[in] self HwTmr structure pointer * @param[in] uiMsCounts count ms time */ VOID Hv_Drv_Tmr_SetMsCounter(HwTmr *pstTmr, UINT32 uiMsCounts) { Hv_Cal_Tmr_SetMsCounter(pstTmr, uiMsCounts); } /**@brief system timer ISR handler function * @param[in] irqNum interrupt Number value * @param[in] arg pointer to tmr configure parameters * @param[out] ISR HV_VOS_ISR_RESULT_E result */ HV_VOS_ISR_RESULT_E Hv_Drv_Tmr_IrqHandler(UINT32 uiIrqNum, VOID *pArg) { return Hv_Cal_Tmr_IrqHandler(uiIrqNum, pArg); } /**@brief set system timer interrupt * @param self HwTmr structure pointer */ VOID Hv_Drv_Tmr_SetInterrupt(HwTmr *pstTmr) { Hv_Cal_Tmr_SetInterrupt(pstTmr); } /**@brief clean system timer interrupt * @param self HwTmr structure pointer */ VOID Hv_Drv_Tmr_ClearInterrupt(HwTmr *pstTmr) { Hv_Cal_Tmr_ClearInterrupt(pstTmr); } /**@brief start system timer * @param self HwTmr structure pointer */ VOID Hv_Drv_Tmr_Start(HwTmr *pstTmr) { Hv_Cal_Tmr_Start(pstTmr); } /**@brief read system timer counter * @param[in] self HwTmr structure pointer * @param[out] read counter values */ UINT32 Hv_Drv_Tmr_ReadCounter(HwTmr *pstTmr) { return Hv_Cal_Tmr_ReadCounter(pstTmr); } /** set system timer counter * @param[in] self HwTmr structure pointer * @param[in] count count values */ VOID Hv_Drv_Tmr_SetCounter(HwTmr *pstTmr, UINT32 uiCount) { Hv_Cal_Tmr_SetCounter(pstTmr, uiCount); }