|
I am using the commercial version (4.40A (4.40.1.501)) on our own hardware (no development kit). I'm going through the makefiles- it's not obvious for me (see below). If there is a tool to convert a .d79 file to a map file, then that would be cool.
Thanks, Will
Makefile: ############################################################################## # CONFIGURATION # ############################################################################## # NOTE - environment variables BOARD and CPU must be defined
# name of APPutable APP = rsm
############################################################################## # TOOLS # ##############################################################################
# C pre-processor used mainly in dependency generation CPP = "../BuildTools/cpp.exe" SED = "../BuildTools/sed.exe" RM = "../BuildTools/rm.exe" -f CP = "../BuildTools/cp.exe" MV = "../BuildTools/mv.exe" MKDIR = "../BuildTools/mkdir.exe" --parents TOUCH = "../BuildTools/touch.exe"
# NOTE CC etc are in the platform specific section
##############################################################################
# list of source and include directories LIB = ../lib
FREERTOS = ../lib/FreeRTOS/Source
RTOSSRC = $(FREERTOS) \ $(FREERTOS)/portable/MemMang \ $(RTOSPORTSRC) RTOSINC = $(FREERTOS)/include $(TOOLCHAININC)
include $(LIB)/$(BOARD)/$(TOOLCHAIN)/Makefile
# directories of all the sources SOURCES = $(LIB)/$(CPU) \ $(LIB)/$(BOARD)/$(TOOLCHAIN) \ $(LIB)/$(BOARD) \ $(LIB) \ $(BOARD)/$(TOOLCHAIN) \ $(BOARD) \ . \ $(RTOSSRC)
RELEASE = ../../../Release/Sam7
##############################################################################
# upto 2 executables supported EXEC = ../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)/$(APP).$(EXEEXT) EXE2 = ../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)/$(APP).$(BINEXT)
# generate a list of all the sources CSRC = $(foreach DIR, $(SOURCES), $(wildcard $(DIR)/*.c)) SSRC = $(foreach DIR, $(SOURCES), $(wildcard $(DIR)/*.$(ASMEXT)))
# generate a list of objects from the C sources COBJ = $(CSRC:$(LIB)/$(CPU)%.c=../obj/$(APP)/lib/$(CPU)%.$(OBJEXT)) COBJ := $(COBJ:$(LIB)/$(BOARD)/$(TOOLCHAIN)%.c=../obj/$(APP)/lib/$(BOARD)/$(TOOLCHAIN)%.$(OBJEXT)) COBJ := $(COBJ:$(LIB)/$(BOARD)%.c=../obj/$(APP)/lib/$(BOARD)/$(TOOLCHAIN)%.$(OBJEXT)) COBJ := $(COBJ:$(LIB)%.c=../obj/$(APP)/lib/$(TOOLCHAIN)%.$(OBJEXT)) COBJ := $(COBJ:$(BOARD)/$(TOOLCHAIN)%.c=../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)%.$(OBJEXT)) COBJ := $(COBJ:$(BOARD)%.c=../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)%.$(OBJEXT)) COBJ := $(COBJ:.%.c=../obj/$(APP)/$(TOOLCHAIN)%.$(OBJEXT))
# generate a list of objects from asm sources SOBJ = $(SSRC:$(LIB)/$(CPU)%.$(ASMEXT)=../obj/$(APP)/lib/$(CPU)%.$(OBJEXT)) SOBJ := $(SOBJ:$(LIB)/$(BOARD)/$(TOOLCHAIN)%.$(ASMEXT)=../obj/$(APP)/lib/$(BOARD)/$(TOOLCHAIN)%.$(OBJEXT)) SOBJ := $(SOBJ:$(LIB)/$(BOARD)%.$(ASMEXT)=../obj/$(APP)/lib/$(BOARD)/$(TOOLCHAIN)%.$(OBJEXT)) SOBJ := $(SOBJ:$(LIB)%.$(ASMEXT)=../obj/$(APP)/lib/$(TOOLCHAIN)%.$(OBJEXT)) SOBJ := $(SOBJ:$(BOARD)/$(TOOLCHAIN)%.$(ASMEXT)=../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)%.$(OBJEXT)) SOBJ := $(SOBJ:$(BOARD)%.$(ASMEXT)=../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)%.$(OBJEXT)) SOBJ := $(SOBJ:.%.$(ASMEXT)=../obj/$(APP)/$(TOOLCHAIN)%.$(OBJEXT))
# generate a dependencies from object lists CDEP = $(COBJ:%$(OBJEXT)=%d) SDEP = $(SOBJ:%$(OBJEXT)=%das)
# standard include directories INCLUDES = $(LIB)/$(CPU)/include \ $(LIB)/$(BOARD)/include \ $(LIB)/$(BOARD)/$(TOOLCHAIN)/include \ $(LIB)/include \ $(LIB)/include/platform \ include \ $(BOARD)/include \ $(BOARD)/$(TOOLCHAIN)/include \ $(RTOSINC)
############################################################################## ##############################################################################
#implicit rules censored up the Makefile so disable them .SUFFIXES:
all: mktargetdir $(EXEC) $(EXE2) @$(CP) $(EXEC) $(RELEASE)/$(notdir $(EXEC)) @$(CP) $(EXE2) $(RELEASE)/$(notdir $(EXE2)) @$(PFMINST) @echo ok
.PHONY: clean clean: @$(RM) -r ../obj/$(APP)
mktargetdir: @$(MKDIR) $(addsuffix .,$(sort $(dir $(COBJ)) $(dir $(SOBJ)))) @$(MKDIR) $(dir $(EXEC)) test:
############################################################################## ##############################################################################
# These are defined to help handling of spaces in paths BLANK := SPACE := $(BLANK) $(BLANK)
define run_cdep @$(CPP) $(RTOSPORT) $(CPPFLAGS) -MM $(subst +,$(SPACE),$(INCLUDES:%=-I%)) $< -o $@~ @$(SED) "s,$(notdir $*).o[ :]*,$@ $(@:%.$(OBJEXT)=%.d): ,g" < $@~ > $(@:%.$(OBJEXT)=%.d) @$(RM) $@~ endef
define run_cbuild @echo $@ @$(run_cdep) @$(CC) $(RTOSPORT) $(CFLAGS) $(subst +,$(SPACE),$(INCLUDES:%=-I%)) $< $(CCOUT)$@ endef
define run_sdep @$(CPP) $(RTOSPORT) $(CPPFLAGS) -MM $(INCLUDES:%=-I%) $< -o $@~ @$(SED) "s,$(notdir $*).o[ :]*,$@ $(@:%.$(OBJEXT)=%.das): ,g" < $@~ > $(@:%.$(OBJEXT)=%.das) @$(RM) $@~ endef
define run_sbuild @echo $@ @$(run_sdep) @$(AS) $(RTOSPORT) $(AFLAGS) $(subst +,$(SPACE),$(INCLUDES:%=-I%)) $< -o $@ endef
############################################################################## # Object generation # ##############################################################################
# C objects ../obj/$(APP)/lib/$(CPU)/%.$(OBJEXT): $(LIB)/$(CPU)/%.c $(run_cbuild)
../obj/$(APP)/lib/$(BOARD)/$(TOOLCHAIN)/%.$(OBJEXT): $(LIB)/$(BOARD)/$(TOOLCHAIN)/%.c $(run_cbuild)
../obj/$(APP)/lib/$(BOARD)/$(TOOLCHAIN)/%.$(OBJEXT): $(LIB)/$(BOARD)/%.c $(run_cbuild)
../obj/$(APP)/lib/$(TOOLCHAIN)/%.$(OBJEXT): $(LIB)/%.c $(run_cbuild)
../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)/%.$(OBJEXT): $(BOARD)/$(TOOLCHAIN)/%.c $(run_cbuild)
../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)/%.$(OBJEXT): $(BOARD)/%.c $(run_cbuild)
../obj/$(APP)/$(TOOLCHAIN)/%.$(OBJEXT): %.c $(run_cbuild)
# ASM objects ../obj/$(APP)/lib/$(CPU)/%.$(OBJEXT): $(LIB)/$(CPU)/%.$(ASMEXT) @$(run_sbuild)
../obj/$(APP)/lib/$(BOARD)/$(TOOLCHAIN)/%.$(OBJEXT): $(LIB)/$(BOARD)/$(TOOLCHAIN)/%.$(ASMEXT) $(run_sbuild)
../obj/$(APP)/lib/$(BOARD)/$(TOOLCHAIN)/%.$(OBJEXT): $(LIB)/$(BOARD)/%.$(ASMEXT) $(run_sbuild)
../obj/$(APP)/lib/$(TOOLCHAIN)/%.$(OBJEXT): $(LIB)/%.$(ASMEXT) $(run_sbuild)
../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)/%.$(OBJEXT): $(BOARD)/$(TOOLCHAIN)/%.$(ASMEXT) $(run_sbuild)
../obj/$(APP)/$(BOARD)/$(TOOLCHAIN)/%.$(OBJEXT): $(BOARD)/%.$(ASMEXT) $(run_sbuild)
../obj/$(APP)/$(TOOLCHAIN)/%.$(OBJEXT): %.$(ASMEXT) $(run_sbuild)
############################################################################## ##############################################################################
# rule to build executable $(EXEC): $(COBJ) $(SOBJ) $(LDSCRIPT) @echo $@ @..\BuildTools\buildver.bat >$(dir $(EXEC))version.c @$(CC) $(RTOSPORT) $(CFLAGS) $(subst +,$(SPACE),$(INCLUDES:%=-I%)) \ $(dir $(EXEC))version.c $(CCOUT)$(dir $(EXEC))version.$(OBJEXT) @$(LD) $(LDFLAGS) $(LDOUT)$(EXEC) $(SOBJ) $(COBJ) $(dir $(EXEC))version.$(OBJEXT) $(LDFLAGS2)
# Rule to build bin from exe %.$(BINEXT): %.$(EXEEXT) $(run_mkbin)
# include the files containing dependency rules -include $(CDEP) $(SDEP)
|