Hallo, habe hier einen ESP32 Pico und gestern platform.io installiert (damit also noch wenig Erfahrungen). Wenn ich in platform.io ein kleines Testprojekt mit dem Arduino-Framework anlege und dann im weiteren Verlauf nur noch kleine Änderungen in main mache wird ja nur noch diese Datei neu compiliert und zum ESP übertragen - alles läuft dabei flüssig ab. Bei einem kleinen Testprojekt in platform.io mit dem esp-idf macht er in gleicher Konstellation eine Denkpause von ca. 20 Sekunden, und zwar immer genau zwischen compilieren (der einen Datei) und linken. Die Prozessorlast geht dabei auf 2 von 4 Kernen hoch und es passiert ca. 20 Sekunden nichts sichtbares. Dann geht es normal flüssig weiter. Hat jemand einen Tip, wie man das verbessern könnte?
:
Bearbeitet durch User
Klingt nach LTO. Dabei wird im Linker Schritt das anze Gerassel nochmals compiliert, und das dauert dann halt. Man besorge sich eine kräftigere CPU oder schalte LTO ab. Ansonsten: Schau halt mal im Taskmanager nach wer die CPU Zeit schluckt.
:
Bearbeitet durch User
Guter Tip. Der Taskmanager sagt, dass Python die CPU in der Zeit auslastet. Darüber erfolgt die Steuerung der ganzen Abfolge, der Linker und Compiler wären dann aber eigene Programme, die im Taskmanager auftauchen müssten? Wenn ich einen kompletten Build provoziere ist cc1.exe vorn, aber Python auch noch fast unverändert dabei.
:
Bearbeitet durch User
Nimm dir einen entsprechendes Process Monitor und schau dir halt an, welches Python Script das ausgeführt wird. Entweder wird es LTO oder das Dependency Management sein.
Beim IDF wird meines Wissens nach die gesamte Bibliothek ins Build-Verzeichnis kompiliert. Und das passiert auch jedes Mal, wenn man vor dem "make" ein "make clean" macht, da letzteres die ganzen vorcompilierten Objektdateien und Bibliotheken aus dem Build-Verzeichnis löscht. Vielleicht macht platform.io vorher ein "make clean" und löst so einen Rebuild der Bibliothek aus. Jörg
Wenn ich in platform.io unten den Button 'clean' betätige wird alles gelöscht und beim nächsten Build neu compiliert. Das dauert natürlich seine Zeit, aber dabei sieht man die Dateien alle durchlaufen die compiliert werden. In dem geschilderten Fall ist das anders, da passiert nach dem compilieren von main scheinbar nichts mehr und trotzdem hängt es dort.
Dann sieh dir mal in dieser "Pause" die Internetverbindung an. platform.io sendet alles mögliche "nach Hause", in diesem Fall nach Github.
Lutz S. schrieb: > enn ich [...]im weiteren Verlauf nur noch kleine > Änderungen in main mache wird ja nur noch diese Datei neu compiliert Ja > und zum ESP übertragen Nein. Die ganze C-Datei, in der deine main-Funktion enthalten ist, nicht nur die main-Funktion, wird neu kompiliert. Danach wird die neu kompilierte Datei mit allen Bibliotheken zusammen gelinkt und das ganze dann wird übertragen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.