53 lines
1.3 KiB
Makefile
53 lines
1.3 KiB
Makefile
|
|
OPENOCD_HOST ?= localhost
|
|
OPENOCD_PORT_GDB ?= 3333
|
|
OPENOCD_PORT_TELNET ?= 4444
|
|
PREFIX ?= arm-none-eabi-
|
|
|
|
CC = $(PREFIX)gcc
|
|
GDB ?= $(PREFIX)gdb
|
|
|
|
CGENFLAGS = -mcpu=arm926ej-s -mthumb-interwork -fno-pie -DARM9
|
|
WARN = -Wall -Wextra -Werror=return-type -Werror=implicit-function-declaration
|
|
OPTIMIZE = -g -Og
|
|
INCLUDE = -I.
|
|
GENDEP = -MMD -MP
|
|
DEFS = -DPLL_FBDIV=20
|
|
|
|
CFLAGS = -std=gnu17 $(CGENFLAGS) $(WARN) $(OPTIMIZE) $(INCLUDE) $(GENDEP) $(DEFS)
|
|
LDFLAGS = -static -nostartfiles -T bsp/fx3.ld -Wl,-z,max-page-size=4096,-Map,$(basename $@).map
|
|
|
|
VPATH = bsp
|
|
|
|
OBJS = main.o usb.o gpif.o gctl.o gpio.o uart.o util.o dma.o irq.o cache.o vectors.o jazelle.o nl-glue.o
|
|
|
|
all : jazelle.img
|
|
|
|
jazelle.img: jazelle.elf
|
|
python3 elf2img.py $< $@
|
|
|
|
clean :
|
|
rm -f jazelle.img jazelle.elf jazelle.map $(OBJS) $(OBJS:.o=.d)
|
|
|
|
jazelle.elf : $(OBJS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
|
|
|
|
openocd-launch:
|
|
openocd -c "bindto $(OPENOCD_HOST)" -f ./arm926ejs_fx3.cfg -c init # TODO: ports
|
|
|
|
openocd-load: jazelle.elf
|
|
printf 'reset halt\nload_image jazelle.elf\nexit\n' \
|
|
| nc $(OPENOCD_HOST) $(OPENOCD_PORT_TELNET)
|
|
|
|
gdb:
|
|
$(GDB) -ex 'target extended-remote $(OPENOCD_HOST):$(OPENOCD_PORT_GDB)' \
|
|
-ex 'set $$pc=_start' \
|
|
$(GDB_EXTRA_CMDS) \
|
|
-ex c jazelle.elf
|
|
|
|
# -ex 'b jazelle_exec' \
|
|
|
|
-include $(OBJS:.o=.d)
|
|
|
|
.PHONY: all clean openocd-launch openocd-load gdb
|