Hallo zusammen, wie sind eure Erfahrungen mit clang als Alternative zum gcc als C-Compiler auf 32-Bit-Mikrocontrollern? Es wäre doch schön, eine Alternative zu haben. LLVM hat einen Port für die diversen Cortex-M und sollte in der Lage sein, Code für "bare metal" zu kompilieren. Man findet bisher jedoch wenig bis keine genauen Informationen dazu im Netz, wie man das angeht.
Habe bisher keine Zeit und Muße gehabt das auszuprobieren: http://sushihangover.github.io/arm-cortex-m3-bare-metal-with-newlib/ Gibt noch ein paar Folgeartikel. Hauptproblem ist wohl das Linkerscript. Die Newlib wird vom gcc verwendet.
hab es auch mit ellcc kurz probiert (http://ellcc.org/) habe bisher geschafft ein "hello world" zu compilieren und unter qemu laufen zu lassen, allerdings nicht auf dem tatsächlichen target :)
Rowley Crossworks liefert neuerdings (?) zusätzlich zu GCC eine Clang/LLVM-Toolchain mit (http://www.rowley.co.uk/arm/).
Ich habe gerade meinen erstes Cortex M0 Projekt unter Crossworks von gcc auf clang umgestellt. Hatte gleich mal Probleme, dass mein Assemblercode nicht compiliert wurde, weil bei GCC "add R0,#32" bei clang "adds R0,#32" heißen muss. Das Gleiche gilt für sub. Das kann man aber mit "#ifdef __clang__" abfangen. Generell compiliert clang deutlich schneller bei mir. Faktor 2 ist realistisch.
I cannot read much German. But I released earlier this week a firmware framework - PolyMCU https://github.com/labapart/polymcu - that primary targets ARM Cortex-M. You can use either GCC or LLVM. And because it is based on CMake you can build either on Windows or Linux or MacOS. I also wrote a blog where I compared GCC and LLVM build size on ARM Cortex-M: http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space
benwilliam schrieb: > und hat sich der wechsel gelohnt? Jepp, alleine schon wegen den deutlich besseren und aussagekräftigeren Fehlermeldungen, die die Fehlersuche erleichtern. Die Warnungen helfen auch beim Vermeiden von Fehlern. Z.B. wird beim Schreiben der Zahl 0xabcde in einen uint8_t eine Warnung ausgegeben, die man auch kapiert ("bla ... 703710 wird zu 222").
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.