To improve life time, we would like to set our cpu frequency to a fix level (e.g. 800 MHz) that is below the cpu max frequency (1 GHz).
Our configuration:
- Colibri iMX6 DL
- WinCE 7, BSP v1.6
Due to real time requirements we want to set the frequency to a fix level and do not want to have DVFS (dynamic voltage and frequency scaling) allow to adjust frequency depending on cpu load.
We tried to use DVFS to set a fix cpu frequency by setting maxFrequency and minFrequency in the registry to the same fix value:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Clock]
“MaxFrequency”=dword:XXXXXXXX ;
“MinFrequency”=dword:XXXXXXX ;
This works for e.g. 500 MHz. It seems also to work for higher numbers like 600 or 800 MHz but then the windows timer functions GetTickCount() and QuerryPerformanceCounter() deliver wrong time results (e.g. time information was 20% too short when setting 800 MHz).
The timer functions deliver correct time when setting cpu frequency to 500 MHz, though.
It seems like only a few cpu frequency settings are supported physically by iMX6 but DVFS settings seem to be the reference for the windows timer functions regardless of the physically set frequency.
→ A bug of the DVFS implementation under WinCe?
→ What are the supported cpu frequencies on iMX6?
Thanks and regards,
Markus