mikrocontroller.net

Forum: Compiler & IDEs ESP32 mit esp-idf unter platform.io mit langer 'Denkpause'


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Lutz S. (lutzs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
Autor: Jim M. (turboj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
Autor: Lutz S. (lutzs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
Autor: wurster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Joerg W. (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Lutz S. (lutzs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.