2011-11-02 26 views

Odpowiedz

2

Niestety, w tej chwili dzyń nie obsługuje elastyczne ustawienia krzyżowej kompilacji. Najprawdopodobniej będziesz musiał wywołać niezbędne narzędzia z wszystkimi niezbędnymi argumentami.

Rozpocznij od budowania llvm + clang za pomocą --target = thumbv7-eabi configure argument (pamiętaj, że będziesz potrzebował llvm + clang z wczoraj). Możesz również określić opcję -enable-targets = arm. Spowoduje to, że polecenie będzie generować kod dla kciuka domyślnie. Następnie możesz wywołać clang -mcpu = cortex-m3, aby wygenerować kod dla ciebie.

Będziesz musiał dostarczyć wszystkie niezbędne zawierać ścieżki/bibliotekę rąk poprzez -I/-l, itp

Jeśli jesteś zadowolony z jakiegoś C++ hacking, można napisać konieczne „HostInfo”, a więc wywoła odpowiednie narzędzia i zapewni odpowiednie ścieżki automagicznie.

9

Spójrz na mbed_samples na github

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

i innych projektów mam w github (z wykorzystaniem LLVM, ARM, MIPS i oparte na bazie MSP430). Z półki narzędzia llvm (dobrze clang) pracują dobrze kompilując krzyż dla ARM, itd.

mbed to kort-1 m-pc, a stm32 to st-cortex-m, podstawy są tym samym ustawieniem rejestru zmian. Mam przykładowy katalog stm32vld, jeśli chcesz mieć jakieś specyficzne dla stm32 przykłady używając llvm (używając 64-bitowego hosta AMD dla Linuxa), to nie jest problem.

+1

https://github.com/dwelch67/stm32vld/tree/master/stm32f4d mają pewne przykłady stm32 teraz gcc i llvm/clang –

+0

Dziękuję za wzmiankę (i wykonanie spójnej pracy) dla MIPS i MSP430. – pfalcon

1

Stworzyłem framework oprogramowania sprzętowego - PolyMCU https://github.com/labapart/polymcu - który jest oparty na CMake obsługującym GCC i LLVM. Ponieważ jest on oparty na CMake, możesz zbudować oprogramowanie układowe w systemie Linux/Windows/MacOS. Używa również Newlib - wygląda na to, że masz wszystkie wymagania!

Napisałem też bloga, gdzie w porównaniu GCC i LLVM budować wielkość na ARM Cortex-M: http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space interesujące rezultaty, Clang wygenerowany kod nie jest dużo większy niż GCC na Cortex-M ...