Derleme / bağlama / yükleme işlemini anlama (böylece IDE'yi kullanmak zorunda değilim)


10

Son zamanlarda arduino UNO ile oynamaya başladım (mikro kontrolörler ile daha önce hiç deneyime sahip olmadan). IDE yerine emacs kullanmak istiyorum ve IDE'nin kendi markamı yazabilmek için kaputun altında ne yaptığını bilmek istiyorum. Bulduğum öğreticiler ya eski ya da hiçbir açıklama yapmadan bir dizi adım olarak sunulur. Birisi bana tüm uyumluluk / bağlama / yükleme işleminin gcc-avr ve avr-dude kullanarak nasıl çalıştığını ve IDE tarafından nasıl kullanıldığını açıklayabilirse memnun olurum.


5
"Şu sırada ayrıntılı çıktıyı göster: ☑ derleme ☑ karşıya yükle" başlığı altında Dosya → Tercihler başlığı altında bir göz atabilirsiniz.
jippie

Neredeyse yineleniyor: Kod terminal aracılığıyla derleniyor . Bu soruya verdiğim cevapta arduino-builder ve Sudar Muthu 'Makefile bağlantılarına bakın.
Edgar Bonet

Yanıtlar:


12

Bir isterseniz tam IDE ne tekrarını ama istiyorum o en şey bu, komut satırından tahrik Ino içindir. Tam Arduino oluşturma işlemi, birçok yerden çok sayıda dosyanın kopyalanmasını içerir ve genellikle çoğaltılması önemsiz değildir.

.İno dosyalarını ve Arduino kütüphanelerini bırakmaya hazırsanız, çok daha basit bir araç setine sahip olursunuz. avr-gcc derler, avrdude yüklemeler ve işiniz bitti. İşte basit bir projedeki makyaj resimlerimden biri:

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

Kopyalama ve yapıştırma işlemi yapıyorsanız, tüm "↹" işaretlerini sekme karakterleriyle değiştirdiğinizden emin olun.

DÜZENLE:

Github'daki yapı sistemimle bir depo oluşturdum .


Teşekkürler, makyajınız hemen hemen gelmeye çalıştığım şeydi. Ama ben kütüphanelerden kurtulmak demek ben digitalWrite () gibi işlevleri kullanmak mümkün olmayacak demektir? Bu durumda, düz C eşdeğerlerini nerede öğrenmeye bakmalıyım?
Ash

1
Arduino kütüphaneleri eşdeğerlerini içerecektir, ancak okumak için biraz bilgisiz olabilirler. Size çeşitli kayıt ve çevre birimlerini açıklayacak olan düşük seviyeli bir AVR eğitimi bulmanızı öneririm. Oh, ve veri sayfası. Daima veri sayfasını alın.
Ignacio Vazquez-Abrams
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.