संकलन / लिंकिंग / अपलोड प्रक्रिया को समझना (इसलिए मुझे आईडीई का उपयोग करने की आवश्यकता नहीं है)


10

मैंने हाल ही में और माइक्रो-नियंत्रकों के साथ किसी भी पूर्व अनुभव के बिना संयुक्त राष्ट्र संघ के साथ खेलना शुरू कर दिया है। मैं IDE के बजाय emacs का उपयोग करना चाहूंगा, और मैं यह भी जानना चाहूंगा कि IDE हुड के तहत क्या करता है, ताकि मैं अपना खुद का मेकअप लिखने में सक्षम हो सकूं। मैंने जो ट्यूटोरियल पाया है वह या तो पुराना है, या बिना किसी स्पष्टीकरण के चरणों की एक श्रृंखला के रूप में प्रस्तुत किया गया है। मैं इसकी सराहना करता हूँ अगर कोई मुझे समझा सकता है कि gcc-avr और avr-dude का उपयोग करके संपूर्ण संकलन / लिंकिंग / अपलोड प्रक्रिया कैसे काम करती है, और इसका उपयोग IDE द्वारा कैसे किया जाता है।


5
आप "शो वर्बोज़ आउटपुट के दौरान: hood संकलन" अपलोड "अंडर फ़ाइल → वरीयताएँ द्वारा हुड के नीचे नज़र डाल सकते हैं।
जिप्पी

लगभग डुप्लिकेट: टर्मिनल के माध्यम से कोड संकलन । उस प्रश्न के उत्तर में अर्डिनो-बिल्डर और सुडर मुथु 'मेकफाइल के लिंक देखें।
एडगर बोनट

जवाबों:


12

यदि आप IDE जो भी करते हैं उसका सटीक दोहराव चाहते हैं, लेकिन यह कमांड लाइन से प्रेरित है, तो यही Ino है। पूर्ण Arduino बिल्ड प्रक्रिया में बहुत सारी जगहों से बहुत सारी फ़ाइलों की प्रतिलिपि बनाना शामिल है, और आमतौर पर नकल करने के लिए तुच्छ नहीं है।

यदि आप .ino फ़ाइलों और Arduino पुस्तकालयों को जाने देने के लिए तैयार हैं, तो आपको बहुत सरल टूलसेट मिलता है। avr-gcc संकलन, avrdude अपलोड, और आप कर रहे हैं। यहाँ एक सरल परियोजना से मेरा मेकफाइल्स है:

CC=avr-gcc
CXX=avr-c++
CXXFLAGS=-Wall -Wextra -mmcu=atmega1284p -Os
CFLAGS=$(CXXFLAGS)
BINARY=ledmatrix
OBJECTS=

all: $(BINARY)
@avr-size $<

$(BINARY): $(OBJECTS)

clean:
@rm -f $(BINARY) $(BINARY).hex $(OBJECTS)

upload: $(BINARY).hex
@avrdude -c usbasp -p m1284p -U flash:w:$<:i

%.hex: %
@avr-objcopy -j .text -j .data -O ihex $< $@

.PHONY: all clean upload

यदि कॉपी-और-पेस्ट करना, टैब वर्णों के साथ सभी "with" को बदलना सुनिश्चित करें।

संपादित करें:

मैंने गितुब पर अपने निर्माण प्रणाली के साथ एक भंडार बनाया है ।


धन्यवाद, आपका मेकफाइल बहुत अधिक है जो मैं साथ आने की कोशिश कर रहा था। लेकिन मुझे लगता है कि पुस्तकालयों से छुटकारा पाने का मतलब है कि मैं डिजिटलविराइट () जैसे कार्यों का उपयोग करने में सक्षम नहीं होगा? उस स्थिति में, मुझे उनके सादे सी समकक्षों को सीखने के लिए कहाँ देखना चाहिए?
ऐश

1
Arduino पुस्तकालयों में उनके समतुल्य समाहित होंगे, लेकिन वे पढ़ने के लिए थोड़े विवादास्पद हो सकते हैं। मैं अनुशंसा करता हूं कि निम्न-स्तरीय AVR ट्यूटोरियल को काम करने के लिए आप विभिन्न रजिस्टरों और बाह्य उपकरणों के बारे में बताएंगे। ओह, और डेटाशीट। हमेशा डेटशीट प्राप्त करें।
इग्नासियो वाज़क्वेज़-अब्राम्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.