विषयसूची:

Linux पर STM32 विकसित करना प्रारंभ करें: 4 चरण
Linux पर STM32 विकसित करना प्रारंभ करें: 4 चरण

वीडियो: Linux पर STM32 विकसित करना प्रारंभ करें: 4 चरण

वीडियो: Linux पर STM32 विकसित करना प्रारंभ करें: 4 चरण
वीडियो: Demo Video, Unlock android device by Kali linux 2024, जुलाई
Anonim
Image
Image
आपको जो कुछ भी चाहिए उसे डाउनलोड करें
आपको जो कुछ भी चाहिए उसे डाउनलोड करें

इस निर्देशयोग्य में, मैं आपको दिखाने जा रहा हूं कि लिनक्स पर STM32 प्रोग्राम विकसित करना कितना आसान है। मैंने 2 साल पहले लिनक्स को अपनी मुख्य मशीन के रूप में इस्तेमाल करना शुरू किया था और मुझे निराश नहीं किया गया है। सब कुछ विंडोज़ की तुलना में तेज़ और बेहतर काम करता है। बेशक समय-समय पर कम सुविधाजनक होता है, लेकिन यह आपको चीजों को गहराई से सीखने के लिए मजबूर करता है ताकि आप इसका इस्तेमाल कर सकें।

वैसे भी, इस निर्देशयोग्य में, एक श्रृंखला का हिस्सा जो मैं यहाँ और youtube पर शुरू कर रहा हूँ, यह है कि इसे कैसे शुरू किया जाए। कृपया मेरे यूट्यूब वीडियो को भी देखना सुनिश्चित करें जहां मैं सब कुछ एक सेगमेंट के रूप में समझाता हूं और आप मेरे साथ कोड कर सकते हैं।

इस श्रृंखला में मैं आपको दिखाऊंगा कि आप केवल नोटपैड, सबलाइम टेक्स्ट या एटम जैसे टेक्स्ट एडिटर का उपयोग करके कैसे विकास कर सकते हैं, इसलिए आपको किसी मालिकाना सॉफ्टवेयर या आईडीई की आवश्यकता नहीं है। यह उतनी ही नंगी हड्डियाँ हैं जितनी इसे मिलती हैं और यह आश्चर्यजनक रूप से आसान है।

चरण 1: वह सब कुछ डाउनलोड करें जिसकी आपको आवश्यकता है

सब कुछ काम करने के लिए आपको तीन भाग डाउनलोड करने होंगे:

  • एआरएम के लिए जीसीसी कंपाइलर
  • STM32 फर्मवेयर फ़ाइलें
  • सेंट-लिंक उपयोगिता
  • नमूना परियोजना

कंपाइलर सॉफ्टवेयर का मुख्य भाग है जो हमारे सी कोड को अन्य सभी लाइब्रेरी फाइलों के साथ मशीनी भाषा में संकलित करता है जिसे हमारा stm32 कंट्रोलर समझ सकता है। इस कंपाइलर का नवीनतम पूर्व-संकलित संस्करण डाउनलोड करें।

STM32 फर्मवेयर वाला फोल्डर वह है जिसमें मुख्य प्रोसेसर के संचालन के लिए आवश्यक सभी स्टार्टअप और कोर फाइलें होती हैं। हम मानक परिधीय पुस्तकालय का उपयोग करेंगे जिसे एचएएल ने पीछे छोड़ दिया है। मुझे StPeriphLibrary अधिक पसंद है क्योंकि इस प्रोसेसर पर काम करने वाली कंपनियां उनका उपयोग करती हैं क्योंकि यह मजबूत और पुरानी और समर्थित है। यह अधिक कठोर भी है। यह उस काम में कटौती नहीं करता है जो आपको एक परिधीय को शुरू करने या एक एलईडी चालू करने के लिए करना है, लेकिन यह आपको यह सीखने के लिए मजबूर करता है कि ये प्रोसेसर कैसे काम करते हैं। इसके साथ ही आपको आंतरिक कार्यकलापों का अधिक ज्ञान होता है जिससे किसी भी कार्य की प्रोग्रामिंग का बोध होता है।

डाउनलोड करने के लिए सॉफ्टवेयर का अंतिम टुकड़ा सेंट-लिंक उपयोगिता है। इसे जीथब पर बनाए रखा जाता है और एसडब्ल्यूडी/जेटीएजी प्रोग्रामर/डीबगर के रूप में सेवारत बोर्ड पर स्टलिंक आईसी का उपयोग करके संकलित बाइनरी फाइलों को प्रोसेसर में स्थानांतरित करने के लिए उपयोग किया जाता है।

इसके अलावा मैंने एक नमूना प्रोजेक्ट फ़ोल्डर प्रदान किया है जिसके बारे में मैं बाद में बात करूंगा और आप इसे डाउनलोड कर सकते हैं। यह पहले VIDEO1 फोल्डर के अंदर है।

चरण 2: सॉफ़्टवेयर स्थापित करना

सॉफ्टवेयर स्थापित करना
सॉफ्टवेयर स्थापित करना
सॉफ्टवेयर स्थापित करना
सॉफ्टवेयर स्थापित करना

आपके द्वारा सभी फाइलों को डाउनलोड करने के बाद मेरा सुझाव है कि आप उन्हें एक सामान्य फ़ोल्डर में रखें क्योंकि वे सभी एक ही उद्देश्य के लिए एक साथ उपयोग किए जाते हैं। मैंने सभी फ़ोल्डरों को अपनी होम निर्देशिका में "एम्बेडेड" नामक फ़ोल्डर के अंदर रखा है।

हम सबसे आसान, STM32 पुस्तकालयों से शुरुआत करेंगे। आपके द्वारा डाउनलोड किया गया फ़ोल्डर बस वहीं छोड़ा जा सकता है। बस यह देखने के लिए चारों ओर खुदाई करना सुनिश्चित करें कि उपयुक्त फाइलें कहाँ संग्रहीत हैं। इसलिए आप मुख्य MakeFile को बदल सकते हैं और संपादित कर सकते हैं ताकि यह आपके प्लेटफॉर्म के साथ काम करे।

दूसरा सबसे आसान संकलक है। आपको इसके लिए कुछ भी करने की आवश्यकता नहीं है, लेकिन हम कंपाइलर को विश्व स्तर पर सुलभ फ़ंक्शन बना देंगे ताकि आप पथ की परवाह किए बिना किसी भी फ़ोल्डर से कंपाइलर को कॉल कर सकें। सभी चरण टर्मिनल या गुई में किए जा सकते हैं, लेकिन मैं टर्मिनल का उपयोग करना पसंद करता हूं क्योंकि जब आप अनुभव करते हैं तो यह तेज़ और आसान हो जाता है और यदि आप इससे डरते हैं तो मैं आपको टर्मिनल का अधिक उपयोग करने के लिए प्रोत्साहित करता हूं। यहाँ कदम हैं:

  1. अपने होम फोल्डर "/home/YourUSERNAME/" या "~/" में जाएं या टर्मिनल में सीडी टाइप करें
  2. टाइप करके ".bashrc" फ़ाइल खोलें: nano.bashrc
  3. फ़ाइल के अंत तक नीचे स्क्रॉल करें और इस पंक्ति को जोड़ें: निर्यात पथ = $ पथ: ~/एम्बेडेड/जीसीसी-आर्म-कोई नहीं-ईबी-8-2018-क्यू4/बिन
  4. सहेज कर बाहर निकलें: CTRL+X, Y क्लिक करें, ENTER
  5. रन कमांड: स्रोत.bashrc टर्मिनल स्रोतों को ताज़ा करने के लिए
  6. जांचें कि क्या सब कुछ टाइप करके काम कर रहा है: arm-none-eabi-gcc --version, इसे कंपाइलर का नवीनतम संस्करण प्रदर्शित करना चाहिए

सेंट-लिंक स्थापित करने के लिए, उस संग्रह को निकालें जिसे आपने एंबेडेड फ़ोल्डर में डाउनलोड किया है। फिर इन चरणों का पालन करें:

  1. भागो: बनाओ
  2. फ़ोल्डर "बिल्ड/रिलीज़" में जाएं: सीडी बिल्ड/रिलीज़
  3. ls टाइप करें और आपको "st-flash" और "st-util" नामक दो निष्पादन योग्य दिखाई देंगे
  4. उन दोनों को मूल निर्देशिका में ले जाएँ stlink: mv st-flash st-util../../
  5. यदि आप विश्व स्तर पर इन दो कार्यों का उपयोग करना चाहते हैं, तो आप ".bashrc" फ़ाइल को फिर से जोड़कर संपादित कर सकते हैं:

    निर्यात पथ = $ पथ: ~/एम्बेडेड/स्टलिंक/

बस इतना ही! आपके पास वह सब कुछ है जो आपको चाहिए। अब जाओ अपने पसंदीदा टेक्स्ट एडिटर को पकड़ो। केवल एक मानक का उपयोग करें, SublimeText या Atom जैसे स्मार्ट वाला, यह वही है जो मैं उपयोग करता हूं।

चरण 3: एक नमूना परियोजना स्थापित करना

एक नमूना परियोजना की स्थापना
एक नमूना परियोजना की स्थापना

अब हम एक नमूना प्रोजेक्ट बनाएंगे जिसका उपयोग आप प्रत्येक प्रोजेक्ट को शुरू करने के लिए कर सकते हैं। यह एक टेम्प्लेट की तरह है जिसमें सभी मुख्य सेटिंग पहले से ही संभाली हुई हैं।

आप इसे मेरे MEGA पर डाउनलोड कर सकते हैं, लिंक इस निर्देश के पहले चरण पर है और मेरे हर youtube वीडियो के तहत है। इस प्रोसेसर और मेकफ़ाइल के लिए कुछ स्टार्टअप फ़ाइलों के साथ खाली main.c फ़ाइल अंदर है। मेकफाइल वह है जो सी कंपाइलर को बताता है कि आर्म कंपाइलर को कहां खोजना है, कैसे कंपाइल करना है और सभी लाइब्रेरी कहां हैं। अपने प्रोजेक्ट के लिए ये उपयुक्त फ़ाइलें प्राप्त करने के लिए, आप STM32 लाइब्रेरी फ़ोल्डर में जा सकते हैं और "प्रोजेक्ट" या "उदाहरण" फ़ोल्डर की जांच कर सकते हैं। अंदर आप इन फ़ाइलों को देखेंगे और कॉपी करेंगे: main.c, Makefile और XXX_conf.h, system_XXX.c.इसके अलावा आपको stm32_flash.ld लिंकर फ़ाइल की आवश्यकता होगी जो फ़ोल्डर में पाई जा सकती है:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" जो कि उदाहरण फ़ोल्डर के अंदर है या केवल फ़ाइल को खोजें।

मेकफ़ाइल ऑनलाइन पाया जा सकता है या मेरे फ़ोल्डर से कॉपी किया जा सकता है, लेकिन आपको कुछ चीजों को बदलने की आवश्यकता होगी। आइए मेरी मेक फ़ाइल पर एक नज़र डालते हैं और आप क्या बदल सकते हैं।

# बोर्ड पर कोड अपलोड करने के लिए स्टलिंक फ़ोल्डर का पथ

STLINK=~/एम्बेडेड/स्टलिंक # अपनी स्रोत फ़ाइलें यहां रखें (*.c) SRCS=main.c system_stm32f4xx.c # लाइब्रेरी स्रोत फ़ाइलें #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # बायनेरिज़ के साथ जेनरेट किया जाएगा यह नाम (.elf,.bin,.hex) PROJ_NAME=test # अपनी STM32F4 लाइब्रेरी कोड निर्देशिका यहां रखें, YourUSERNAME को अपने STM_COMMON=/home/matej/एम्बेडेड/STM32F4-Discovery_FW_V1.1.0 # कंपाइलर सेटिंग्स में बदलें। अन्य शीर्षलेख फ़ाइलों को शामिल करने के लिए केवल CFLAGS संपादित करें। CC=arm-none-eabi-gcc OBJCOPY=arm-none-eabi-objcopy # कंपाइलर फ़्लैग्स CFLAGS = -g -O2 -वॉल -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle-endian -mthumb= कॉर्टेक्स-एम4 -मथंब-इंटरवर्क CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 CFLAGS += -I. # STM पुस्तकालयों से फ़ाइलें शामिल करें CFLAGS += -I$(STM_COMMON)/पुस्तकालय/CMSIS/CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/CFLAGS शामिल करें += -I$(STM_COMMON)/ लाइब्रेरी/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I$(STM_COMMON)/यूटिलिटीज/STM32F4-डिस्कवरी # SRCS बनाने के लिए स्टार्टअप फाइल जोड़ें += $(STM_COMMON)/लाइब्रेरी/CMSIS/ST/STM32F4xx/सोर्स/टेम्पलेट्स/स्टार्टअप/True s OBJS = $(SRCS:.c=.o) vpath %.c $(STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj all: proj proj: $(PROJ_NAME).elf $(PROJ_NAME).elf: $(SRCS) $(CC) $(CFLAGS) $^ -o $@ $(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex $(OBJCOPY) -O बाइनरी $(PROJ_NAME).elf $(PROJ_NAME).bin साफ: rm -f *.o $(PROJ_NAME).elf $(PROJ_NAME).hex $(PROJ_NAME).bin # फ्लैश STM32F4 बर्न: proj $(STLINK)/st-flash लिखें $(PROJ_NAME).बिन 0x80000000

  • आप अपने स्टलिंक उपयोगिता फ़ोल्डर में पथ बदलने के लिए पहली पंक्ति को संपादित कर सकते हैं
  • आप पुस्तकालयों और YourUSERNAME के साथ अपने फ़ोल्डर के गंतव्य के लिए लाइन बदल सकते हैं

    STM_COMMON=/home/YourUSERNAME/एम्बेडेड/STM32F4-Discovery_FW_V1.1.0

  • उस अनुभाग को भी देखें जहां सभी पुस्तकालय जुड़े हुए हैं। यह आपके द्वारा उपयोग किए जा रहे प्लेटफ़ॉर्म के आधार पर बदल सकता है इसलिए कृपया फ़ाइल ट्री में परिवर्तनों की जाँच करें। बाकी सब कुछ जिसमें कुछ फाइलों के लिए कोई पथ शामिल है, जैसे स्टार्टअप फ़ाइल के साथ अगली पंक्ति को बदला जा सकता है।

मेकफ़ाइल के अंदर इन सभी चीजों को संपादित करने के बाद आप जांच सकते हैं कि यह आपकी निर्देशिका के अंदर टर्मिनल खोलकर काम कर रहा है या नहीं: मेक। अगर यह हर चीज को बिना किसी समस्या के संकलित करता है, तो आप सेट हैं। यदि नहीं, तो कंपाइलर त्रुटियों को देखें और Makefile.

इसके अलावा, जब मैं एटम का उपयोग करता हूं, तो मैं कोड के दो टुकड़े एक साथ रखता हूं। आमतौर पर main.c और Makefile बाईं ओर क्योंकि आपको केवल Makefile को एक बार और दाईं ओर पुस्तकालयों को संपादित करने की आवश्यकता होती है। आप चित्र पर देख सकते हैं कि मैंने प्रत्येक पुस्तकालय के लिए.c और.h फ़ाइलों वाले फ़ोल्डर को खोल दिया है। यह सब आप वीडियो में देख सकते हैं।

चरण 4: समाप्त

ख़त्म होना!
ख़त्म होना!

अब जब आपके पास मेकफ़ाइल कॉन्फ़िगर किया गया है और कंपाइलर काम कर रहा है, तो आप इस फ़ोल्डर को सभी प्रोजेक्ट्स के लिए टेम्पलेट के रूप में उपयोग कर सकते हैं, इसलिए सुनिश्चित करें कि आप इस फ़ोल्डर की एक प्रति सहेजते हैं।

इसके अलावा आप अपने विकास बोर्ड में प्लग इन करके और टर्मिनल में टाइप करके st-flash और st-info प्रोग्राम का परीक्षण कर सकते हैं:

सेंट-जानकारी --जांच

आप उस प्लेटफ़ॉर्म को देख सकते हैं जिसे स्टलिंक सॉफ़्टवेयर पहचानता है और IC परिवार कैश और अन्य सामान के साथ। आप इसमें टाइप कर सकते हैं:

सेंट-जानकारी

सभी उपलब्ध मापदंडों को देखने के लिए।

अब आप प्रोग्रामिंग शुरू कर सकते हैं। अगले निर्देश योग्य और वीडियो में, मैं आपको GPIO और घड़ियों की मूल बातें दिखाऊंगा। ये दोनों हर चीज के लिए मूल बातें हैं क्योंकि बोर्ड के साथ बातचीत करने वाली लगभग हर चीज GPIO से अधिक है और सब कुछ घड़ी पर काम करता है और आप इन प्रोसेसर को प्रोग्रामिंग करने के लिए पैटर्न देखेंगे।

तब तक, यदि आपने अभी तक ऐसा नहीं किया है, तो मेरे निर्देशयोग्य और मेरे youtube वीडियो को देखने के लिए धन्यवाद।

सिफारिश की: