Files
banban/ql-bootloader/updater/build/Makefile
T

201 lines
6.2 KiB
Makefile

#Default: DS-5 is added in Patch
CC = armcc.exe
LINK = armlink.exe
FROMELF = fromelf.exe
AR = armar.exe
TARGET_ = updater
obj_dir = obj
common_dir = ../../common
common_tool_dir = $(common_dir)/tool
cflag :=
dep_files :=
objs :=
feedback = feedback.txt
cflag += --cpu Cortex-R5 --no_unaligned_access -g -O2 --apcs /inter --gnu --feedback $(feedback)
# set the target type -------------------------------------------
lcd_type :=
#1. NO_LCD
ifneq (,$(findstring NO_LCD,${LCD_TYPE}))
# lcd_type = _no_lcd
endif
ifneq (,$(findstring NOUPDT,${FOTA_TYPE}))
lcd_type :=${lcd_type}_NoPartition
endif
ifneq (,$(findstring SECFOTA,${FOTA_TYPE}))
lcd_type :=${lcd_type}_sec
endif
ifneq (,$(findstring FBF,${FOTA_TYPE}))
lcd_type :=${lcd_type}_fbf
endif
ifneq (,$(findstring SPINOR_SUPPORT,${FOTA_TYPE}))
lcd_type :=${lcd_type}_exflash
endif
ifneq (,$(findstring SPINAND_SUPPORT,${FOTA_TYPE}))
lcd_type :=${lcd_type}_exnand
endif
TARGET = ${TARGET_}${lcd_type}
# ---------------------------------------------------------------
# chose libraries and makefile ----------------------------------
lib_dir = ..\lib
LIB = ${lib_dir}/ql_updater$(lcd_type).lib
include ${lib_dir}/ql_updater$(lcd_type).mk
# ---------------------------------------------------------------
# sctript chose -------------------------------------------------
scatter_dir = ..
ifneq (,$(findstring CRANEL,${FOTA_TYPE}))
scatter_file_name = scatter_craneL
else ifneq (,$(findstring CRANEM_SINGLESIM,${FOTA_TYPE}))
scatter_file_name = scatter_craneL
else
scatter_file_name = scatter
endif
# ---------------------------------------------------------------
# set the source files ------------------------------------------
src_common_dir = ../../common/src
inc_common_dir = ../../common/inc
srcs_common = \
$(src_common_dir)/plat_api.c \
$(src_common_dir)/asr_property.c \
$(src_common_dir)/bsp_tavor.c \
$(src_common_dir)/utilities.c \
$(src_common_dir)/pmic.c \
$(src_common_dir)/ningbo.c \
$(src_common_dir)/guilin.c \
$(src_common_dir)/guilin_lite.c \
$(src_common_dir)/guilin_lite2.c \
$(src_common_dir)/guilin_lite3.c \
$(src_common_dir)/FreqChange.c \
$(src_common_dir)/uart.c \
$(src_common_dir)/sdcard.c \
$(src_common_dir)/diskio.c \
$(src_common_dir)/ff.c \
$(src_common_dir)/ff_dump_mem.c \
$(src_common_dir)/ffsystem.c \
$(src_common_dir)/ffunicode.c \
$(src_common_dir)/qspi_core.c \
$(src_common_dir)/qspi_dma.c \
$(src_common_dir)/qspi_host.c \
$(src_common_dir)/qspi_nor.c \
$(src_common_dir)/system.c \
$(src_common_dir)/loadtable.c \
$(src_common_dir)/ptable.c \
$(src_common_dir)/LzmaDec.c \
$(src_common_dir)/LzmaEnc.c \
$(src_common_dir)/LzFind.c \
$(src_common_dir)/LzmaLib.c \
$(src_common_dir)/tinyalloc.c \
$(src_common_dir)/updater_table.c \
$(src_common_dir)/asr_lzma.c \
$(src_common_dir)/logo_table.c \
$(src_common_dir)/qspi_nor_bp.c \
$(src_common_dir)/quec_startup_gpio.c \
$(src_common_dir)/gpio.c
ifneq (,$(findstring SPINOR_SUPPORT,${FOTA_TYPE}))
srcs_common += $(src_common_dir)/SPI.c
srcs_common += \
$(src_common_dir)/quec_spi_nor.c \
$(src_common_dir)/quec_spi.c \
$(src_common_dir)/SPI.c
endif
ifneq (,$(findstring USE_LCD,${LCD_TYPE}))
srcs_common += \
$(src_common_dir)/quec_lcd_application.c \
$(src_common_dir)/quec_spi_drv.c \
$(src_common_dir)/quec_ssp_lcd.c
endif
objs_common += $(patsubst %.c, ${obj_dir}/%.o, ${notdir ${srcs_common}})
cflag += -I$(inc_common_dir)
dep_files += $(wildcard $(inc_common_dir)/*.h)
VPATH += $(src_common_dir)
# ---------------------------------------------------------------
# set updater source files --------------------------------------
src_updater_dir = ../src
inc_common_dir = ../inc
cflag += -I$(inc_common_dir)
dep_files += $(wildcard $(inc_common_dir)/*.h)
VPATH += $(src_updater_dir)
# ---------------------------------------------------------------
# set quectel source files --------------------------------------
src_quectel_dir = ../quectel/src
inc_quectel_dir = ../quectel/inc
srcs_quectel = $(src_quectel_dir)/src/ql_updater_usr_func.c
ifneq (,$(findstring SPINAND_SUPPORT,${FOTA_TYPE}))
srcs_quectel += \
$(src_quectel_dir)/src/dosilicon.c \
$(src_quectel_dir)/src/gigadevice.c \
$(src_quectel_dir)/src/spinand_dev.c \
$(src_quectel_dir)/src/winbond.c \
$(src_quectel_dir)/src/fudaiwei.c
endif
objs_quectel += $(patsubst %.c, ${obj_dir}/%.o, ${notdir ${srcs_quectel}})
cflag += -I$(inc_quectel_dir)
dep_files += $(wildcard $(inc_quectel_dir)/*.h)
VPATH += $(src_quectel_dir)
# ---------------------------------------------------------------
objs_sum += $(objs_common) $(objs_quectel)
${TARGET}.axf:$(objs_sum)
if not exist ${feedback} @echo "ERROR : make feedback firstly" && exit 1
$(LINK) $(LIB) $(objs_sum) --scatter $(scatter_dir)/$(scatter_file_name).scat --output $@ --map --symbols --info sizes,totals --list ${TARGET}.map --keep version_block.o(IMGVERBLOCK)
$(FROMELF) --output ${TARGET}.bin --bin ${TARGET}.axf
ifneq (,$(findstring CRANEL,${FOTA_TYPE}))
#1. UPD_SIZE = {updater.bin} size
perl $(common_tool_dir)/external_ext_bin_size_update.pl ${TARGET}.bin UPD_SIZE
ifneq (,$(findstring y,$(CONFIG_APPEND_DSP_ADC)))
#2. append dsp_adc.bin into {updater.bin}. ( note: need provide front.bin size --- UPD_SIZE)
perl $(common_tool_dir)/external_ext_bin_append.pl APPEND ${TARGET}.bin UPD_SIZE $(common_lib_dir)/dsp_adc_lzma.bin ADC_SIZE
endif
#3. EXT_SIZE = {updater.bin + dsp_adc.bin} size
perl $(common_tool_dir)/external_ext_bin_size_update.pl ${TARGET}.bin EXT_SIZE
#4. append "internal crc res" into end of image.
perl $(common_tool_dir)/external_append_pad_crc.pl ${TARGET}.bin
endif
#common start
${obj_dir}/%.o: %.c $(dep_files)
if not exist $(obj_dir) mkdir $(obj_dir)
$(CC) $(cflag) --thumb -c $< -o $@
#common end
feedback:$(objs_sum)
$(LINK) ${LIB} $(objs_sum) --scatter $(scatter_dir)/scatter.scat --output feedback.axf --keep version_block.o(IMGVERBLOCK) --feedback=${feedback}
rd /s /q $(obj_dir)
del feedback.axf
clean:
del updater*.bin
del updater*.map
del updater*.axf
rd /s /q $(obj_dir)