Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROJECT = main
- BOOT = boot
- BOOTSRC = ..\common\slave_boot
- CORE = core
- BOOTADDR = 0x1800
- LENADDR = 0x0026
- TARGET = atmega8
- TARGET_AD = m8
- PROGRAMMER = usbtiny
- # PROGRAMMER = usbasp
- HFUSE = 0xC0
- LFUSE = 0xFF
- LOCK = 0x2F
- CC = avr-c++ -g -mmcu=$(TARGET) -Os -fwhole-program -fdata-sections -ffunction-sections -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -I $(CURDIR)
- # project s/w defines
- CC += -DF_CPU=16000000
- CC += -DMSI_CLASS=SLAVE02
- CC += -DFW_VER=0x02
- CC += -DFW_SUBVER=0x00
- LC = avr-gcc -Wl,--gc-sections,--relax,-T avr4_mod.x -g -mmcu=$(TARGET)
- OC = avr-objcopy
- OD = avr-objdump -h -S
- AS = avr-size -C --mcu=$(TARGET)
- AP = ../../Utils/avrdude/
- AD = "$(AP)avrdude.exe" -q -q -u -y -C "$(AP)avrdude.conf" -c $(PROGRAMMER) -p $(TARGET_AD)
- CRC = ../../Utils/crc/crc.exe
- all: clean compile
- compile: $(PROJECT).c $(PROJECT).h $(BOOTSRC).c $(BOOTSRC).h
- @mkdir obj
- # make make Boot Area binary (object file with .boot section)
- @$(CC) -c $(BOOTSRC).c -oobj/$(BOOT).o
- @$(LC) -Wl,-Map,obj/$(BOOT).map -Wl,--section-start,.text=$(BOOTADDR) -o obj/$(BOOT).elf obj/$(BOOT).o
- @$(OC) -j .text -j .data -O binary obj/$(BOOT).elf obj/$(BOOT).bin
- @$(OC) -I binary -O elf32-avr --rename-section .data=.$(BOOT) obj/$(BOOT).bin obj/$(BOOT)bin.o
- #make User Area binary (object file with Boot Area included)
- @$(CC) -c $(PROJECT).c -oobj/$(PROJECT).o
- @$(LC) -Wl,-Map,obj/$(PROJECT).map -Wl,--section-start,.$(BOOT)=$(BOOTADDR) -o obj/$(PROJECT).elf obj/$(PROJECT).o obj/$(BOOT)bin.o
- @$(OC) -j .text -j .data -O binary obj/$(PROJECT).elf obj/$(PROJECT).bin
- #add size and CRC16 and make output binaries
- @$(CRC) obj/$(PROJECT).bin obj/$(BOOT).bin $(CORE).bin $(PROJECT).bin $(BOOTADDR) $(LENADDR)
- #extract listings
- @$(OD) obj/$(PROJECT).elf > obj/$(PROJECT).lst
- @$(OD) obj/$(BOOT).elf > obj/$(BOOT).lst
- @echo Main code:
- @$(AS) obj/$(PROJECT).elf >>obj/$(PROJECT).lst
- @$(AS) obj/$(PROJECT).elf
- @echo Boot code:
- @$(AS) obj/$(BOOT).elf >>obj/$(BOOT).lst
- @$(AS) obj/$(BOOT).elf
- clean:
- @rm -rf obj
- prog: $(CORE).bin
- @$(AD) -B 1 -U flash:w:"$(CORE).bin":r
- fuses:
- @$(AD) -B 20 \
- -U hfuse:w:$(HFUSE):m \
- -U lfuse:w:$(LFUSE):m \
- -U lock:w:$(LOCK):m
- read:
- @$(AD) -B 1 -U flash:r:"flash.bin":r
- @$(AD) -B 1 -U eeprom:r:"eeprom.bin":r
- count:
- @$(AD) -Y $(N)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement