2011-11-02 2 views

답변

2

불행하게도, 지금 그 소리가 지원하지 않는 등 유연한 크로스 컴파일 설정. 따라서 대부분의 경우 필요한 모든 인수를 사용하여 필요한 도구를 호출해야합니다.

--target = thumbv7-eabi configure 인수를 사용하여 llvm + clang 빌드를 시작하십시오 (이 경우 어제 기준으로 llvm + clang이 필요합니다). --enable-targets = arm도 지정할 수 있습니다. 이것은 clang에게 기본적으로 엄지 코드를 생성하도록 지시합니다. 이 후 clang -mcpu = cortex-m3을 호출하여 코드를 생성 할 수 있습니다.

당신이 필요한 모든을 제공해야합니다 등 -I/-L을 통해 손으로/라이브러리 경로를 포함

당신이 해킹 일부 C++, 당신은 "hostinfo는"을 필요 쓸 수에 만족하면, 그렇게 올바른 도구를 호출하고 자동으로 올바른 경로를 제공합니다. GitHub의

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

내가 GitHub의에있는 다른 프로젝트에서 mbed_samples에서

9

봐 (즉, 사용 LLVM은, 기반 팔 MIPS 기반 및 MSP430 기반). 선반에서 llvm 도구 (잘 clang)는 ARM 등을위한 크로스 컴파일을 지원합니다.

mbed는 lpc cortex-m이고 stm32는 st cortex-m이며 기본은 동일한 변경 레지스터 설정입니다. stm32 샘플 예제를 가지고 있는데, lmvm (64 비트 AMD 리눅스 호스트 사용)을 사용하는 stm32 특정 예제가 필요하다면 문제가되지 않습니다.

+1

은 https ://github.com/dwelch67/stm32vld/tree/master/stm32f4d 지금 몇 가지 stm32 예제가 있습니다. gcc 및 llvm/clang –

+0

MIPS 및 MSP430 btw에 대한 언급 (및 일관된 작업 수행)에 감사드립니다. – pfalcon

1

GMC와 LLVM을 지원하는 CMake를 기반으로하는 펌웨어 프레임 워크 PolyMCU https://github.com/labapart/polymcu을 만들었습니다. CMake를 기반으로하기 때문에 Linux/Windows/MacOS에서 펌웨어를 빌드 할 수 있습니다. 또한 Newlib을 사용합니다 - 귀하의 모든 요구 사항이 보이는 것입니다! 내가 GCC와 LLVM은 ARM 코어 텍스 M에 크기를 구축 비해 곳

가 나는 또한 블로그를 썼다 : http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space 재미있는 결과를 연타가 ... 코드는 코어 텍스 M에 GCC보다 훨씬 더 큰 생성

관련 문제