/* ** Setup the timer for 64 bit mode */ static void TimerSetUp64Bit(void) { /* Configuration of Timer */ TimerConfigure(SOC_TMR_2_REGS, TMR_CFG_64BIT_CLK_INT); /* Set the 64 bit timer period */ TimerPeriodSet(SOC_TMR_2_REGS, TMR_TIMER12, TMR_PERIOD_LSB32); TimerPeriodSet(SOC_TMR_2_REGS, TMR_TIMER34, TMR_PERIOD_MSB32); }
/** * \brief Initialize the systick module, i.e. the hardware timer of the SoC * * This function will register the corresponding ISR, enable the timer interrupt and configure interrupt channel 2 (normal interrupt) for the hardware timer. * * \return none **/ void systick_init(void) { /* Set up the ARM Interrupt Controller for generating timer interrupt */ /* Set up the timer */ TimerConfigure(SOC_TMR_0_REGS, TMR_CFG_32BIT_UNCH_CLK_BOTH_INT); TimerPeriodSet(SOC_TMR_0_REGS, TMR_TIMER34, TMR_PERIOD_LSB32); TimerReloadSet(SOC_TMR_0_REGS, TMR_TIMER34, TMR_PERIOD_LSB32); /* Register the Timer ISR */ IntRegister(SYS_INT_TINT34_0, systick_isr_C); /* Set the channel number for Timer interrupt, it will map to IRQ */ IntChannelSet(SYS_INT_TINT34_0, 2); /* Enable timer interrupts in AINTC */ IntSystemEnable(SYS_INT_TINT34_0); /* Enable the timer interrupt */ TimerIntEnable(SOC_TMR_0_REGS, TMR_INT_TMR34_NON_CAPT_MODE); /* Start the timer */ TimerEnable(SOC_TMR_0_REGS, TMR_TIMER34, TMR_ENABLE_CONTRELOAD); }