Honour values of configCPU_CLOCK_HZ & configTICK_RATE_HZ for tick rate
Fixes #147 * Can vary tick rate from 100Hz via configTICK_RATE_HZ. Note that the SDK binary libraries are hard-coded to assume the tick rate is 100Hz, so changing the tick rate may have unexpected consequences for lower layer WiFi behaviour (such as certain kinds of timeouts happening faster/slower.) * Setting configCPU_CLOCK_HZ to 160MHz means ESP will set 160MHz during initialisation. Only 80MHz and 160MHz are supported. * Timing of tasks is no longer affected by current CPU freq (whether set via configCPU_CLOCK_HZ or via sdk_system_update_cpu_freq().) Previously doubling the CPU frequency would double the tick rate.
This commit is contained in:
parent
701a4c4284
commit
678b59babf
5 changed files with 19 additions and 2 deletions
|
@ -382,6 +382,10 @@ static __attribute__((noinline)) void user_start_phase2(void) {
|
|||
|
||||
srand(hwrand()); /* seed libc rng */
|
||||
|
||||
// Set intial CPU clock speed to 160MHz if necessary
|
||||
_Static_assert(configCPU_CLOCK_HZ == 80000000 || configCPU_CLOCK_HZ == 160000000, "FreeRTOSConfig must define initial clock speed as either 80MHz or 160MHz");
|
||||
sdk_system_update_cpu_freq(configCPU_CLOCK_HZ / 1000000);
|
||||
|
||||
// Call gcc constructor functions
|
||||
void (**ctor)(void);
|
||||
for ( ctor = &__init_array_start; ctor != &__init_array_end; ++ctor) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue