mirror of
https://github.com/raphnet/gc_n64_usb-v3
synced 2024-12-21 23:08:53 -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.
61 lines
1.3 KiB
Makefile
61 lines
1.3 KiB
Makefile
CC=avr-gcc
|
|
AS=$(CC)
|
|
LD=$(CC)
|
|
|
|
include Makefile.inc
|
|
|
|
PROGNAME=gcn64usb
|
|
OBJDIR=objs-$(PROGNAME)
|
|
CPU=atmega32u2
|
|
CFLAGS=-Wall -mmcu=$(CPU) -DF_CPU=16000000L -Os -DUART1_STDOUT -DVERSIONSTR=$(VERSIONSTR) -DVERSIONSTR_SHORT=$(VERSIONSTR_SHORT) -std=gnu99
|
|
LDFLAGS=-mmcu=$(CPU) -Wl,-Map=$(PROGNAME).map
|
|
HEXFILE=$(PROGNAME).hex
|
|
|
|
all: $(HEXFILE)
|
|
|
|
clean:
|
|
rm -f $(PROGNAME).elf $(PROGNAME).hex $(PROGNAME).map $(OBJS)
|
|
|
|
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
|
|
|
|
$(PROGNAME).hex: $(PROGNAME).elf
|
|
avr-objcopy -j .data -j .text -O ihex $(PROGNAME).elf $(PROGNAME).hex
|
|
avr-size $(PROGNAME).elf
|
|
|
|
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 atmega32u2 erase
|
|
|
|
reset:
|
|
dfu-programmer atmega32u2 reset
|