Atmel Software Framework

Todo List
Global pll_wait_for_lock (unsigned int pll_id)
Use a timeout to avoid waiting forever and hanging the system
Global sysclk_get_cpu_hz (void)
This function assumes that the CPU always runs at the system clock frequency. We want to support at least two more scenarios: Fixed CPU/bus clock dividers (config symbols) and dynamic CPU/bus clock dividers (which may change at run time). Ditto for all the bus clocks.
Global sysclk_get_main_hz (void)
This function assumes that the main clock source never changes once it's been set up, and that PLL0 always runs at the compile-time configured default rate. While this is probably the most common configuration, which we want to support as a special case for performance reasons, we will at some point need to support more dynamic setups as well.