2011-11-02 17 views

risposta

2

Purtroppo, in questo momento clang non supporta impostazioni flessibili di compilazione incrociata. Quindi, molto probabilmente avrai bisogno di invocare gli strumenti necessari con tutti gli argomenti necessari.

Inizia con la costruzione di llvm + clang usando l'argomento --target = thumbv7-eabi configure (tieni presente che per questo motivo avrai bisogno di llvm + clang come ieri). Potresti anche specificare --enable-targets = arm. In questo modo il clang genererà il codice per il pollice per impostazione predefinita. Dopo questo puoi invocare clang -mcpu = cortex-m3 per generare il codice per te.

Si dovrà fornire tutte le necessarie includere percorsi/libreria da mani tramite -I/-L, ecc

Se sei felice con qualche C++ hacking, è possibile scrivere necessario "HostInfo", così invocherà gli strumenti giusti e fornirà i percorsi giusti in modo automatico.

9

Guarda mbed_samples a github

https://github.com/dwelch67/mbed_samples/

E altri progetti che ho a github (che uso LLVM, braccio basa, MIPS based e basata MSP430). Gli strumenti llvm off-the-shelf (ben clang) funzionano bene la compilazione incrociata per ARM, ecc.

il mbed è una lpc corteccia-me lo stm32 è una st corteccia-m, le basi sono le stesse impostazioni del registro delle modifiche. Ho una directory di esempio stm32vld, se vuoi alcuni esempi specifici di stm32 usando llvm (usando un host Linux AMD a 64 bit), non è un problema.

+1

https://github.com/dwelch67/stm32vld/tree/master/stm32f4d hanno alcuni esempi stm32 ora gcc e llvm/clang –

+0

Grazie per aver menzionato (e fatto un lavoro coerente per) MIPS e MSP430 btw. – pfalcon

1

Ho creato un framework del firmware - PolyMCU https://github.com/labapart/polymcu - basato su CMake che supporta GCC e LLVM. Poiché è basato su CMake, puoi creare il tuo firmware su Linux/Windows/MacOS. Utilizza anche Newlib - sembra che ci siano tutte le tue esigenze!

Ho anche scritto un blog dove ho confrontato GCC e LLVM costruire dimensioni su ARM Cortex-M: http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space Risultati interessanti, Clang generato codice non è molto più grande di GCC su Cortex-M ...

Problemi correlati