83 lines
2.3 KiB
Makefile
83 lines
2.3 KiB
Makefile
## Change these:
|
|
## HWREV:
|
|
## 0 -> initial revision
|
|
MMCU = atxmega16a4
|
|
DEFINES = -DF_CPU=2000000 -DHWREV=0
|
|
|
|
# -b baudrate
|
|
AVRDUDE = avrdude -P usb -c jtag3pdi -p $(MMCU)
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
HEADERS = twi_master_driver.h twi_slave_driver.h eeprom_driver.h avr_compiler.h
|
|
SOURCES = twi_master_driver.c twi_slave_driver.c eeprom_driver.c edid_injector.c
|
|
OBJECTS = $(SOURCES:.c=.o)
|
|
|
|
INCLUDES = -I.
|
|
|
|
VPATH = .
|
|
|
|
#-------------------------------------------------------------------------------
|
|
CC = avr-gcc
|
|
CFLAGS = -W -Wall -Os -std=gnu99 -Werror-implicit-function-declaration
|
|
|
|
all: firmware.bin firmware.hex
|
|
|
|
run: all prg
|
|
|
|
firmware.elf: $(OBJECTS)
|
|
$(CC) -s -mmcu=$(MMCU) $(OBJECTS) -o firmware.elf
|
|
|
|
%.o: %.c $(HEADERS)
|
|
$(CC) $(INCLUDES) -mmcu=$(MMCU) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c $<
|
|
|
|
# FUSEBYTE0: JTAG user ID (arbitrary)
|
|
# FUSEBYTE1:
|
|
# bits 7..4: Watchdog Window Timeout Period
|
|
# bits 3..0: Watchdog Timeout Period
|
|
# FUSEBYTE2:
|
|
# bit 6: BOOTRST
|
|
# 0: Reset vector = Boot loader reset
|
|
# 1: Reset vector = Application reset (address 0x0000)
|
|
# bit 5: TOSCSEL (32768 kHz osc pin position; usually 1)
|
|
# bits 1..0: BODPD[1:0]: (in power-down mode)
|
|
# 10 = BOD enabled continuously
|
|
# 11 = BOD disabled
|
|
# FUSEBYTE4:
|
|
# bit 4: RSTDISBL 0: disable reset
|
|
# bits 3..2: STARTUPTIME[1:0] 11/01/00: wait 0/4/64 cycles
|
|
# bit 1: WDLOCK 1: watchdog timer not locked
|
|
# bit 0: JTAGEN 1: JTAG disabled
|
|
# FUSEBYTE5:
|
|
# bits 5..4: BODACT[1:0]
|
|
# 10 = BOD enabled continuously
|
|
# 11 = BOD disabled
|
|
# bit 3: EESAVE 0: EEPROM is preserved during chip erase
|
|
# bits 2..0: BODLEVEL[2:0]
|
|
# 111: 1.6 011: 2.4
|
|
# 110: 1.8 010: 2.6
|
|
# 101: 2.0 001: 2.8
|
|
# 100: 2.2 000: 3.0
|
|
program_fuses:
|
|
$(AVRDUDE) \
|
|
-Ufuse0:w:0xff:m -Ufuse1:w:0x66:m -Ufuse2:w:0xfe:m
|
|
-Ufuse5:w:0xeb:m -Ufuse4:w:0xff:m
|
|
|
|
prg: firmware.hex
|
|
$(AVRDUDE) -Uflash:w:firmware.hex:i
|
|
|
|
dump: firmware.elf
|
|
avr-objdump -D firmware.elf
|
|
|
|
clean:
|
|
-rm -f firmware.bin firmware.elf firmware.hex
|
|
-rm -f *.o
|
|
|
|
firmware.hex: firmware.elf
|
|
avr-objcopy -j .text -j .data -O ihex firmware.elf firmware.hex
|
|
|
|
firmware.bin: firmware.elf
|
|
avr-objcopy -j .text -j .data -O binary firmware.elf firmware.bin
|
|
@ls -l firmware.bin
|
|
|