ifeq ($(CROSSCOMPILE),) CROSSCOMPILE = /opt/toolchains/arm-DM644X-elf-newlib/bin/arm-dm644x-elf- endif CC = $(CROSSCOMPILE)gcc NM = $(CROSSCOMPILE)nm OBJCOPY = $(CROSSCOMPILE)objcopy OBJDUMP = $(CROSSCOMPILE)objdump INCLUDEDIR = ../include CFLAGS := -c -Os -Wall -I$(INCLUDEDIR) ifeq ($(DEVICE),DM6447) CFLAGS += -DDM6447 endif LDFLAGS = -Wl,-T$(LINKERSCRIPT) -nostdlib -Wl,-Map=$(EXECUTABLE).map OBJCOPYFLAGS = -R .ddrram -R .ddrram2 --gap-fill 0xFF --pad-to 0x3660 -S SOURCES = flasher.c dm644x.c util.c uart.c uartboot.c nor.c OBJECTS := $(patsubst %.c,%.o,$(wildcard *.c)) EXECUTABLE := IRAM-flasher BINARY := ../$(EXECUTABLE).bin START := ../$(EXECUTABLE).entry ifeq ($(SECURE),1) LINKERSCRIPT = flasher-secure.ld else LINKERSCRIPT = flasher.ld endif all: $(BINARY) $(START) $(EXECUTABLE).sym $(EXECUTABLE).hex $(EXECUTABLE).srec .PHONY : clean objclean clean: -rm -f -v $(OBJECTS) $(BINARY) $(EXECUTABLE) $(START) *.o *.map *.sym *.srec *.hex ../*.dat objclean: -rm -f -v $(OBJECTS) $(START): $(EXECUTABLE) @$(OBJDUMP) -t $< | grep -E '[0-9a-f]{8}*[0-9a-f]{8} boot' | sed 's/^\([0-9a-f]\{4\}\)\([0-9a-f]\{4\}\).*/\2/' > $@ $(BINARY): $(EXECUTABLE) $(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@ @echo -n "The entry point of the binary is 0x" @$(OBJDUMP) -t $< | grep -E '[0-9a-f]{8}*[0-9a-f]{8} boot' | sed 's/^\([0-9a-f]\{4\}\)\([0-9a-f]\{4\}\).*/\2/' $(EXECUTABLE): $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) -o $@ %.o : %.c $(wildcard *.h) $(CC) $(CFLAGS) $< -o $@ $(EXECUTABLE).sym: $(EXECUTABLE) $(NM) -n $< > $@ $(EXECUTABLE).hex: $(EXECUTABLE) $(OBJCOPY) $(OBJCOPYFLAGS) -O ihex $< $@ $(EXECUTABLE).srec: $(EXECUTABLE) $(OBJCOPY) $(OBJCOPYFLAGS) -O srec $< $@ vpath %.h $(INCLUDEDIR)