TARGET_ = boot33 #Default: DS-5 is added in Patch CC = armcc.exe LINK = armlink.exe FROMELF = fromelf.exe src_dir = src inc_dir = inc obj_dir = obj feedback_file = feedback.txt SCATTER_FILE = scatter.scat ifneq (,$(findstring CRANEL,${PL_TYPE})) ifneq (,$(findstring SINGLESIM,${PL_TYPE})) SCATTER_FILE = scatter_craneL_singlesim.scat else SCATTER_FILE = scatter_craneL.scat endif endif ifneq (,$(findstring CRANEM_SINGLESIM,${PL_TYPE})) SCATTER_FILE = scatter_craneL_singlesim.scat endif #common start src_common_dir = ../common/src inc_common_dir = ../common/inc obj_common_dir = obj_common #common end cflag=-I$(inc_dir) --cpu Cortex-R5 --no_unaligned_access -g -O2 --apcs /inter --gnu --split_sections --feedback $(feedback_file) #common start cflag += -I$(inc_common_dir) #common end ############### Define Macro in Boot33 ######################## #Macro used in boot33 can add variable: "DEFS" #1. Macro Used if CP is Erased DEFS = -DCP_ERASE #2. Macro Used to check ONKEY #DEFS += -DONKEY_CHECK #3. Macro Used to support compressed logo bin DEFS += -DSUPPORT_COMPRESSED_LOGO -DSUPPORT_FBP #Last, append variable DEFS into cflag cflag += $(DEFS) ##################################################### ifneq (,$(findstring enable,${DMCHAGE})) cflag += -DDMCHAGE endif ifneq (,$(findstring disable,${LOGO_SUPPORT})) cflag += -DSUPPORT_NO_LOGO TARGET_1 = _NoLogo endif ifneq (,$(findstring CRANEL,${PL_TYPE})) cflag += -DCRANEL_CHIP ifneq (,$(findstring SINGLESIM,${PL_TYPE})) cflag += -DLTEONLY_SINGLE_SIM endif endif ifneq (,$(findstring CRANEM_SINGLESIM,${PL_TYPE})) cflag += -DCRANEM_SINGLE_SIM cflag += -DASR_PLATFORM_CRANEM endif ifneq (,$(findstring SPINOR_SUPPORT,${PL_TYPE})) cflag += -DSPINOR_SUPPORT cflag += -DSUPPORT_EXTERNAL_NORFLASH endif ifneq (,$(findstring enable,${DM_FOTA})) cflag += -DBOOT33_FOTA_SUPPORT endif ifneq (,$(findstring enable,${FOTA_NO_UPDATER})) cflag += -DBOOT33_FOTA_NO_UPDATER TARGET_2 = _NoUpdater endif ifneq (,$(findstring OCPU,${QUECTEL_PROJ})) cflag += -DQUECTEL_OPEN_CPU -DCRANE_MCU_DONGLE endif #Boot33 Naming Rule TARGET = ${TARGET_}${TARGET_1}${TARGET_2} srcs = $(src_dir)/main.c \ $(src_dir)/version_block.c \ $(src_dir)/ota.c \ $(src_dir)/boot_flasherase_check.c ############ BOOT33 SECBOOT START ############## # enable below part for BOOT33 SECBOOT support #[secboot version 1] # support for full range of CRANE chips. # boot33 implement secboot code , more memory consumption for boot33 execution. # #cflag += -DMBEDTLS_CONFIG_FILE=\"mbedtls_config.h\" \ -DTF_MBEDTLS_KEY_ALG_ID=1 \ -DTF_MBEDTLS_HASH_ALG_ID=1 \ -DBOOT33_SECBOOT_SUPPORT \ -DBOOT33_SECBOOT_V1 #srcs += $(src_dir)/fip.c \ $(src_dir)/secboot.c \ $(src_dir)/asn1parse.c \ $(src_dir)/oid.c \ $(src_dir)/sha256.c \ $(src_dir)/md.c \ $(src_dir)/x509.c \ $(src_dir)/pkparse.c \ $(src_dir)/pk.c \ $(src_dir)/pk_wrap.c \ $(src_dir)/rsa.c \ $(src_dir)/rsa_internal.c \ $(src_dir)/md_wrap.c \ $(src_dir)/bignum.c \ $(src_dir)/platform_util.c \ $(src_dir)/mbedtls_common.c \ $(src_dir)/mbedtls_crypto.c \ $(src_dir)/mbedtls_x509_parser.c #[secboot version 2] # support for particular latest design CRANE chips e.g. CRANE_L/CRANE_W. # boot33 call tls code which remain from previouse execution image or bootrom. # would save more memory for boot33. # ifneq (,$(findstring enable,${SECBOOT_V2_SUPPORT})) cflag += -DBOOT33_SECBOOT_SUPPORT \ -DBOOT33_SECBOOT_V2 srcs += $(src_dir)/fip_v2.c \ $(src_dir)/secboot_v2.c \ $(src_dir)/syscall.c \ $(src_dir)/syscall_ver.c \ $(src_dir)/syscall_secboot.c endif ############ BOOT33 SECBOOT END ############## ifneq (,$(findstring SPINOR_SUPPORT,${PL_TYPE})) srcs_common += \ $(src_common_dir)/quec_spi_nor.c \ $(src_common_dir)/SPI.c endif #common start srcs_common = $(src_common_dir)/asr_property.c \ $(src_common_dir)/system.c \ $(src_common_dir)/FreqChange.c \ $(src_common_dir)/LzmaDec.c \ $(src_common_dir)/tinyalloc.c \ $(src_common_dir)/pmic.c \ $(src_common_dir)/ningbo.c \ $(src_common_dir)/guilin.c \ $(src_common_dir)/utilities.c \ $(src_common_dir)/loadtable.c \ $(src_common_dir)/ptable.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)/uart.c \ $(src_common_dir)/guilin_lite.c \ $(src_common_dir)/guilin_lite2.c \ $(src_common_dir)/guilin_lite3.c \ $(src_common_dir)/bsp_tavor.c \ $(src_common_dir)/LzmaEnc.c \ $(src_common_dir)/LzFind.c \ $(src_common_dir)/LzmaLib.c \ $(src_common_dir)/updater_table.c \ $(src_common_dir)/asr_lzma.c \ $(src_common_dir)/logo_table.c \ $(src_common_dir)/ql_boot_power.c \ $(src_common_dir)/quec_startup_gpio.c \ $(src_common_dir)/ql_boot_pwm.c \ $(src_common_dir)/qspi_nor_bp.c \ $(src_common_dir)/quec_spi.c \ $(src_common_dir)/quec_startup_gpio.c \ $(src_common_dir)/quec_spi_nor.c \ $(src_common_dir)/SPI.c \ ifneq (,$(findstring enable,${DMCHAGE})) srcs += src/dm_charge.c \ src/dm_ningbo.c \ src/dm_guilin.c \ src/dm_pm812.c \ src/dm_i2c.c endif ifneq (,$(findstring SDCARD_USE,${SDCARD})) cflag += -DSDCARD_USE_IN_CODE #add sdcard source code srcs += $(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 endif dep_files = $(wildcard $(inc_dir)/*.h) objs = $(patsubst %.c, ${obj_dir}/%.o, ${notdir ${srcs}}) dep_files += $(wildcard $(inc_common_dir)/*.h) objs_common = $(patsubst %.c, ${obj_common_dir}/%.o, ${notdir ${srcs_common}}) objs_sum = $(objs) $(objs_common) ${TARGET}.axf:$(objs_sum) if not exist ${feedback_file} @echo "ERROR : make feedback firstly" && exit 1 $(CC) $(cflag) -c $(src_dir)/OBM_StartUp.s -o $(obj_dir)/OBM_StartUp.o $(LINK) $(objs_sum) $(obj_dir)/OBM_StartUp.o --scatter $(SCATTER_FILE) --output $@ --map --symbols --info sizes,totals --list ${TARGET}.map --keep version_block.o\(IMGVERBLOCK\) $(FROMELF) --output ${TARGET}.bin --bin ${TARGET}.axf ${obj_common_dir}/%.o: $(src_common_dir)/%.c $(dep_files) if not exist $(obj_common_dir) mkdir $(obj_common_dir) $(CC) $(cflag) --thumb -c $< -o $@ ${obj_dir}/%.o:${src_dir}/%.c $(dep_files) if not exist $(obj_dir) mkdir $(obj_dir) $(CC) $(cflag) --thumb -c $< -o $@ feedback:$(objs_sum) $(CC) $(cflag) -c $(src_dir)/OBM_StartUp.s -o $(obj_dir)/OBM_StartUp.o $(LINK) $(objs_sum) $(obj_dir)/OBM_StartUp.o --scatter $(SCATTER_FILE) --output $(feedback_file).axf --keep version_block.o\(IMGVERBLOCK\) --feedback=${feedback_file} rd /s /q $(obj_dir) del $(feedback_file).axf clean: rd /s /q $(obj_dir) del $(feedback_file)* rd /s /q $(obj_common_dir) del $(TARGET)*.*