2011-11-02 4 views

Répondre

2

Malheureusement, en ce moment clang ne supporte pas paramètres flexibles de compilation croisée. Donc, très probablement, vous devrez invoquer les outils nécessaires avec tous les arguments nécessaires. Commencez par construire llvm + clang en utilisant --target = thumbv7-eabi configure argument (notez que vous aurez besoin de llvm + clang depuis hier pour cela). Vous pouvez également spécifier --enable-targets = arm. Ceci demandera à clang de générer du code pour le pouce par défaut. Après cela, vous pouvez appeler clang -mcpu = cortex-m3 pour générer le code pour vous.

Vous devrez fournir tout le nécessaire include/chemins de la bibliothèque par les mains via -I/-L, etc.

Si vous êtes satisfait de certains C++ piratage, vous pouvez écrire nécessaire « hostinfo », il invoquera les bons outils et fournira les bons chemins automagiquement.

9

Regardez mbed_samples à github

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

et d'autres projets que j'ai à github (que de LLVM d'utilisation, le bras basé, MIPS et basé MSP430). Les outils llvm standard (well clang) fonctionnent bien pour la compilation croisée pour ARM, etc.

le mbed est un lpc cortex-m et le stm32 est un st cortex-m, les bases sont les mêmes paramètres de changement de registre. J'ai un répertoire exemple stm32vld, si vous voulez des exemples spécifiques stm32 en utilisant llvm (en utilisant un hôte linux AMD 64 bits), pas un problème.

+1

https://github.com/dwelch67/stm32vld/tree/master/stm32f4d avez quelques exemples stm32 maintenant gcc et llvm/clang –

+0

Merci d'avoir mentionné (et de faire un travail cohérent pour) MIPS et MSP430 btw. – pfalcon

1

J'ai créé un cadre de microprogramme - PolyMCU https://github.com/labapart/polymcu - basé sur CMake qui prend en charge GCC et LLVM. Parce qu'il est basé sur CMake, vous pouvez construire votre firmware sous Linux/Windows/MacOS. Il utilise également Newlib - il semble que toutes vos exigences sont là!

J'ai aussi écrit un blog où je comparais la taille et construire GCC LLVM sur ARM Cortex-M: http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space résultats intéressants, le code généré Clang est pas beaucoup plus grand que GCC sur Cortex-M ...

Questions connexes