Die CPU ist so konzipiert, dass sie in den Energiesparmodus wechselt, wann immer sie kann, um Strom zu sparen und kühl zu bleiben, ich möchte ein Programm erstellen, das dies verhindert.
Ich arbeite an ein paar verschiedenen Embedded-Plattformen (Freescale Coldfire 8052, TI Sitara AM3359, wahrscheinlich ein paar andere in der pipeworks) und so wollte ich eine Anwendung, die nur halten die CPU voll für Benchmarking geladen wird. Ich möchte meine eigene Anwendung schreiben, da es einfacher wäre, sie zu kompilieren, als nach einer Lösung für jedes Ziel zu suchen.
Mein erster Gedanke war einfach:
while(1);
Frage 1:
Aber wenn ich das zu sehr vereinfache? oben zeigt, dass das Programm etwa 99,4% CPU-Auslastung, so dass ich denke, es funktioniert, aber es scheint nicht, wie es so einfach sein sollte :) Weiß jemand, ob es mehr als das sein sollte?
Frage 2:
Wenn ich das System auf verschiedene Lasten (z. B. 50 %, 75 % oder was auch immer) erweitern wollte, wie könnte ich das tun? Ich habe es geschafft, eine 18~20% CPU-Nutzung über zu bekommen:
while(1){usleep(1);}
Gibt es eine wissenschaftlichere Methode, als nur zu raten und die Schlafwerte zu überprüfen? Ich würde denken, dass diese ohnehin von Ziel zu Ziel unterschiedlich sein würden.