AVR Makefile: Forskelle mellem versioner
Spring til navigation
Spring til søgning
Bar (diskussion | bidrag) m 1 version importeret |
Bar (diskussion | bidrag) |
||
| Linje 66: | Linje 66: | ||
==Referencer== | ==Referencer== | ||
<references /> | <references /> | ||
{{Atmel Microcontroller}} | |||
[[Kategori:Atmel udviklingsmiljø]] | [[Kategori:Atmel udviklingsmiljø]] | ||
Nuværende version fra 5. nov. 2022, 12:19
Nedenstående kode er en makefile lavet til at automatisere kompilering, programmering og brænding af de Atmel ICer som skolen bruger. For at kunne bruge det skal man installere WinAVR(http://sourceforge.net/projects/winavr/files/latest/download?source=files). Når dette er installeret er det muligt at bruge makefilen. Den har følgende kommandoer, som blot indtastes i kommandopromt åbnet fra mappen(shift+højreklik -> vælg "åben kommandopromt vindue her").
- make - Bygger programmet ud fra .c og .cpp filer i mappen.
- make clean - Fjerner alle ekstra filer.
- make fuses - Sætter fuses på ICen. Skal kun gøres én gang.
- make burn - Brænder programmet til ICens flash.
- make erase - Fjerner alt data fra ICens flash.
eksempel pakke
Simpelt blink-eksempel til at illustrere hvordan man kan skrive ATTiny kode.
makefile
# Configuration # Muligheder: attiny45, attiny2313, attiny24, se resten her: http://www.nongnu.org/avr-libc/user-manual/using_tools.html TARGET := attiny45 # Navnet på projektet. MÅ IKKE HAVE MELLEMRUM! NAME := Niko428C.I2CSlave # COM-porten hvor programmøren er tilkoblet COMPORT := COM7 # DO NOT TOUCH SRCS := $(wildcard *.c) $(wildcard *.cpp) OBJS = $(wildcard *.o) BAUD := 19200 PROG := stk500v1 CFLAGS := -I. -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -DF_CPU=8000000 -mmcu=$(TARGET) all: $(NAME) avr-gcc $(CFLAGS) $(OBJS) --output $(NAME).elf avr-objcopy -O ihex -R .eeprom $(NAME).elf $(NAME).hex $(NAME): $(SRCS) avr-gcc -c $(CFLAGS) $^ clean: @- $(RM) $(NAME).elf @- $(RM) $(NAME).hex @- $(RM) $(OBJS) burn: avrdude -c $(PROG) -p $(TARGET) -P $(COMPORT) -b $(BAUD) -u -U flash:w:$(NAME).hex erase: avrdude -c $(PROG) -p $(TARGET) -P $(COMPORT) -b $(BAUD) -e fuses: $(TARGET)_fuses attiny2313_fuses: avrdude -c $(PROG) -p $(TARGET) -P $(COMPORT) -b $(BAUD) -e -U efuse:w:0xFF:m -U hfuse:w:0x9F:m -U lfuse:w:0xE4:m attiny24_fuses: avrdude -c $(PROG) -p $(TARGET) -P $(COMPORT) -b $(BAUD) -e -U efuse:w:0xFF:m -U hfuse:w:0xD7:m -U lfuse:w:0xE2:m attiny45_fuses: avrdude -c $(PROG) -p $(TARGET) -P $(COMPORT) -b $(BAUD) -e -U efuse:w:0xFF:m -U hfuse:w:0xD7:m -U lfuse:w:0xE2:m attiny461_fuses: avrdude -c $(PROG) -p $(TARGET) -P $(COMPORT) -b $(BAUD) -e -U efuse:w:0x01:m -U hfuse:w:0xDF:m -U lfuse:w:0xE2:m attiny48_fuses: avrdude -c $(PROG) -p $(TARGET) -P $(COMPORT) -b $(BAUD) -e -U efuse:w:0x01:m -U hfuse:w:0xDA:m -U lfuse:w:0xEE:m atmega328p_fuses: avrdude -c $(PROG) -p $(TARGET) -P $(COMPORT) -b $(BAUD) -e -U efuse:w:0x05:m -U hfuse:w:0xDA:m -U lfuse:w:0xE2:m
Referencer