?? jnand.mak
字號:
# SW Stack checking enabled/disabled
# -g generate extended debug information for Codeview/Debug
# -DT_MSM3 MSM3000 ASIC
# -DT_ARM ARM Target
# -D_ARM_ASM_ ARM Assembly
# -DDEBUG Enable Debug
# -DT_MSM3 MSM3000 ASIC
# -DT_MSM5000 MSM5000 ASIC
# -DT_MSM31 MSM3000 ASIC
#
#----------------------------------------------------------------------------
DMSS_AFLAGS=-I. $(EXTRAINC) -DT_ARM -D_ARM_ASM_ $(MSM_TYPE_AFLAGS)
AFLAGS= -cpu $(ARM_CPU_TYPE) -littleend -apcs /noswst/interwork -g -dwarf2
#----------------------------------------------------------------------------
# Linker flag options:
#
# -Xref List references between input areas
# -MAP Create a map pf the base and size of each are in output image
# -info sizes,totals,interwork
# sizes - give a detailed breakdown of the code and data sizes
# totals - report total code and data sizes
# interwork - list all calls for which ARM/Thumb interworking
# veneer was necessary
# -nozeropad
# -bin generate plain binary image
# -DUPOK
# -SCATTER generate scatter loaded image
#
#----------------------------------------------------------------------------
LINKFLAGS=-Xref -MAP -info sizes,totals,veneers -scatter $(SCATTERFILE)
#-------------------------------------------------------------------
# ARM Feature Defines
#-------------------------------------------------------------------
DIRECTORY=/" $(TARGET)/"
#-------------------------------------------------------------------
# New compile rules
#-------------------------------------------------------------------
$(TARGET)/%.o %.o: %.c
$(CC) $(CFLAGS) $(DMSS_CFLAGS) $(OBJ_CMD) $@ -DMSG_FILE=\"$<\" $<
@echo -----------------------------------------------------------
#-- Assembly code inference rules -------------------------------------------
.s.o:
cat $< | $(CC) -E $(DMSS_AFLAGS) - | perl $(ASM_SCRIPT) - > \
$(OBJDIR)/$*.i
-$(ASM) $(AFLAGS) -list $(TARGET)/$*.lst $(TARGET)/$*.o -o $@
#-------------------------------------------------------------------------------
# Mixed source/assembly inference rule
#-------------------------------------------------------------------------------
%.mix: %.c
@echo -----------------------------------------------------------------
@echo OBJECT $@ CV
$(CC) -S -fs $(CFLAGS) $(DMSS_CFLAGS) -DMSG_FILE=\"$<\" $(OBJ_CMD) $@ $<
@echo -----------------------------------------------------------------
#-- Object files ------------------------------------------------------------
#
#----------------------------------------------------------------------------
# This section deals with EFS NAND drivers that are in the DMSS
# directory, not part of the ARMPRG source base.
#----------------------------------------------------------------------------
NAND_FLASH_SOURCES=\
fs_nand_device.c \
fs_nand_toshiba.c \
fs_nand_samsung.c
#----------------------------------------------------------------------------
# Produce EFS OBJS and DEPS from SOURCES
#----------------------------------------------------------------------------
NAND_FLASH_OBJS := $(addprefix $(TARGET)/, $(NAND_FLASH_SOURCES:%.c=%.o))
NAND_FLASH_DEPS := $(addprefix $(TARGET)/, $(NAND_FLASH_SOURCES:%.c=%.dep))
vpath %.c ../../services/efs
ifeq '$(BUILD_SELF_TEST)' 'YES'
TEST_OBJS = $(TARGET)/jnand_test.o \
$(TARGET)/jnand_testnand.o \
$(TARGET)/jnand_tspans.o
endif
ifeq '$(USES_PRINTF)' 'YES'
PRINT_OBJS = $(TARGET)/jnand_printf.o
endif
OBJECTS = $(TARGET)/jnand_start.o \
$(TARGET)/jnand.o \
$(TARGET)/jnand_msm.o \
$(TARGET)/jnand_param.o \
$(TEST_OBJS)\
$(NAND_FLASH_OBJS) \
$(TARGET)/jnand_memmove.o \
$(TARGET)/jnand_crc.o \
$(TARGET)/jnand_debug.o \
$(TARGET)/jnand_id.o \
$(PRINT_OBJS)
##-- Default file to build ---------------------------------------------------
#all: $(TARGET)/exist $(TARGET).$(EXE) jnand_param.cmm
all: $(TARGET)/exist $(TARGET).$(EXE)
$(TARGET)/exist:
@echo ========================================================
@echo BUILDING $(TARGET)
@echo ========================================================
@if [ -f $(TARGET)/exist ]; then "" ; \
elif [ -d $(TARGET) ]; then echo Building $(TARGET) > $(TARGET)/exist ;\
else mkdir $(TARGET); echo Building $(TARGET) > $(TARGET)/exist ; fi
#-- ARM Dependencies --------------------------------------------------------
#-- ASM -------------------------------------------------------------------
$(TARGET)/jnand_start.o : jnand_start.s
cat $< | $(CC) -c -E $(DMSS_AFLAGS) - | \
perl $(ASM_SCRIPT) - > .$(OBJDIR)/$*.i
-$(ASM) $(AFLAGS) -list $*.lst .$(OBJDIR)/$*.i -o $@
@echo ----------------------------------------------------------------
$(TARGET)/jnand_memmove.o : jnand_memmove.s
cat $< | $(CC) -c -E $(DMSS_AFLAGS) - | \
perl $(ASM_SCRIPT) - > .$(OBJDIR)/$*.i
-$(ASM) $(AFLAGS) -list $*.lst .$(OBJDIR)/$*.i -o $@
@echo ----------------------------------------------------------------
#-- Target linking ----------------------------------------------------------
OBJECT_LISTFILE = objects.txt
#----------------------------------------------------
# JNAND.ELF target
#
# link
#-----------------------------------------------------
$(TARGET).$(EXE): $(SCATTERFILE) time_update $(OBJECTS)
@echo TARGET : $(LD) $@
-if [ -f $(OBJECT_LISTFILE) ]; then rm $(OBJECT_LISTFILE); fi
ifeq '$(ARM_CPU_TYPE)' "4T"
@echo " "
@echo " "
@echo "========================================================== "
@echo "WARNING: ARM_CPU_TYPE undefined"
@echo " Using generic type 4T which may or may not work"
@echo "========================================================== "
@echo " "
@echo " "
endif
perl $(REDIRECT_SCRIPT) $(OBJECT_LISTFILE) $(OBJECTS)
$(LD) -$(EXE) $(LINKFLAGS) -Debug -Symbols -LIST $@.map -o $@ $(LIBS) \
-VIA $(OBJECT_LISTFILE)
time_update: force.frc
-rm -f $(TARGET)/jnand_id.o
#-------------------------------------------------------------------------------
# Scatterload file target
#-------------------------------------------------------------------------------
$(SCATTERFILE): force.frc jnand_in.scl
@echo ---------------------------------------------------------------
@echo "========================================================== "
@echo Creating Scatter Load File
@echo "========================================================== "
@echo "###################################################" > $(SCATTERFILE)
@echo "## GENERATED FILE - DO NOT EDIT" >> $(SCATTERFILE)
@echo "## " >> $(SCATTERFILE)
@echo "## generated: `date` " >> $(SCATTERFILE)
@echo "###################################################" >> $(SCATTERFILE)
$(CC) -E $(SCATTERFLAGS) < jnand_in.scl | perl $(ASM_SCRIPT) - >> $(SCATTERFILE)
@echo Done
@echo ---------------------------------------------------------------
#----------------------------------------------------
# Generate JNAND parameter init CMM file
#-----------------------------------------------------
jnand_param.cmm: force.frc
@echo " "
@echo " "
@echo "========================================================== "
@echo "Generating $(JNANDPARAM)"
@echo "========================================================== "
@echo " "
@echo " "
@echo ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; " > $(JNANDPARAM)
@echo ";; GENERATED FILE - DO NOT EDIT " >> $(JNANDPARAM)
@echo ";; " >> $(JNANDPARAM)
@echo ";; generated: `date` " >> $(JNANDPARAM)
@echo ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; " >> $(JNANDPARAM)
@echo "global &JnandCodeAddr " >> $(JNANDPARAM)
@echo "&JnandCodeAddr=$(JNAND_CODE_ADDR) " >> $(JNANDPARAM)
@echo "global &JnandParamAddr " >> $(JNANDPARAM)
@echo "&JnandParamAddr=$(JNAND_PARAM_ADDR) " >> $(JNANDPARAM)
@echo "global &JnandBootRomBegin " >> $(JNANDPARAM)
@echo "&JnandBootRomBegin=$(JNAND_BOOT_BEGIN)" >> $(JNANDPARAM)
@echo "global &JnandBootRomEnd " >> $(JNANDPARAM)
@echo "&JnandBootRomEnd=$(JNAND_BOOT_END) " >> $(JNANDPARAM)
@echo "global &JnandCodeRomBegin " >> $(JNANDPARAM)
@echo "&JnandCodeRomBegin=$(JNAND_CODE_BEGIN)" >> $(JNANDPARAM)
@echo "global &JnandCodeRomEnd " >> $(JNANDPARAM)
@echo "&JnandCodeRomEnd=$(JNAND_CODE_END) " >> $(JNANDPARAM)
@echo " " >> $(JNANDPARAM)
clean:
rm -fr $(TARGET)
rm -f $(TARGET).sym
rm -f $(TARGET).map
rm -f $(TARGET).elf
rm -f $(TARGET).elf.map
veryclean: clean
rm -f jnand_depend.dep
rm -f objects.txt
rm -f *.log
rm -f *.bak
#===============================================================================
# DEPENDENCIES
#===============================================================================
# The dependencies included at the end of this makefile can be automatically
# updated by making the 'depend' target to invoke the following rules.
DEPFILE=jnand_depend
DEPFILE_NAME = $(DEPFILE).dep
DEPFILE_BACKUP = $(DEPFILE).bak
DEPFILE_TMP = $(DEPFILE).dep.tmp
.SUFFIXES: .s .o .c .dep
%.dep:%.c
$(CC) $(CFLAGS) $(DMSS_CFLAGS) -E < $< | perl $(GETDEP_SCRIPT) \
$(basename $@).o $< > $*.de_
@rm -f $(TARGET)/$(@F).dep
mv $*.de_ $*.dep
$(TARGET)/%.dep:%.c
$(CC) $(CFLAGS) $(DMSS_CFLAGS) -E < $< | perl $(GETDEP_SCRIPT) \
$(basename $@).o $< > $(TARGET)/$*.de_
@rm -f $(TARGET)/$*.dep
mv $(TARGET)/$*.de_ $(TARGET)/$*.dep
$(TARGET)/%.dep:%.s
$(CC) $(CFLAGS) $(DMSS_AFLAGS) $(DMSS_CFLAGS) -E < $< | \
perl $(GETDEP_SCRIPT) $(basename $@).o $< > $(TARGET)/$*.de_
@rm -f $(TARGET)/$*.dep
mv $(TARGET)/$*.de_ $(TARGET)/$*.dep
depend: $(TARGET)/exist $(OBJECTS:.o=.dep) force.frc
perl $(MDEPEND_SCRIPT) $(DEPFILE_NAME) $(TARGET) > $(DEPFILE_TMP)
-rm -f $(DEPFILE_BACKUP)
-mv $(DEPFILE_NAME) $(DEPFILE_BACKUP)
mv $(DEPFILE_TMP) $(DEPFILE_NAME)
jnand_depend.dep:
@echo " "
@echo "Creating jnand_depend.dep"
@echo " "
@echo "# ------------------------------" > jnand_depend.dep
@echo "# DO NOT EDIT BELOW THIS LINE" >> jnand_depend.dep
force.frc:
sources:
include jnand_depend.dep
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -