mirror of
https://github.com/raphnet/gc_n64_usb-v3
synced 2024-12-21 14:58:51 -05:00
Merge pull request #8 from Mcharlsto/master
Fix & Improve ATmega32u4 support
This commit is contained in:
commit
c681f648a5
64
Makefile.32u4
Normal file
64
Makefile.32u4
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
CC=avr-gcc
|
||||||
|
AS=$(CC)
|
||||||
|
LD=$(CC)
|
||||||
|
|
||||||
|
include Makefile.inc
|
||||||
|
|
||||||
|
PROGNAME=gcn64usb
|
||||||
|
OBJDIR=objs-$(PROGNAME)
|
||||||
|
CPU=atmega32u4
|
||||||
|
CFLAGS=-Wall -mmcu=$(CPU) -DF_CPU=16000000L -Os -DUART1_STDOUT -DVERSIONSTR=$(VERSIONSTR) -DVERSIONSTR_SHORT=$(VERSIONSTR_SHORT) -DVERSIONBCD=$(VERSIONBCD) -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 -C --mcu=$(CPU)
|
||||||
|
|
||||||
|
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 $(CPU) erase
|
||||||
|
|
||||||
|
reset:
|
||||||
|
dfu-programmer $(CPU) reset
|
||||||
|
|
||||||
|
restart:
|
||||||
|
- ./scripts/enter_bootloader.sh
|
||||||
|
./scripts/start.sh $(CPU)
|
@ -18,6 +18,7 @@ The project is released under the General Public License version 3.
|
|||||||
|
|
||||||
You will need a working avr-gcc toolchain with avr-libc and standard utilities such as make. Just
|
You will need a working avr-gcc toolchain with avr-libc and standard utilities such as make. Just
|
||||||
type 'make' and it should build just fine. Under Linux at least.
|
type 'make' and it should build just fine. Under Linux at least.
|
||||||
|
If you are compiling for a custom board or Arduino running on an ATmega32u4, then run 'make -f Makefile.32u4' instead.
|
||||||
|
|
||||||
## Programming the firmware
|
## Programming the firmware
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ void enterBootLoader(void)
|
|||||||
usb_shutdown();
|
usb_shutdown();
|
||||||
_delay_ms(10);
|
_delay_ms(10);
|
||||||
|
|
||||||
#if defined(__AVR_ATmega32U2__)
|
#if defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega32U4__)
|
||||||
// ATmega32u2 : 0x3800
|
// ATmega32u2 : 0x3800
|
||||||
asm volatile(
|
asm volatile(
|
||||||
"cli \n"
|
"cli \n"
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
- Future ideas / TODO
|
- Future ideas / TODO
|
||||||
- Add very basic N64 mouse support (detect and treat it like a controller)
|
- Add very basic N64 mouse support (detect and treat it like a controller)
|
||||||
- Add support for Atmega32u4 MCU
|
|
||||||
|
|
||||||
- March 5, 2021 : Version 3.6.1
|
- March 5, 2021 : Version 3.6.1
|
||||||
- Alter timing so the brawler64 wireless gamepad will work. Those will now
|
- Alter timing so the brawler64 wireless gamepad will work. Those will now
|
||||||
|
Loading…
Reference in New Issue
Block a user