/*TIMER_ACPU_OSA_ID:和caixi确认,后续可拿掉*/ void BSP_StartHardTimer(u32 value) { writel(HARD_TIMER_DISABLE,TIMER_CONTROLREG(HI_TIMER_18_REGBASE_ADDR_VIRT)); writel(value,TIMER_LOADCOUNT(HI_TIMER_18_REGBASE_ADDR_VIRT)); writel(HARD_TIMER_ENABLE,TIMER_CONTROLREG(HI_TIMER_18_REGBASE_ADDR_VIRT)); return; }
/*TIMER_ACPU_OSA_ID:和caixi确认,后续可拿掉*/ void BSP_StartHardTimer(unsigned int value) { writel(HARD_TIMER_DISABLE,(volatile void *)TIMER_CONTROLREG(HI_TIMER_18_REGBASE_ADDR_VIRT)); writel(value,(volatile void *)TIMER_LOADCOUNT(HI_TIMER_18_REGBASE_ADDR_VIRT));/*lint !e516 */ writel(HARD_TIMER_ENABLE,(volatile void *)TIMER_CONTROLREG(HI_TIMER_18_REGBASE_ADDR_VIRT)); return; }
BSP_U32 BSP_GetHardTimerCurTime(BSP_VOID) { u32 ret = 0; ret = readl(TIMER_CONTROLREG(HI_TIMER_18_REGBASE_ADDR_VIRT)); if((ret&0x1)!=0x1)/*如果计数器没打开*/ { return 0; } else { ret = readl(TIMER_CURRENTVALUE(HI_TIMER_18_REGBASE_ADDR_VIRT)); return ret; } }
/*lint --e{732}*/ BSP_U32 BSP_GetHardTimerCurTime(BSP_VOID) { u32 ret = 0; ret = readl((const volatile void *)TIMER_CONTROLREG(HI_TIMER_18_REGBASE_ADDR_VIRT));/*lint !e746*/ if((ret&0x1)!=0x1)/*如果计数器没打开*/ { return 0; } else { ret = readl((const volatile void *)TIMER_CURRENTVALUE(HI_TIMER_18_REGBASE_ADDR_VIRT)); return ret; } }
BSP_VOID BSP_StopHardTimer(BSP_VOID) { writel(HARD_TIMER_DISABLE,TIMER_CONTROLREG(HI_TIMER_18_REGBASE_ADDR_VIRT)); return; }