⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jnand.mak

📁 QUALCOMM JNAND DRIVER
💻 MAK
📖 第 1 页 / 共 2 页
字号:
#               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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -