mirror of
https://github.com/raphnet/gc_n64_usb-v3
synced 2024-11-15 21:55:06 -05:00
b22985712f
If the stack ever grows too large (and starts overwriting variables in .bss) the firmware jumps into the bootloader. This is better than just continuing to run with strange side effects.
66 lines
1.4 KiB
Makefile
66 lines
1.4 KiB
Makefile
CC=avr-gcc
|
|
AS=$(CC)
|
|
LD=$(CC)
|
|
|
|
include Makefile.inc
|
|
|
|
PROGNAME=gcn64usb-stk500
|
|
OBJDIR=objs-$(PROGNAME)
|
|
CPU=at90usb1287
|
|
CFLAGS=-Wall -mmcu=$(CPU) -DF_CPU=16000000L -Os -DUART1_STDOUT -DSTK525 -DVERSIONSTR=$(VERSIONSTR) -DVERSIONSTR_SHORT=$(VERSIONSTR_SHORT) -std=gnu99
|
|
LDFLAGS=-mmcu=$(CPU) -Wl,-Map=$(PROGNAME).map
|
|
HEXFILE=$(PROGNAME).hex
|
|
|
|
|
|
all: $(HEXFILE)
|
|
|
|
main.o: main.c reportdesc.c dataHidReport.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
gcn64txrx0.o: gcn64txrx.S
|
|
$(CC) $(CFLAGS) -c $< -o $@ -DSUFFIX=0 -DGCN64_DATA_BIT=0
|
|
|
|
gcn64txrx1.o: gcn64txrx.S
|
|
$(CC) $(CFLAGS) -c $< -o $@ -DSUFFIX=1 -DGCN64_DATA_BIT=2
|
|
|
|
gcn64txrx2.o: gcn64txrx.S
|
|
$(CC) $(CFLAGS) -c $< -o $@ -DSUFFIX=2 -DGCN64_DATA_BIT=1
|
|
|
|
gcn64txrx3.o: gcn64txrx.S
|
|
$(CC) $(CFLAGS) -c $< -o $@ -DSUFFIX=3 -DGCN64_DATA_BIT=3
|
|
|
|
|
|
%.o: %.S
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
%.o: %.c %.h
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(PROGNAME).elf: $(OBJS)
|
|
$(LD) $(OBJS) $(LDFLAGS) -o $(PROGNAME).elf
|
|
|
|
$(HEXFILE): $(PROGNAME).elf
|
|
avr-objcopy -j .data -j .text -O ihex $(PROGNAME).elf $(PROGNAME).hex
|
|
avr-size $(PROGNAME).elf
|
|
|
|
clean:
|
|
rm -f $(PROGNAME).elf $(PROGNAME).hex $(PROGNAME).map $(OBJS)
|
|
|
|
fuse:
|
|
|
|
flash: $(HEXFILE)
|
|
- ./scripts/enter_bootloader.sh
|
|
./scripts/wait_then_flash.sh $(CPU) $(HEXFILE)
|
|
|
|
justflash: $(HEXFILE)
|
|
./scripts/wait_then_flash.sh $(CPU) $(HEXFILE)
|
|
|
|
chip_erase:
|
|
dfu-programmer at90usb1287 erase
|
|
|
|
reset:
|
|
dfu-programmer at90usb1287 reset
|