Sida 1 av 1

AVR-GCC växlar

Postat: 7 februari 2007, 22:43:37
av FS
När man kör AVRStudio så skickar programmet med alla växlar till kompilatorn. Men om jag ska kompilera själv och tex ladda över mitt program med AVRDUDE hur får jag då reda på hur växlarna ska vara? (avr-gcc --help ger lite för sparsam info för att jag ska bli klokare...). Finns det nån manual?

Har nu lyckats kompilera och ladda över med:

Kod: Markera allt

avr-gcc -o test.o test.c -mmcu=atmega16
avr-objcopy -O ihex -R .eeprom test.o test.hex
sudo avrdude -p atmega16 -c avrisp2 -P usb -U test.hex
För större projekt hur gör jag en bra Makefile? Det vore ju klockrent om man kunde sno en Makefile från AVRStudio och använda som grund men det verkar ju inte gå...

Några tips på hur jag hanterar mina projekt utan AVRStudio?

Postat: 7 februari 2007, 22:48:30
av strombom
Jag har knappt funderat över det när jag använt AVR, jag fick tag på en makefil för länge sedan och har använt den utan eftertanke, så här ser den ut i varje fall:

Kod: Markera allt

PRG            = filnamn
OBJ            = filnamn.o
MCU_TARGET     = atmega16
OPTIMIZE       = -O2

DEFS           =
LIBS           = C:\Program\Elektronik\WinAVR\avr\lib\libm.a

# You should not have to change anything below here.

CC             = avr-gcc

# Override is only needed by avr-lib build system.

override CFLAGS        = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
override LDFLAGS       = -Wl,-Map,$(PRG).map

OBJCOPY        = avr-objcopy
OBJDUMP        = avr-objdump

all: $(PRG).elf lst text eeprom

$(PRG).elf: $(OBJ)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)

clean:
	rm -rf *.o $(PRG).elf *.eps *.png *.pdf *.bak 
	rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)

lst:  $(PRG).lst

%.lst: %.elf
	$(OBJDUMP) -h -S $< > $@

# Rules for building the .text rom images

text: hex bin srec

hex:  $(PRG).hex
bin:  $(PRG).bin
srec: $(PRG).srec

%.hex: %.elf
	$(OBJCOPY) -j .text -j .data -O ihex $< $@

%.srec: %.elf
	$(OBJCOPY) -j .text -j .data -O srec $< $@

%.bin: %.elf
	$(OBJCOPY) -j .text -j .data -O binary $< $@

# Rules for building the .eeprom rom images

eeprom: ehex ebin esrec

ehex:  $(PRG)_eeprom.hex
ebin:  $(PRG)_eeprom.bin
esrec: $(PRG)_eeprom.srec

%_eeprom.hex: %.elf
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@

%_eeprom.srec: %.elf
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@

%_eeprom.bin: %.elf
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@

# Every thing below here is used by avr-libc's build system and can be ignored
# by the casual user.

FIG2DEV                 = fig2dev
EXTRA_CLEAN_FILES       = *.hex *.bin *.srec

dox: eps png pdf

eps: $(PRG).eps
png: $(PRG).png
pdf: $(PRG).pdf

%.eps: %.fig
	$(FIG2DEV) -L eps $< $@

%.pdf: %.fig
	$(FIG2DEV) -L pdf $< $@

%.png: %.fig
	$(FIG2DEV) -L png $< $@


Postat: 8 februari 2007, 00:58:11
av TERdON
http://wiki.linux.net.nz/MakefileHowto bör täcka åtminstone grunderna för att använda makefiler.

Postat: 8 februari 2007, 09:35:42
av JJ
Refernsmanualer till alla gnu-verktyg. både växlar till kompilatorn och hur make funkar, hittar du på www.gnu.org .

Postat: 8 februari 2007, 12:41:07
av Ulf
Följer det inte med exempel Makefiler till AVR-GCC eller var det WinAVR?