uint32_t Board_TIMER_getClockFrequency(void) { return Chip_Clock_GetMainPLLHz(); }
/** * @brief Main entry point * @return Nothing */ int main(void) { bool bool_status; uint32_t mainpll_freq, clkin_frq, dive_value, baseclk_frq, perclk_frq; CHIP_CGU_CLKIN_T clk_in, base_input; bool autoblocken; bool powerdn; int i; volatile int k = 1; SystemCoreClockUpdate(); Board_Init(); /* Print the Demo Information */ DEBUGOUT(menu); /* Main PLL should be locked, Check if Main PLL is locked */ DEBUGOUT("=========================================== \r\n"); DEBUGOUT("PLL functions \r\n"); DEBUGOUT("Main PLL : "); bool_status = Chip_Clock_MainPLLLocked(); if (bool_status == true) { DEBUGOUT("Locked\r\n"); } else { DEBUGOUT("Not Locked\r\n"); return 1; } /* Read Main PLL frequency in Hz */ mainpll_freq = Chip_Clock_GetMainPLLHz(); if (mainpll_freq == 0) { DEBUGOUT("Error in reading Main PLL frequency \r\n"); return 2; } DEBUGOUT("Main PLL Frequency in Hz : %d \r\n", mainpll_freq); DEBUGOUT("=========================================== \r\n"); DEBUGOUT("=========================================== \r\n"); DEBUGOUT("Clock Divider functions \r\n"); /* * Divider E divider is used for SPIFI, source is set to * Main PLL in SysInit code. * Read Divider E source & verify it */ clk_in = Chip_Clock_GetDividerSource(CLK_IDIV_E); if (clk_in != CLKIN_MAINPLL) { DEBUGOUT("Divider E source wrong %d \r\n", clk_in); return 3; } DEBUGOUT("Divider E source set to Main PLL \r\n"); /* * Divider E divider is used for SPIFI, divider value should be * between 3 and 5 set in SysInit code. * Read Divider E divider value & verify it */ dive_value = Chip_Clock_GetDividerDivisor(CLK_IDIV_E); if ( (dive_value < 3) && (dive_value > 5)) { DEBUGOUT("Divider E divider wrong %d \r\n", dive_value); return 4; } DEBUGOUT("Divider E divider value: %d \r\n", dive_value); DEBUGOUT("=========================================== \r\n"); /* * Read the frequencies of the input clock sources, * print it on UART prompt */ DEBUGOUT("=========================================== \r\n"); DEBUGOUT("Input clock frequencies \r\n"); DEBUGOUT("=========================================== \r\n"); for ( i = 0; i < (sizeof(clkin_info) / sizeof(CLKIN_NAME_T)); i++) { clkin_frq = Chip_Clock_GetClockInputHz(clkin_info[i].clk_in); DEBUGOUT(" %s Frequency : %d Hz \r\n", clkin_info[i].clkin_name, clkin_frq); } DEBUGOUT("=========================================== \r\n"); /* * Read the base clock settings & print on UART */ DEBUGOUT("=========================================== \r\n"); DEBUGOUT("Base Clock Setting Information \r\n"); DEBUGOUT("=========================================== \r\n"); for ( i = 0; i < (sizeof(baseclk_info) / sizeof(BASECLK_INFO_T)); i++) { /* Read Base clock info, only if base clock is enabled */ bool_status = Chip_Clock_IsBaseClockEnabled(baseclk_info[i].clock); if ( bool_status == true) { Chip_Clock_GetBaseClockOpts(baseclk_info[i].clock, &base_input, &autoblocken, &powerdn); /* Read Frequency of the base clock */ baseclk_frq = Chip_Clock_GetBaseClocktHz(baseclk_info[i].clock); /* Print details on UART */ DEBUGOUT("%s Input Clk: %d Base Clk Frq : %d Hz Auto block: %d Power down: %d \r\n", baseclk_info[i].clock_name, base_input, baseclk_frq, autoblocken, powerdn); } } DEBUGOUT("=========================================== \r\n"); /* * Read the peripheral clock rate & print on UART */ DEBUGOUT("=========================================== \r\n"); DEBUGOUT("Peripheral Clock Rates \r\n"); DEBUGOUT("=========================================== \r\n"); for ( i = 0; i < (sizeof(ccu_clk_info) / sizeof(CCUCLK_INFO_T)); i++) { /* Read Frequency of the peripheral clock */ perclk_frq = Chip_Clock_GetRate(ccu_clk_info[i].per_clk); /* Print the per clock only if it is enabled */ if (perclk_frq) { /* Print details on UART */ DEBUGOUT("%s Per Frq : %d Hz \r\n", ccu_clk_info[i].clock_name, perclk_frq); } } DEBUGOUT("=========================================== \r\n"); while (k) ; return 0; }