122 lines
3.1 KiB
Makefile
122 lines
3.1 KiB
Makefile
H = ../../include
|
|
M = ..
|
|
S = ../../kernel
|
|
|
|
vpath %.c $(M):$(S)
|
|
vpath %.S $(M):$(S)
|
|
|
|
include ../gcc-config.mk
|
|
|
|
# Kernel options.
|
|
DEFS += -I. -I$(H) -DKERNEL -DPIC32MX7
|
|
|
|
# CPU frequency 80 MHz.
|
|
DEFS += -DCPU_KHZ=80000
|
|
DEFS += -DBUS_KHZ=80000 -DBUS_DIV=1
|
|
|
|
#
|
|
# Ethernet/USB Starter Kit with I/O Expansion board
|
|
# =================================================
|
|
#
|
|
#LDSCRIPT = ../cfg/bootloader.ld
|
|
|
|
# Console on USB
|
|
# For Windows, use the driver: http://www.schmalzhaus.com/UBW32/FW/UBW32inf.zip
|
|
DEFS += -DCONSOLE_USB
|
|
DEFS += -DUSB_NUM_STRING_DESCRIPTORS=3 -DUSB_MAX_EP_NUMBER=3
|
|
|
|
# SD/MMC card driver on SPI1
|
|
# /CS0 at pin B1
|
|
#DEFS += -DSD0_PORT=1 -DSD0_MHZ=10
|
|
#DEFS += -DSD0_CS_PORT=TRISB -DSD0_CS_PIN=1
|
|
|
|
# LEDs at pins D0 (red), D1 (yellow), D2 (green)
|
|
#DEFS += -DLED_TTY_PORT=TRISD -DLED_TTY_PIN=0
|
|
#DEFS += -DLED_DISK_PORT=TRISD -DLED_DISK_PIN=1
|
|
#DEFS += -DLED_KERNEL_PORT=TRISD -DLED_KERNEL_PIN=2
|
|
|
|
#
|
|
# UBW32 board
|
|
# ===========
|
|
#
|
|
LDSCRIPT = ../cfg/bootloader-ubw32.ld
|
|
|
|
# SD/MMC card driver on SPI1
|
|
# /CS0 at pin A9 (and optional /CS1 at pin A10)
|
|
DEFS += -DSD0_PORT=1
|
|
DEFS += -DSD0_CS_PORT=TRISA -DSD0_CS_PIN=9
|
|
DEFS += -DSD1_PORT=1
|
|
DEFS += -DSD1_CS_PORT=TRISA -DSD1_CS_PIN=10
|
|
|
|
# LEDs at pins E0, E1, E2, E3
|
|
DEFS += -DLED_AUX_PORT=TRISE -DLED_AUX_PIN=0 -DLED_AUX_INVERT
|
|
DEFS += -DLED_DISK_PORT=TRISE -DLED_DISK_PIN=1 -DLED_DISK_INVERT
|
|
DEFS += -DLED_KERNEL_PORT=TRISE -DLED_KERNEL_PIN=2 -DLED_KERNEL_INVERT
|
|
DEFS += -DLED_TTY_PORT=TRISE -DLED_TTY_PIN=3 -DLED_TTY_INVERT
|
|
|
|
DEPFLAGS = -MT $@ -MD -MP -MF .deps/$*.dep
|
|
CFLAGS = -O $(DEFS) $(DEPFLAGS) -m32
|
|
ASFLAGS = $(DEFS) $(DEPFLAGS)
|
|
|
|
CC = $(GCCPREFIX)gcc -EL -g -mips32r2
|
|
CC += -nostdinc -fno-builtin -Werror -Wall -fno-dwarf2-cfi-asm
|
|
LDFLAGS += -nostdlib -T$(LDSCRIPT) -Wl,-Map=diag.map
|
|
SIZE = $(GCCPREFIX)size
|
|
OBJDUMP = $(GCCPREFIX)objdump
|
|
OBJCOPY = $(GCCPREFIX)objcopy
|
|
|
|
# Machine-dependent files:
|
|
# startup.o MUST be loaded first.
|
|
KERNOBJ = startup.o machdep.o usb_device.o usb_function_cdc.o
|
|
KERNOBJ += usb_console.o
|
|
#KERNOBJ += cons.o
|
|
|
|
# Kernel.
|
|
KERNOBJ += main.o subr_prf.o
|
|
|
|
# Drivers.
|
|
KERNOBJ += rdisk.o rd_sd.o spi_bus.o
|
|
|
|
# Include any local specific configuration overrides
|
|
-include Makefile.local
|
|
|
|
all: .deps sys machine diag.elf
|
|
$(SIZE) diag.elf
|
|
|
|
clean:
|
|
rm -rf .deps *.o *.elf *.bin *.dis *.map *.srec core \
|
|
mklog assym.h vers.c genassym sys machine
|
|
|
|
.deps:
|
|
mkdir .deps
|
|
|
|
sys:
|
|
ln -s ../../include $@
|
|
|
|
machine:
|
|
ln -s .. $@
|
|
|
|
diag.elf: $(KERNOBJ) $(LDSCRIPT)
|
|
$(CC) $(LDFLAGS) $(KERNOBJ) -o $@
|
|
chmod -x $@
|
|
$(OBJDUMP) -d -S $@ > diag.dis
|
|
$(OBJCOPY) -O binary $@ diag.bin
|
|
$(OBJCOPY) -O ihex --change-addresses=0x80000000 $@ diag.hex
|
|
chmod -x $@ diag.bin
|
|
|
|
load: diag.elf
|
|
pic32prog diag.hex
|
|
|
|
vers.o: ../newvers.sh $(H)/*.h $(M)/*.[ch] $(S)/*.c
|
|
sh ../newvers.sh > vers.c
|
|
$(CC) -c vers.c
|
|
|
|
.SUFFIXES: .i .srec .hex .dis .cpp .cxx .bin .elf
|
|
|
|
.o.dis:
|
|
$(OBJDUMP) -d -z -S $< > $@
|
|
|
|
ifeq (.deps, $(wildcard .deps))
|
|
-include .deps/*.dep
|
|
endif
|