stm32

2011-11-02 8 views
16

के लिए संकलित करने के लिए llvm + clang का उपयोग कैसे करें किसी ने इंफोस को binutils और newlib का उपयोग करके और इसका उपयोग करने के तरीके के साथ एक llvm + clang टूलचेन बनाने का तरीका बताया है?stm32

  • मेजबान: लिनक्स, AMD64
  • लक्ष्य: प्रांतस्था-एम 3, STM32
  • सी lib: newlib
  • कोडांतरक: gnu रूप

उत्तर

2

दुर्भाग्य से, अभी बजना का समर्थन नहीं करता लचीला पार संकलन सेटिंग्स। तो, शायद आपको सभी आवश्यक तर्कों के साथ आवश्यक टूल का आह्वान करना होगा।

- elarget = thumbv7-eabi कॉन्फ़िगरेशन तर्क का उपयोग करके llvm + clang के निर्माण से शुरू करें (ध्यान दें कि आपको इसके लिए कल के रूप में llvm + clang की आवश्यकता होगी)। आप --enable-targets = arm को भी निर्दिष्ट करना चाहते हैं। यह डिफ़ॉल्ट रूप से अंगूठे के लिए कोड उत्पन्न करने के लिए क्लैंग को निर्देश देगा। इसके बाद आप अपने लिए कोड उत्पन्न करने के लिए clang-mcpu = cortex-m3 का आह्वान कर सकते हैं।

आप सभी आवश्यक प्रदान करना होगा मैं/एल के माध्यम से हाथों से/पुस्तकालय पथ, आदि शामिल हैं

है, तो आप कुछ सी ++ हैकिंग, आप आवश्यक लिख सकते हैं "HostInfo" से खुश हैं तो यह सही उपकरण का आह्वान करेगा और स्वचालित रूप से सही पथ प्रदान करेगा। GitHub

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

और अन्य परियोजनाओं मैं GitHub पर है पर mbed_samples पर

9

देखो (जो उपयोग LLVM,, आधारित आर्म को MIPS आधारित है और msp430 आधार पर)। शेल्फ llvm उपकरण (अच्छी तरह से clang) बंद एआरएम के लिए ठीक क्रॉस संकलन, आदि

mbed एक एलपीसी कॉर्टेक्स-एम है और stm32 एक सेंट कॉर्टेक्स-एम है, मूल बातें एक ही परिवर्तन रजिस्टर सेटिंग्स हैं। मेरे पास एक stm32vld नमूना डीआईआर है, यदि आप llvm (64 बिट एएमडी लिनक्स होस्ट का उपयोग कर) का उपयोग कर कुछ stm32 विशिष्ट उदाहरण चाहते हैं, तो कोई समस्या नहीं है।

+1

https://github.com/dwelch67/stm32vld/tree/master/stm32f4d में कुछ stm32 उदाहरण हैं अब gcc और llvm/clang –

+0

एमआईपीएस और एमएसपी 430 बीटीडब्ल्यू के लिए उल्लेख करने (और लगातार काम करने के लिए धन्यवाद)। – pfalcon

1

मैंने एक फर्मवेयर ढांचा बनाया - पॉलीएमसीयू https://github.com/labapart/polymcu - यह सीएमके पर आधारित है जो जीसीसी और एलएलवीएम का समर्थन करता है। क्योंकि यह सीएमके पर आधारित है, आप लिनक्स/विंडोज/मैकोज़ पर अपने फर्मवेयर का निर्माण कर सकते हैं। यह न्यूलिब का भी उपयोग करता है - ऐसा लगता है कि आपकी सभी आवश्यकताएं हैं!

मैं भी एक ब्लॉग लिखा था कि मैं कहाँ तुलना में जीसीसी और LLVM एआरएम कॉर्टेक्स-एम पर आकार का निर्माण: http://labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space परिणाम दिलचस्प, बजना उत्पन्न कोड बहुत ज्यादा नहीं पर कॉर्टेक्स-एम जीसीसी से भी बड़ा है ...