Every DOL process needs a wrapper file to contain the per-process
data structures. This file is named Process_Name_Wrapper.c and
is now built/linked automatically.
Furthermore, the Makefile does not delete intermediates anymore.
# Host application and host objects
HOSTAPP = $(DEST)/ep_application
# Host application and host objects
HOSTAPP = $(DEST)/ep_application
-HOBJS = $(HDEST)/buffers.o
# Epiphany applications and common objects
# Epiphany applications and common objects
-EPAPPS = $(DEST)/Data_Generator.srec $(DEST)/Weight_Generator.srec
-ECOMMON = $(EDEST)/dol.o
+EPAPPS = $(DEST)/Beam_Former.srec
+EWRAPPERS = $(patsubst $(DEST)%,$(EDEST)%,$(EPAPPS:.srec=_Wrapper.o))
+ECOMMON = $(EDEST)/dol.o $(EDEST)/buffers.o
# Epiphany build flags
CC = e-gcc
# Epiphany build flags
CC = e-gcc
HLFLAGS = -L$(EPIPHANY_HOME)/tools/host/lib -le-hal
# Global rules
HLFLAGS = -L$(EPIPHANY_HOME)/tools/host/lib -le-hal
# Global rules
.PHONY: all run host cores clean
all: run
host: $(HOSTAPP)
.PHONY: all run host cores clean
all: run
host: $(HOSTAPP)
+cores: $(ECOMMON) $(EWRAPPERS) $(EPAPPS)
run: host cores
@echo -e "\tRUN"
run: host cores
@echo -e "\tRUN"
@echo -e "\t(EPIPHANY) OBJCOPY $@"
@$(OBJCOPY) $(OCFLAGS) --output-target srec --srec-forceS3 $^ $@
@echo -e "\t(EPIPHANY) OBJCOPY $@"
@$(OBJCOPY) $(OCFLAGS) --output-target srec --srec-forceS3 $^ $@
-$(EDEST)/%.elf: $(ECOMMON) $(EDEST)/%.o
+$(EDEST)/%.elf: $(EDEST)/%.o $(EDEST)/%_Wrapper.o $(ECOMMON)
@echo -e "\t(EPIPHANY) LINK\t$@"
@$(CC) -o $@ $^ $(LFLAGS)
@echo -e "\t(EPIPHANY) LINK\t$@"
@$(CC) -o $@ $^ $(LFLAGS)