LLVM/clang als Compiler für Cortex-M

Gast #4012673
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.
#4235549
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.
Gast #4357448
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
#4520139
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").

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.