ทำความเข้าใจเกี่ยวกับกระบวนการรวบรวม / เชื่อมโยง / อัปโหลด (ดังนั้นฉันไม่จำเป็นต้องใช้ IDE)


10

ฉันเริ่มเล่นกับ arduino UNO เมื่อไม่นานมานี้ (ไม่มีประสบการณ์มาก่อนกับไมโครคอนโทรลเลอร์) ฉันต้องการใช้ emacs แทน IDE และฉันก็อยากจะรู้ว่า IDE ทำอะไรได้บ้างภายใต้ประทุนเพื่อให้สามารถเขียน makefile ของตัวเองได้ บทเรียนที่ฉันพบนั้นล้าสมัยหรือมีการนำเสนอเป็นชุดของขั้นตอนโดยไม่มีคำอธิบายใด ๆ ฉันขอขอบคุณถ้ามีคนอธิบายให้ฉันฟังได้ว่ากระบวนการ compliation / เชื่อมโยง / อัพโหลดทั้งหมดทำงานโดยใช้ gcc-avr และ avr-dude อย่างไรและ IDE ใช้งานอย่างไร


5
คุณสามารถดูภายใต้ประทุนโดย "แสดงผล verbose ระหว่าง: ☑รวบรวม☑อัปโหลด" ภายใต้การตั้งค่าไฟล์→
jippie

เกือบซ้ำกัน: รหัสผ่านรวบรวมขั้ว ดูลิงก์ไปยัง arduino-builder และ Sudar Muthu 'Makefile ในคำตอบของคำถามนี้
Edgar Bonet

คำตอบ:


12

หากคุณต้องการทำซ้ำอย่างแม่นยำในสิ่งที่ IDE ทำ แต่ต้องการให้มันขับเคลื่อนจากบรรทัดคำสั่งนั่นคือสิ่งที่Inoใช้ กระบวนการสร้าง Arduino เต็มรูปแบบเกี่ยวข้องกับการคัดลอกไฟล์จำนวนมากจากสถานที่จำนวนมากและโดยทั่วไปไม่น่าจะซ้ำซ้อน

หากคุณพร้อมที่จะปล่อยไฟล์. ini และไลบรารี Arduino คุณจะได้รับชุดเครื่องมือที่เรียบง่ายกว่ามาก คอมไพล์ avr-gcc, อัพโหลด avrdude, และคุณเสร็จแล้ว นี่คือหนึ่งใน makefiles ของฉันจากโครงการง่าย ๆ :

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

หากการคัดลอกและวางให้แน่ใจว่าได้แทนที่ "↹" ทั้งหมดด้วยอักขระแท็บ

แก้ไข:

ฉันได้สร้างพื้นที่เก็บข้อมูลที่มี buildsystem ของฉันบน Github


ขอบคุณ makefile ของคุณเป็นสิ่งที่ฉันพยายามทำ แต่ฉันเดาว่าการกำจัดไลบรารีหมายความว่าฉันจะไม่สามารถใช้ฟังก์ชั่นเช่น digitalWrite () ได้หรือไม่? ในกรณีนั้นฉันควรดูที่จะเรียนรู้สิ่งที่เทียบเท่า C ธรรมดาของพวกเขาที่ไหน
Ash

1
ห้องสมุด Arduino จะมีการเทียบเท่าของพวกเขา แต่พวกเขาสามารถเรียนรู้เล็กน้อย ฉันขอแนะนำให้ค้นหาการสอน AVR ระดับต่ำเพื่อทำงานผ่านซึ่งจะอธิบายการลงทะเบียนและอุปกรณ์ต่อพ่วงต่างๆให้คุณ โอ้และแผ่นข้อมูล มักจะได้รับแผ่นข้อมูล
Ignacio Vazquez-Abrams
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.