2011-11-02 32 views

Trả lời

2

Thật không may, ngay bây giờ kêu vang không hỗ trợ cài đặt biên dịch chéo linh hoạt. Vì vậy, có lẽ bạn sẽ cần phải gọi các công cụ cần thiết với tất cả các đối số cần thiết.

Bắt đầu với việc xây dựng llvm + clang sử dụng --target = thumbv7-eabi định cấu hình đối số (lưu ý rằng bạn sẽ cần llvm + clang kể từ hôm qua cho việc này). Bạn cũng có thể muốn chỉ định --enable-targets = arm. Điều này sẽ hướng dẫn clang tạo mã cho ngón tay cái theo mặc định. Sau đó, bạn có thể gọi clang -mcpu = cortex-m3 để tạo mã cho bạn.

Bạn sẽ phải cung cấp tất cả các cần thiết bao gồm đường dẫn/thư viện bằng tay qua -I/-L vv

Nếu bạn hài lòng với một số C++ hack, bạn có thể viết cần thiết "HostInfo", vì vậy nó sẽ gọi đúng công cụ và cung cấp đường dẫn đúng theo cách tự động.

9

Nhìn vào mbed_samples tại github

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

Và các dự án khác mà tôi có ít github (rằng việc sử dụng llvm, cánh tay dựa, mips dựa và MSP430 dựa). Tắt các công cụ llvm kệ (cũng clang) làm việc tốt biên dịch chéo cho ARM, vv

mbed là một cortex-m và stm32 là một st cortex-m, những điều cơ bản là các thiết lập đăng ký thay đổi tương tự. Tôi có một thư mục mẫu stm32vld, nếu bạn muốn một số ví dụ cụ thể stm32 sử dụng llvm (sử dụng một máy chủ Linux 64 bit AMD), không phải là một vấn đề.

+1

https://github.com/dwelch67/stm32vld/tree/master/stm32f4d có một số ví dụ stm32 bây giờ gcc và llvm/clang –

+0

Cảm ơn bạn đã đề cập (và thực hiện công việc phù hợp) MIPS và MSP430 btw. – pfalcon

1

Tôi đã tạo một khung chương trình cơ sở - PolyMCU https://github.com/labapart/polymcu - dựa trên CMake hỗ trợ GCC và LLVM. Bởi vì nó dựa trên CMake, bạn có thể xây dựng firmware của bạn trên Linux/Windows/MacOS. Nó cũng sử dụng Newlib - có vẻ như tất cả các yêu cầu của bạn là có!

Tôi cũng đã viết một blog mà tôi so GCC và LLVM xây dựng kích thước trên ARM Cortex-M: http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space kết quả thú vị, Clang tạo mã không lớn hơn nhiều so với GCC trên Cortex-M ...

Các vấn đề liên quan