मेरे पास एक STM32 डिस्कवरी बोर्ड है और इसे लिनक्स पर प्रोग्राम करने में सक्षम होना चाहूंगा।
ऐसा करने का सबसे आसान तरीका क्या है?
मेरे पास एक STM32 डिस्कवरी बोर्ड है और इसे लिनक्स पर प्रोग्राम करने में सक्षम होना चाहूंगा।
ऐसा करने का सबसे आसान तरीका क्या है?
जवाबों:
STM32 डिस्कवरी बोर्ड को प्रोग्राम करने और डीबग करने का एक आसान तरीका (या STM32 जो ST-Link प्रोग्रामर का उपयोग कर रहा है) 'स्टिंकल' प्रोजेक्ट https://github.com/texane/stlink का उपयोग करना है (हालाँकि OpenOCD भी लोकप्रिय लगता है)
एसटी न्यूक्लियो बोर्ड भी USB फ्लैश डिवाइस के रूप में दिखाई देते हैं, इसलिए ज़रूरत भी नहीं है stlink
- बस उन पर फ़ाइल कॉपी करें।
लिनक्स पर STM32 खोज के लिए विकसित करने के लिए कुछ अच्छे पृष्ठ हैं, जैसे http://gpio.kaltpost.de/?page_id=131 और http://torrentula.to.funpic.de/2012/03/22/ सेटिंग-अप-the-stm32f4-arm-development-toolchain / और http://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
हालाँकि मुझे आखिरी लिंक सबसे उपयोगी लगी। यह दर्शाता है कि एसटी की एसटीएम 32 परियोजनाओं का निर्माण कैसे किया जाता है - एकमात्र बदलाव उनके मेकफाइल को जोड़ना है, जो एक संपूर्ण समाधान की तरह लगता है।
उबंटू के हालिया संस्करणों पर, एक पैकेज है जिसे आप स्थापित कर सकते हैं जिसमें एक एआरएम संकलक होता है:
sudo apt-get install gcc-arm-none-eabi
ध्यान दें कि प्रोसेसर थोड़ा अलग हैं। STM32F0..4 सभी को अलग-अलग संकलक झंडे की आवश्यकता होगी, और लिंकर स्क्रिप्ट प्रत्येक के लिए थोड़ा अलग होगी (हालांकि केवल रैम और फ्लैश के आकार के कारण वास्तव में)।
संपादित करें: यदि आप वास्तव में जल्दी शुरू करना चाहते हैं तो आप http://www.espruino.com पर भी देख सकते हैं । यह एक जावास्क्रिप्ट दुभाषिया है, जो एसटीएम 32 पर ही चलता है, इसलिए एक बार जब आप 'स्टिंकल' स्थापित कर लेते हैं, तो आप बोर्ड पर फ्लैश कर सकते हैं, आप बस उस साइट से एक छवि डाउनलोड कर सकते हैं, उस पर फ्लैश कर सकते हैं, और फिर एक टर्मिनल एप्लिकेशन से कनेक्ट कर सकते हैं और प्रोग्रामिंग शुरू करें।
यदि आप GUI का उपयोग करने के बजाय पाठ संपादकों और Makefiles में अधिक हैं, तो आप कर सकते हैं:
अपने प्रोजेक्ट को बोर्ड तक पहुंचाएं। या तो उपयोग करें
एक पाठ संपादक में कोड और कमांड लाइन उपकरण का उपयोग करें। यह ट्यूटोरियल बहुत सारी युक्तियां प्रदान करेगा।
का आनंद लें
ग्रहण , जीसीसी और ओपनओसीडी एक टूलकिन है। यह EMCU-IT द्वारा अनुशंसित है और यहां अतिरिक्त जानकारी है । वे पृष्ठ भी FreeRTOS.org जैसे RTOS का उपयोग करने की सलाह देते हैं , लेकिन यह आपके ऊपर है।
और लिनक्स में एसटीएम 32 उदाहरणों को संकलित करने में मदद के लिए यहां जाएं । यह लिंक उन उदाहरणों के लिए एक मेकफाइल को इंगित करता है, जिनके साथ इसे लागू किया जा सकता है
git clone git://github.com/snowcap-electronics/stm32-examples.git
cd stm32-examples
wget http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zip
unzip stm32_f105-07_f2xx_usb-host-device_lib.zip
कुछ मामूली कोड फिक्स भी प्रलेखित हैं, लेकिन अधिकांश परियोजना के साथ काम करना चाहिए
make CROSS_COMPILE=/path/to/arm-2011.03/bin/arm-none-eabi-
मुझे https://github.com/JorgeAparicio/bareCortexM (लिंक ब्लॉग पोस्ट भी देखें) के साथ सफलता मिली है । मुझे पता है कि मैं कोड के माध्यम से सिंगल-स्टेप कर सकता हूं या अपने कोड में डिबगिंग स्टेटमेंट डालने या चिप के अंदर क्या चल रहा है, इसका अनुमान लगाने के बजाय डिवाइस मेमोरी को ब्राउज कर सकता हूं।
नंगे करंटेक्सम प्रोजेक्ट एक ओएस के बिना कॉर्टेक्स एम श्रृंखला, विशेष रूप से एसटीएम 32, सी ++ के साथ विकसित करने के लिए एक ग्रहण टेम्पलेट है। यह Openocd, gcc का उपयोग करने के लिए कॉन्फ़िगर किया गया है, और इसमें कुछ खोज बोर्डों सहित कई लक्ष्यों को फ्लैश और डीबग करने के लिए स्क्रिप्ट है। निर्देशों का पालन करके और अनुशंसित ग्रहण प्लगइन्स स्थापित करके मैं Ubuntu पर अपने STM32VLDISCOVERY का उपयोग करने में सक्षम था।
जैसा कि सिफारिश की गई है कि मैंने ग्रहण टेम्पलेट को STM32 हार्डवेयर के लिए उसी लेखक के libstm32pp C ++ टेम्पलेट लाइब्रेरी के साथ जोड़ दिया है। libstm32pp CMSIS के लिए एक आश्चर्यजनक रूप से पूरा प्रतिस्थापन और आपको इन बातों का कहना है कि देता है कि एक प्रोग्रामिंग मॉडल के साथ अक्सर आलोचना की STM32 ड्राइवरों प्रदान करता है PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
और PINB::setLow()
या PINB::setHigh()
सी ++ टेम्पलेट्स के कारण सभी ज्यादातर संकलित इनलाइन। सेटअप बहुत अच्छा है।
शायद यह किसी के लिए उपयोगी होगा: मेरा लघु लेख (रूसी पर) और सरल परियोजना । सभी लिनक्स में और अनावश्यक चीजों के बिना जैसे ग्रहण।
पुस्तकालय एसटी वेबसाइट, मेकफाइल - इंटरनेट में कई जीपीएल उदाहरणों में से एक से लिया गया था।
यहां लिनक्स या किसी अन्य OS के तहत STM32F0 डिस्कवरी बोर्ड का उपयोग करते हुए त्वरित शुरुआत के लिए एक छोटी लेकिन अभिनव टेम्पलेट परियोजना है:
https://github.com/dobromyslov/stm32f0-chibios-template
ध्यान दें कि परियोजना ChibiOS का उपयोग करती है - एक स्वतंत्र और खुला स्रोत वास्तविक समय ऑपरेटिंग सिस्टम ताकि यह खरोंच से बिल्कुल नंगे हड्डी कार्यान्वयन न हो।
पर विचार करें platformio । यदि आप कमांड-लाइन के साथ सभी आरामदायक हैं, तो आप पाएंगे कि platformio काफी विकास प्रक्रिया को आसान बनाता है। pio init
एक परियोजना स्थापित करने के लिए इस्तेमाल किया जा सकता है। pio run
संकलन करने के लिए टूलचिन का लाभ उठाता है। pio run --target upload
डिवाइस को कोड भेजता है। प्लेटफ़ॉर्मियो टूलचिन घटकों, पुस्तकालयों आदि को आवश्यकतानुसार डाउनलोड करने का ध्यान रखता है।