2011-11-02 15 views

Respuesta

2

Desafortunadamente, en este momento ruido metálico no es compatible configuración flexible de compilación cruzada. Entonces, lo más probable es que necesites invocar las herramientas necesarias con todos los argumentos necesarios.

Comience con la construcción de llvm + clang usando --target = thumbv7-eabi configure el argumento (tenga en cuenta que necesitará llvm + clang desde ayer para esto). Es posible que desee especificar --enable-targets = arm también. Esto instruirá clang para generar código para el pulgar por defecto. Después de esto, puede invocar clang -mcpu = cortex-m3 para generar el código para usted.

Usted tendrá que proporcionar todo lo necesario incluir caminos/biblioteca de manos a través de -I/L, etc.

Si estás contento con un poco de C++ piratería, puede escribir necesario "hostinfo", por lo que invocará las herramientas correctas y proporcionará los caminos correctos automágicamente.

9

Mira mbed_samples en github

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

y otros proyectos que tengo en GitHub (que el uso llvm, brazo basa, MIPS basa msp430 y basa). Fuera de la plataforma herramientas llvm (bien clang) funcionan bien compilación cruzada para ARM, etc.

el mbed es un córtex-lpc y el stm32 es un córtex-st, los elementos básicos son los mismos ajustes de registro de cambios. Tengo un dir de ejemplo stm32vld, si quieres algunos ejemplos específicos de stm32 usando llvm (usando un host AMD Linux de 64 bits), no hay problema.

+1

https://github.com/dwelch67/stm32vld/tree/master/stm32f4d tiene algunos ejemplos stm32 ahora gcc y llvm/clang –

+0

Gracias por mencionar (y hacer un trabajo consistente para) MIPS y MSP430 por cierto. – pfalcon

1

Creé un marco de firmware - PolyMCU https://github.com/labapart/polymcu - que se basa en CMake que admite GCC y LLVM. Debido a que está basado en CMake, puede construir su firmware en Linux/Windows/MacOS. También usa Newlib, ¡parece que todos tus requisitos están ahí!

También escribí un blog donde he comparado CCG y LLVM Construido en ARM Cortex-M: http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space resultados interesantes, Clang genera el código no es mucho más grande que el CCG Cortex-M ...

Cuestiones relacionadas