#!/bin/bash DEF_IMAGE_TYPE="" DEF_CUS_APP="17" DEF_PLC_APP="0" DEF_CORE_TYPE="plc" DEF_FLASH="4m" DEF_PSRAM="0m" DEF_CHIP_ID="HZ" DEF_REL="release" DEF_BOARDS_TYPE="" DEF_FASTBOOT="false" DEF_CLEANUP="true" DEF_PROTO_TYPE="p12087" DEF_RF_ENABLE="1" DEF_DUAL_ENABLE="1" IMG_TYPE=$(echo $1 | tr '[A-Z]' '[a-z]') INPUT_CUS_APP=$(echo $2 | tr '[A-Z]' '[a-z]') INPUT_PLC_APP=$(echo $3 | tr '[A-Z]' '[a-z]') INPUT_CORE_TYPE=$(echo $4 | tr '[A-Z]' '[a-z]') INPUT_FLASH_SIZE=$(echo $5 | tr '[A-Z]' '[a-z]') INPUT_PSRAM_SIZE=$(echo $6 | tr '[A-Z]' '[a-z]') GROUP_IMAGE_TYPE=("cco" "new_type_cco" "sta" "ftm" "ckb") GROUP_CORE_TYPE=("plc" "ampplc") GROUP_FLASH=("2m" "4m") GROUP_PSRAM=("0m" "8m") GROUP_REL=("debug" "release") GROUP_CHIP_ID=("HZ" "WQ") GROUP_RUN_TYPE=("flash" "psram" "upgrade") GROUP_PROTO_TYPE=("p12087" "p1901") GROUP_BOARDS_TYPE=("fpga" "evb03" "htzd03" "qj03" "flx03" "spe03" "goldf03" "ledc03" "stamp03" "gx03" "evb5202" "htzdbr03" "dt03" "htzdpt03" "yp03") #Specific board definition. # 定义board列表 打包的时候会根据这个列表生成所有的bin文件 BOARDS_FPGA03_CCO=("fpgacco03") BOARDS_FPGA03_STA=("fpgasta03") BOARDS_FPGA03_FTM=("fpgasta03") BOARDS_EVB03_CCO=("evb3031cco03" "evb3201cco03" "evb3201cco03_rfin" "evb5580dcco03" "evb6710cco03") BOARDS_EVB03_STA=("evb3031sta03" "evb3211sta03" "evb3211sta03_rfin" "evb32113ps03" "evb5582dsta03" "evb5582d3ps03" "evb6711sta03" "evb67113ps03") BOARDS_EVB03_FTM=("evb3031sta03" "evb3201cco03" "evb3211sta03" "evb32113ps03" "evb3201cco03_rfin" "evb3211sta03_rfin" "evb5580dcco03" "evb5582dsta03" "evb5582d3ps03" "evb6710cco03" "evb6711sta03" "evb67113ps03") BOARDS_EVB03_CKB=("evb3201ckb03") BOARDS_HTZD03_CCO=("htzd3201cco03") BOARDS_HTZD03_STA=("htzd3211sta03" "htzd3211iic03" "htzd32113ps03") BOARDS_HTZD03_FTM=("htzd3201cco03" "htzd3211sta03" "htzd3211iic03" "htzd32113ps03") BOARDS_HTZD03_CKB=("htzd3201ckb03") BOARDS_QJ03_CCO=("qj5580dcco03") BOARDS_QJ03_STA=("qj5582dsta03" "qj5582diic03" "qj5582d3ps03") BOARDS_QJ03_FTM=("qj5580dcco03" "qj5582dsta03" "qj5582diic03" "qj5582d3ps03") BOARDS_QJ03_CKB=("qj5580dckb03") BOARDS_FLX03_CCO=("flx6710cco03") BOARDS_FLX03_STA=("flx6711sta03" "flx6711iic03" "flx67113ps03") BOARDS_FLX03_FTM=("flx6710cco03" "flx6711sta03" "flx6711iic03" "flx67113ps03") BOARDS_FLX03_CKB=("flx6710ckb03") BOARDS_SPE03_CCO=("spe7303cco03") BOARDS_SPE03_STA=("spe7301sta03" "spe7301iic03" "spe73013ps03") BOARDS_SPE03_FTM=("spe7303cco03" "spe7301sta03" "spe7301iic03" "spe73013ps03") BOARDS_SPE03_CKB=("spe7303ckb03") BOARDS_GOLDF03_CCO=("goldfinger_17p03") BOARDS_GOLDF03_STA=("goldfinger_17p03") BOARDS_GOLDF03_FTM=("goldfinger_17p03") BOARDS_STAMP03_CCO=("stamp03") BOARDS_STAMP03_STA=("stamp03") BOARDS_STAMP03_FTM=("stamp03") BOARDS_LEDC03_CCO=("ledc03") BOARDS_LEDC03_STA=("ledc03") BOARDS_LEDC03_FTM=("ledc03") BOARDS_GX03_CCO=("gx2001cco03") BOARDS_GX03_STA=("gx2011sta03" "gx2011iic03" "gx20113ps03") BOARDS_GX03_FTM=("gx2001cco03" "gx2011sta03" "gx2011iic03" "gx20113ps03") BOARDS_GX03_CKB=("gx2001ckb03") BOARDS_EVB5202_STA=("evb5202sta03" "evb5202i3c03") BOARDS_EVB5202_FTM=("evb5202sta03" "evb5202i3c03") BOARDS_HTZDBR03_STA=("htzd3201bsrm03" "htzd3201brmt03") BOARDS_HTZDBR03_FTM=("htzd3201bsrm03" "htzd3201brmt03") BOARDS_DT03_CCO=("dt0530cco03") BOARDS_DT03_STA=("dt0531sta03" "dt0531iic03" "dt05313ps03") BOARDS_DT03_FTM=("dt0530cco03" "dt0531sta03" "dt0531iic03" "dt05313ps03") BOARDS_DT03_CKB=("dt0530ckb03") BOARDS_YP03_CCO=("yp8801cco03") BOARDS_YP03_STA=("yp8811sta03" "yp88113ps03" "yp8811iic03") BOARDS_YP03_FTM=("yp8801cco03" "yp8811sta03" "yp88113ps03" "yp8811iic03") BOARDS_YP03_CKB=("yp8801ckb03") BOARDS_HTZDPT03_STA=("htzd3211pt03") RF_OPT_STR=("rf" "no_rf") DUAL_OPT_STR=("dual" "no_dual") INCREMENT_COMPILE_STR=("not_clean" "NOT_CLEAN") SRC_ENV_FILE_IOT="env_iot_kl3.sh" SRC_ENV_FILE_SG="env_flash_kl3.sh" SRC_ENV_FILE_FTM="env_flash_ftm_kl3.sh" if [ "?" == "$1" ] || [ "" == "$1" ]; then echo "*$0 [IMAGE_TYPE] [CUS_APPID] [PLC_APPID] [CORE_TYPE] [FLASH_SIZE] [PSRAM_SIZE] [CHIP_ID] [PROTO_TYPE] [RF_OPT] [DUAL_OPT] [DEBUG_TYPE] [FASTBOOT] [BOARDS_TYPE] [NOT_CLEAN]" echo "* [IMAGE_TYPE] -- Necessary, img type, (${GROUP_IMAGE_TYPE[@]})." echo "* [CUS_APPID] -- Necessary, appid, 0~13, 17:cust_demo/23:cust_at." echo "* [PLC_APPID] -- Necessary, appid, 0~13, 0:sg/3:demo/4:ge/5:sg_ext/8:ge_lwip/11:brm/12:demo_lwip/14:bsrm/15:sniffer/16:bsrm_cus/17:cust_demo/18:cus_at/24:sila." echo "* [CORE_TYPE] -- Necessary, core type, (${GROUP_CORE_TYPE[@]}), default is plc." echo "* [FLASH_SIZE] -- Necessary, flash size, (${GROUP_FLASH[@]}), default is 4m." echo "* [PSRAM_SIZE] -- Necessary, psram size, (${GROUP_PSRAM[@]}), default is 0m." echo "* [CHIP_ID] -- Optional, chip id, (${GROUP_CHIP_ID[@]}), default is HZ." echo "* [PROTO_TYPE] -- Optional, protocol type, (${GROUP_PROTO_TYPE[@]}), default is p12087." echo "* [RF_OPT] -- Optional, rf enable or not, (rf/null), default is enable rf." echo "* [DUAL_OPT] -- Optional, dual enable or not, (dual/null), default is enable dual." echo "* [DEBUG_TYPE] -- Optional, release or debug, (${GROUP_REL[@]}), default is release." echo "* [FASTBOOT] -- Optional, fast boot mode or not, (fastboot/null), default is normal mode." echo "* [BOARDS_TYPE] -- Optional, boards type, (${GROUP_BOARDS_TYPE[@]}), default will build evb boards." echo "* [NOT_CLEAN] -- Optional, clean or not, 'not_clean' means incremental build, default is clean." echo "" echo "*********************************** BOARD SUPPORT IMAGE_TYPE DEFINATION ***********************************" echo "board supports define:" echo "fpga" echo "cco : (${BOARDS_FPGA03_CCO[@]})" echo "sta : (${BOARDS_FPGA03_STA[@]})" echo "ftm : (${BOARDS_FPGA03_FTM[@]})" echo "" echo "evb03" echo "cco : (${BOARDS_EVB03_CCO[@]})" echo "sta : (${BOARDS_EVB03_STA[@]})" echo "ftm : (${BOARDS_EVB03_FTM[@]})" echo "" echo "htzd03" echo "cco : (${BOARDS_HTZD03_CCO[@]})" echo "sta : (${BOARDS_HTZD03_STA[@]})" echo "ftm : (${BOARDS_HTZD03_FTM[@]})" echo "ckb : (${BOARDS_HTZD03_CKB[@]})" echo "" echo "qj03" echo "cco : (${BOARDS_QJ03_CCO[@]})" echo "sta : (${BOARDS_QJ03_STA[@]})" echo "ftm : (${BOARDS_QJ03_FTM[@]})" echo "ckb : (${BOARDS_QJ03_CKB[@]})" echo "" echo "flx03" echo "cco : (${BOARDS_FLX03_CCO[@]})" echo "sta : (${BOARDS_FLX03_STA[@]})" echo "ftm : (${BOARDS_FLX03_FTM[@]})" echo "ckb : (${BOARDS_FLX03_CKB[@]})" echo "" echo "spe03" echo "cco : (${BOARDS_SPE03_CCO[@]})" echo "sta : (${BOARDS_SPE03_STA[@]})" echo "ftm : (${BOARDS_SPE03_FTM[@]})" echo "ckb : (${BOARDS_SPE03_CKB[@]})" echo "" echo "goldf03" echo "cco : (${BOARDS_GOLDF03_CCO[@]})" echo "sta : (${BOARDS_GOLDF03_STA[@]})" echo "ftm : (${BOARDS_GOLDF03_FTM[@]})" echo "" echo "ledc03" echo "cco : (${BOARDS_LEDC03_CCO[@]})" echo "sta : (${BOARDS_LEDC03_STA[@]})" echo "ftm : (${BOARDS_LEDC03_FTM[@]})" echo "" echo "stamp03" echo "cco : (${BOARDS_STAMP03_CCO[@]})" echo "sta : (${BOARDS_STAMP03_STA[@]})" echo "ftm : (${BOARDS_STAMP03_FTM[@]})" echo "" echo "gx03" echo "cco : (${BOARDS_GX03_CCO[@]})" echo "sta : (${BOARDS_GX03_STA[@]})" echo "ftm : (${BOARDS_GX03_FTM[@]})" echo "ckb : (${BOARDS_GX03_CKB[@]})" echo "" echo "evb5202" echo "sta : (${BOARDS_EVB5202_STA[@]})" echo "ftm : (${BOARDS_EVB5202_FTM[@]})" echo "" echo "htzdbr03" echo "sta : (${BOARDS_HTZDBR03_STA[@]})" echo "ftm : (${BOARDS_HTZDBR03_FTM[@]})" echo "" echo "dt03" echo "cco : (${BOARDS_DT03_CCO[@]})" echo "sta : (${BOARDS_DT03_STA[@]})" echo "ftm : (${BOARDS_DT03_FTM[@]})" echo "ckb : (${BOARDS_DT03_CKB[@]})" echo "" echo "htzdpt03" echo "sta : (${BOARDS_HTZDPT03_STA[@]})" echo "" echo "yp03" echo "cco : (${BOARDS_YP03_CCO[@]})" echo "sta : (${BOARDS_YP03_STA[@]})" echo "ftm : (${BOARDS_YP03_FTM[@]})" echo "ckb : (${BOARDS_YP03_CKB[@]})" echo "************************************************** END **************************************************" exit 0 fi cd ../tools/gen_img rm -f *.map rm -f *.bin rm -f *.bin.fw rm -f *.out cd - rm ../Makefile 2>/dev/null ln -s ./build/Makefile ../Makefile set -o errexit #DEF_CLEANUP for k in $@; do for arg in ${INCREMENT_COMPILE_STR[@]}; do if [ "$k" == "$arg" ]; then DEF_CLEANUP="false" break fi done done #DEF_IMAGE_TYPE for k in $@; do for arg in ${GROUP_IMAGE_TYPE[@]}; do if [ "$k" == "$arg" ]; then DEF_IMAGE_TYPE="$k" break fi done done #DEF_CUS_APP if [ "${INPUT_CUS_APP}" != "" ]; then DEF_CUS_APP="${INPUT_CUS_APP}" fi #DEF_PLC_APP if [ "${INPUT_PLC_APP}" != "" ]; then DEF_PLC_APP="${INPUT_PLC_APP}" fi #DEF_CORE_TYPE for k in $@; do for arg in ${GROUP_CORE_TYPE[@]}; do if [ "$k" == "$arg" ]; then DEF_CORE_TYPE="$k" break fi done done #DEF_BOARDS_TYPE for k in $@; do for arg in ${GROUP_BOARDS_TYPE[@]}; do if [ "$k" == "$arg" ]; then DEF_BOARDS_TYPE="$k" break fi done done #DEF_FLASH_SIZE if [ "${INPUT_FLASH_SIZE}" != "" ]; then for arg in ${GROUP_FLASH[@]}; do if [ "${INPUT_FLASH_SIZE}" == "$arg" ]; then DEF_FLASH="${INPUT_FLASH_SIZE}" break fi done fi #DEF_PSRAM_SIZE if [ "${INPUT_PSRAM_SIZE}" != "" ]; then for arg in ${GROUP_PSRAM[@]}; do if [ "${INPUT_PSRAM_SIZE}" == "$arg" ]; then DEF_PSRAM="${INPUT_PSRAM_SIZE}" break fi done fi #DEF_CHIP for k in $@; do for arg in ${GROUP_CHIP_ID[@]}; do ARG="$(echo ${arg} | tr '[a-z]' '[A-Z]')" if [ "$k" == "$arg" ] || [ "$k" == "$ARG" ]; then DEF_CHIP_ID="$ARG" break fi done done #DEF_PROTO_TYPE for k in $@; do for arg in ${GROUP_PROTO_TYPE[@]}; do if [ "$k" == "$arg" ]; then DEF_PROTO_TYPE="$k" break fi done done #DEF_RF_OPT for k in $@; do for arg in ${RF_OPT_STR[@]}; do if [ "$k" == "$arg" ] && [ "$arg" == "no_rf" ]; then DEF_RF_ENABLE="0" break fi done done #DEF_DUAL_OPT for k in $@; do for arg in ${DUAL_OPT_STR[@]}; do if [ "$k" == "$arg" ] && [ "$arg" == "no_dual" ]; then DEF_DUAL_ENABLE="0" break fi done done #DEF_REL for k in $@; do for arg in ${GROUP_REL[@]}; do if [ "$k" == "$arg" ]; then DEF_REL="$k" break fi done done #FASTBOOT_MODE for k in $@; do if [ "$k" == "fastboot" ]; then DEF_FASTBOOT="true" fi done if [ ${DEF_FASTBOOT} == "true" ]; then export fastboot_mode=1 GEN_FASTBOOT_STR="-f 1" fi if [ "${DEF_IMAGE_TYPE}" == "new_type_cco" ]; then export new_type_cco=1 DEF_IMAGE_TYPE=cco fi if [ "${DEF_IMAGE_TYPE}" == "ftm" ]; then SRC_ENV_FILE=${SRC_ENV_FILE_FTM} IOT_BUILD=0 else if [ "${DEF_PLC_APP}" == "0" ] || [ "${DEF_PLC_APP}" == "5" ] || [ "${DEF_PLC_APP}" == "6" ] \ || [ "${DEF_PLC_APP}" == "11" ] || [ "${DEF_PLC_APP}" == "14" ] || [ "${DEF_PLC_APP}" == "15" ] \ || [ "${DEF_PLC_APP}" == "16" ]; then SRC_ENV_FILE=${SRC_ENV_FILE_SG} IOT_BUILD=0 else SRC_ENV_FILE=${SRC_ENV_FILE_IOT} IOT_BUILD=1 fi fi if [ "${DEF_IMAGE_TYPE}" == "ftm" ] || [ "${DEF_IMAGE_TYPE}" == "ckb" ] || [ "${IOT_BUILD}" == "1" ] \ || [ "x${DEF_BOARDS_TYPE}" == "xhtzdpt03" ]; then # not support upgrade fw. # 这些类型的固件不支持 upgrade unset GROUP_RUN_TYPE[2] fi CUST_APP="unknown" if [ ${DEF_PLC_APP} == 0 ]; then CUST_APP="sg" elif [ ${DEF_PLC_APP} == 3 ]; then CUST_APP="demo" elif [ ${DEF_PLC_APP} == 4 ]; then CUST_APP="ge" elif [ ${DEF_PLC_APP} == 5 ]; then CUST_APP="sg_ext" elif [ ${DEF_PLC_APP} == 8 ]; then CUST_APP="ge_lwip" elif [ ${DEF_PLC_APP} == 9 ]; then CUST_APP="ge_ext" elif [ ${DEF_PLC_APP} == 11 ]; then CUST_APP="brm" elif [ ${DEF_PLC_APP} == 12 ]; then CUST_APP="demo_lwip" elif [ ${DEF_PLC_APP} == 14 ]; then CUST_APP="bsrm" elif [ ${DEF_PLC_APP} == 15 ]; then CUST_APP="sniffer" elif [ ${DEF_PLC_APP} == 16 ]; then CUST_APP="bsrm_cus" elif [ ${DEF_PLC_APP} == 18 ]; then CUST_APP="cus_at" elif [ ${DEF_PLC_APP} == 19 ]; then CUST_APP="iot_sniffer" elif [ ${DEF_PLC_APP} == 24 ]; then CUST_APP="sila" else echo "fatal:Unknown APP = ${DEF_PLC_APP}!!!" echo "0:SG, 3:DEMO, 4:GE, 5:GE_EXT, 8:GE-LWIP, 9:GE_EXT, 11:BRM, 12:DEMO_LWIP, 14:BSRM, 15:SNIFFER, 16:BSRM_CUS, 18:CUS_AT, 19:IOT_SNIFFER, 24:SILA, " exit 1 fi if [ "${DEF_IMAGE_TYPE}" == "" -o "${DEF_PLC_APP}" == "" ]; then echo "fatal:param err, build failed!!!, para1:$1 para2:$2" exit 2 fi if [ "${DEF_RF_ENABLE}" == "1" ] && [ "${DEF_PROTO_TYPE}" == "p1901" ]; then echo "fatal: rf-enable fw not support protocol p1901." exit 3 fi if [ "${DEF_FLASH}" == "4m" ]; then FLASH_SIZE_nM=4 elif [ "${DEF_FLASH}" == "2m" ]; then FLASH_SIZE_nM=2 else FLASH_SIZE_nM=4 fi if [ "${DEF_PSRAM}" == "8m" ]; then PSRAM_SIZE_nM=8 else PSRAM_SIZE_nM=0 fi export flash_size=${FLASH_SIZE_nM} # run in flash or psram # 根据psram的大小来判断生成的固件类型 if [ "${DEF_PSRAM}" == "0m" ]; then export psram_enable=0 export psram_size=0 unset GROUP_RUN_TYPE[1] else export psram_enable=1 export psram_size=$PSRAM_SIZE_nM unset GROUP_RUN_TYPE[0] fi # layout_index see LAYOUT_IDX_XXX for value range if [ "${DEF_CORE_TYPE}" == "ampplc" ]; then if [ "${DEF_PSRAM}" == "0m" ]; then export layout_index=10 else export layout_index=9 fi else if [ "$DEF_PSRAM" == "0m" ]; then if [ "$DEF_FLASH" == "2m" ]; then export layout_index=5 elif [ "$DEF_FLASH" == "4m" ]; then export layout_index=7 fi else if [ "$DEF_FLASH" == "2m" ]; then export layout_index=6 elif [ "$DEF_FLASH" == "4m" ]; then export layout_index=8 fi fi fi #define GROUP_BOARDS_DEF, default is evb03 boards. if [ "${IOT_BUILD}" == "0" ]; then if [ "${DEF_IMAGE_TYPE}" == "cco" ]; then if [ "x${DEF_BOARDS_TYPE}" == "xfpga" ]; then GROUP_BOARDS_DEF=(${BOARDS_FPGA03_CCO[@]}) DEF_PLATFORM_TYPE="FPGA" elif [ "x${DEF_BOARDS_TYPE}" == "xhtzd03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZD03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xqj03" ]; then GROUP_BOARDS_DEF=(${BOARDS_QJ03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xflx03" ]; then GROUP_BOARDS_DEF=(${BOARDS_FLX03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xspe03" ]; then GROUP_BOARDS_DEF=(${BOARDS_SPE03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xgx03" ]; then GROUP_BOARDS_DEF=(${BOARDS_GX03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xdt03" ]; then GROUP_BOARDS_DEF=(${BOARDS_DT03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xyp03" ]; then GROUP_BOARDS_DEF=(${BOARDS_YP03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" else #sg app not use 3031 board. unset BOARDS_EVB03_CCO[0] GROUP_BOARDS_DEF=(${BOARDS_EVB03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" fi elif [ "${DEF_IMAGE_TYPE}" == "ftm" ]; then if [ "x${DEF_BOARDS_TYPE}" == "xfpga" ]; then GROUP_BOARDS_DEF=(${BOARDS_FPGA03_FTM[@]}) DEF_PLATFORM_TYPE="FPGA" elif [ "x${DEF_BOARDS_TYPE}" == "xhtzd03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZD03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xqj03" ]; then GROUP_BOARDS_DEF=(${BOARDS_QJ03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xflx03" ]; then GROUP_BOARDS_DEF=(${BOARDS_FLX03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xspe03" ]; then GROUP_BOARDS_DEF=(${BOARDS_SPE03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xgx03" ]; then GROUP_BOARDS_DEF=(${BOARDS_GX03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xdt03" ]; then GROUP_BOARDS_DEF=(${BOARDS_DT03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xyp03" ]; then GROUP_BOARDS_DEF=(${BOARDS_YP03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xevb5202" ]; then if [ "${DEF_PLC_APP}" == "11" ]; then unset BOARDS_EVB5202_FTM[0] else unset BOARDS_EVB5202_FTM[1] fi GROUP_BOARDS_DEF=(${BOARDS_EVB5202_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xhtzdbr03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZDBR03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xgoldf03" ]; then GROUP_BOARDS_DEF=(${BOARDS_GOLDF03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xstamp03" ]; then GROUP_BOARDS_DEF=(${BOARDS_STAMP03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xledc" ]; then GROUP_BOARDS_DEF=(${BOARDS_LEDC03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" else #evb03. GROUP_BOARDS_DEF=(${BOARDS_EVB03_FTM[@]}) DEF_PLATFORM_TYPE="CHIP" fi elif [ "${DEF_IMAGE_TYPE}" == "ckb" ]; then DEF_PLATFORM_TYPE="CHIP" if [ "x${DEF_BOARDS_TYPE}" == "xhtzd03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZD03_CKB[@]}) elif [ "x${DEF_BOARDS_TYPE}" == "xqj03" ]; then GROUP_BOARDS_DEF=(${BOARDS_QJ03_CKB[@]}) elif [ "x${DEF_BOARDS_TYPE}" == "xflx03" ]; then GROUP_BOARDS_DEF=(${BOARDS_FLX03_CKB[@]}) elif [ "x${DEF_BOARDS_TYPE}" == "xspe03" ]; then GROUP_BOARDS_DEF=(${BOARDS_SPE03_CKB[@]}) elif [ "x${DEF_BOARDS_TYPE}" == "xgx03" ]; then GROUP_BOARDS_DEF=(${BOARDS_GX03_CKB[@]}) elif [ "x${DEF_BOARDS_TYPE}" == "xdt03" ]; then GROUP_BOARDS_DEF=(${BOARDS_DT03_CKB[@]}) elif [ "x${DEF_BOARDS_TYPE}" == "xyp03" ]; then GROUP_BOARDS_DEF=(${BOARDS_YP03_CKB[@]}) else #evb03. GROUP_BOARDS_DEF=(${BOARDS_EVB03_CKB[@]}) fi else #sta. if [ "x${DEF_BOARDS_TYPE}" == "xfpga" ]; then GROUP_BOARDS_DEF=(${BOARDS_FPGA03_STA[@]}) DEF_PLATFORM_TYPE="FPGA" elif [ "x${DEF_BOARDS_TYPE}" == "xhtzd03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZD03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xqj03" ]; then GROUP_BOARDS_DEF=(${BOARDS_QJ03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xflx03" ]; then GROUP_BOARDS_DEF=(${BOARDS_FLX03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xspe03" ]; then GROUP_BOARDS_DEF=(${BOARDS_SPE03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xgx03" ]; then GROUP_BOARDS_DEF=(${BOARDS_GX03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xdt03" ]; then GROUP_BOARDS_DEF=(${BOARDS_DT03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xyp03" ]; then GROUP_BOARDS_DEF=(${BOARDS_YP03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xevb5202" ]; then if [ "${DEF_PLC_APP}" == "11" ]; then unset BOARDS_EVB5202_STA[0] else unset BOARDS_EVB5202_STA[1] fi GROUP_BOARDS_DEF=(${BOARDS_EVB5202_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xhtzdbr03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZDBR03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xhtzdpt03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZDPT03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" else #sg app not use 3031 board. unset BOARDS_EVB03_STA[0] GROUP_BOARDS_DEF=(${BOARDS_EVB03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" fi fi else #IOT app use 3031 board and 3201 board. if [ "${DEF_IMAGE_TYPE}" == "cco" ]; then if [ "x${DEF_BOARDS_TYPE}" == "xfpga" ]; then GROUP_BOARDS_DEF=(${BOARDS_FPGA03_CCO[@]}) DEF_PLATFORM_TYPE="FPGA" elif [ "x${DEF_BOARDS_TYPE}" == "xgoldf03" ]; then GROUP_BOARDS_DEF=(${BOARDS_GOLDF03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xstamp03" ]; then GROUP_BOARDS_DEF=(${BOARDS_STAMP03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xledc03" ]; then GROUP_BOARDS_DEF=(${BOARDS_LEDC03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xhtzd03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZD03_CCO[@]}) DEF_PLATFORM_TYPE="CHIP" else GROUP_BOARDS_DEF=(${BOARDS_EVB03_CCO[0]}) DEF_PLATFORM_TYPE="CHIP" fi else #sta if [ "x${DEF_BOARDS_TYPE}" == "xfpga" ]; then GROUP_BOARDS_DEF=(${BOARDS_FPGA03_STA[@]}) DEF_PLATFORM_TYPE="FPGA" elif [ "x${DEF_BOARDS_TYPE}" == "xgoldf03" ]; then GROUP_BOARDS_DEF=(${BOARDS_GOLDF03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xstamp03" ]; then GROUP_BOARDS_DEF=(${BOARDS_STAMP03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xledc03" ]; then GROUP_BOARDS_DEF=(${BOARDS_LEDC03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" elif [ "x${DEF_BOARDS_TYPE}" == "xhtzd03" ]; then GROUP_BOARDS_DEF=(${BOARDS_HTZD03_STA[@]}) DEF_PLATFORM_TYPE="CHIP" else GROUP_BOARDS_DEF=(${BOARDS_EVB03_STA[0]}) DEF_PLATFORM_TYPE="CHIP" fi fi fi build_prepare() { #prepare sdk source. GEN_IMG_FOLDER="../tools/gen_img" if [ ! -d "${GEN_IMG_FOLDER}/lib_sdk_source" ]; then mkdir ${GEN_IMG_FOLDER}/lib_sdk_source fi # 如果不存在这些工具则创建 if [ ! -e "../tools/bin_tool/bin2hex" ]; then cd "../tools/bin_tool" gcc bin2hex.c -o bin2hex cd - fi if [ ! -e "../tools/bin_tool/hex2bin" ]; then cd "../tools/bin_tool" gcc hex2bin.c -o hex2bin cd - fi if [ ! -e "../tools/bin_tool/bin2hex_frame" ]; then cd "../tools/bin_tool" gcc bin2hex_frame.c -o bin2hex_frame cd - fi if [ ! -e "../export/lib" ]; then mkdir ../export/lib fi } build_prepare export HW_CHIP_ID="${DEF_CHIP_ID}" build_obj_func() { IMG_TYPE=$(echo $1 | tr '[A-Z]' '[a-z]') APP_SELECTION=$2 BUILD_TYPE=$(echo $3 |tr '[a-z]' '[A-Z]') local plc_lib_kw="${DEF_PROTO_TYPE}" if [ "${DEF_RF_ENABLE}" == "1" ]; then plc_lib_kw="${plc_lib_kw}_rf" fi if [ "${DEF_DUAL_ENABLE}" == "1" ]; then plc_lib_kw="${plc_lib_kw}_dual" fi if [ ${DEF_FASTBOOT} == "true" ]; then plc_lib_kw="${plc_lib_kw}_fb" lib_fb_str="_fb" fi if [ ${APP_SELECTION} == ${DEF_PLC_APP} ]; then export PROTO_TYPE="${DEF_PROTO_TYPE}" export rf_enable="${DEF_RF_ENABLE}" export dual_enable="${DEF_DUAL_ENABLE}" fi if [ "${DEF_CORE_TYPE}" == "ampplc" ]; then if [ "${BUILD_TYPE}" == "PLC" ]; then plc_make_starttime=$(date +%s) export build_amp_type=2 else # CUS? cus_make_starttime=$(date +%s) export build_amp_type=1 fi export sec_cpu_enable=0 else plc_make_starttime=$(date +%s) export build_amp_type=0 if [ "${DEF_FLASH}" == "4m" ]; then export sec_cpu_enable=1 fi fi if [ "${IMG_TYPE}" == "cco" ]; then taget_cco_source_dir="${GEN_IMG_FOLDER}/lib_sdk_source/kl3_${DEF_CHIP_ID}_${IMG_TYPE}_${DEF_PLC_APP}_${DEF_CORE_TYPE}_${DEF_FLASH}_${DEF_PSRAM}_${DEF_REL}" if [ ! -d ${taget_cco_source_dir} ]; then mkdir ${taget_cco_source_dir} fi if [ "${IOT_BUILD}" == "1" ]; then export smart_cco_sta=1 . ${SRC_ENV_FILE} ${IMG_TYPE} ${APP_SELECTION} ${DEF_REL} ${DEF_FLASH} ${DEF_PSRAM} if [ "${DEF_CLEANUP}" == "true" ]; then ./make.py -j APP=${APP_SELECTION} -C .. clobber fi if [ "${APP_SELECTION}" == "${DEF_CUS_APP}" ]; then ./make.py -j PLATFORM=${DEF_PLATFORM_TYPE} cco=1 APP=${APP_SELECTION} FLASH_SIZE=${FLASH_SIZE_nM} PLC_SUPPORT_3_PHASE=0 -C .. #kl3 cus_core file. cp ../ap/.output/cus/lib/ht_cco.bin ../tools/gen_img/ht_cus.bin cp ../ap/.output/cus/lib/ht_cco.out ../tools/gen_img/ht_cus.out cp ../ap/.output/cus/lib/ht_cco.map ../tools/gen_img/ht_cus.map cp ../export/lib/libapp.a ${taget_cco_source_dir}/libapp_cus.a cp ../export/lib/libht_cco.a ${taget_cco_source_dir}/libht_cus${lib_fb_str}.a else #kl3 plc_core file. if [ "${DEF_FLASH}" == "4m" ] && [ "${DEF_PSRAM}" == "8m" ]; then ./make.py -j PLATFORM=${DEF_PLATFORM_TYPE} cco=1 APP=${APP_SELECTION} FLASH_SIZE=${FLASH_SIZE_nM} -C .. cp ../ap/.output/plc/lib/ht_cco.bin ../tools/gen_img/iot_ht_3p.bin cp ../ap/.output/plc/lib/ht_cco.out ../tools/gen_img/ht_3p.out cp ../ap/.output/plc/lib/ht_cco.map ../tools/gen_img/ht_3p.map cp ../export/lib/libht_cco.a ${taget_cco_source_dir}/libht_plc_${plc_lib_kw}_3p.a ./make.py -j APP=${APP_SELECTION} -C .. clobber fi ./make.py -j PLATFORM=${DEF_PLATFORM_TYPE} cco=1 APP=${APP_SELECTION} FLASH_SIZE=${FLASH_SIZE_nM} PLC_SUPPORT_3_PHASE=0 -C .. cp ../ap/.output/plc/lib/ht_cco.bin ../tools/gen_img/iot_ht_1p.bin cp ../ap/.output/plc/lib/ht_cco.out ../tools/gen_img/ht_1p.out cp ../ap/.output/plc/lib/ht_cco.map ../tools/gen_img/ht_1p.map cp ../sbl/.output/plc/lib/kunlun_sbl.bin ${taget_cco_source_dir}/sbl.bin cp ../export/lib/libapp.a ${taget_cco_source_dir}/libapp_plc.a #kl3 iot sdk only support 1p-cco library currently cp ../export/lib/libht_cco.a ${taget_cco_source_dir}/libht_plc_${plc_lib_kw}.a #prepare macro_config.ini for kl3 sdk source. cp ../export/lib/macro_config.ini ${taget_cco_source_dir} sed -i "s/ /\n/g" ${taget_cco_source_dir}/macro_config.ini sed -i "/PLC_SUPPORT_3_PHASE=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/SUPPORT_IEEE_1901=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/HPLC_RF_SUPPORT=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/HPLC_RF_DEV_SUPPORT=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/BUILD_AMP_TYPE=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/BUILD_FASTBOOT_MODE=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/IOT_APP_SELECTION=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/IOT_SMART_CONFIG=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/PLC_SUPPORT_CCO_ROLE=.*/d" ${taget_cco_source_dir}/macro_config.ini fi . clean_env_flash_smart.sh ${IMG_TYPE} ${APP_SELECTION} else export cco=1 . ${SRC_ENV_FILE} if [ "${DEF_CLEANUP}" == "true" ]; then ./make.py -j APP=${APP_SELECTION} -C .. clobber fi ./make.py -j PLATFORM=${DEF_PLATFORM_TYPE} cco=1 APP=${APP_SELECTION} FLASH_SIZE=${FLASH_SIZE_nM} -C .. if [ "${APP_SELECTION}" == "${DEF_CUS_APP}" ]; then #kl3 customer demo, cus_core. cp ../ap/.output/cus/lib/ht_cco.bin ../tools/gen_img/ht_cus.bin cp ../ap/.output/cus/lib/ht_cco.out ../tools/gen_img/ht_cus.out cp ../ap/.output/cus/lib/ht_cco.map ../tools/gen_img/ht_cus.map cp ../export/lib/libapp.a ${taget_cco_source_dir}/libapp_cus.a cp ../export/lib/libht_cco.a ${taget_cco_source_dir}/libht_cus${lib_fb_str}.a else cp ../ap/.output/plc/lib/ht_cco.bin ../tools/gen_img/iot_ht_3p.bin cp ../ap/.output/plc/lib/ht_cco.out ../tools/gen_img/ht_3p.out cp ../ap/.output/plc/lib/ht_cco.map ../tools/gen_img/ht_3p.map cp ../sbl/.output/plc/lib/kunlun_sbl.bin ${taget_cco_source_dir}/sbl.bin cp ../export/lib/libapp.a ${taget_cco_source_dir}/libapp_plc.a #kl3 sg sdk use 3p-cco library. cp ../export/lib/libht_cco.a ${taget_cco_source_dir}/libht_plc_${plc_lib_kw}.a #prepare macro_config.ini for kl3 sdk source. cp ../export/lib/macro_config.ini ${taget_cco_source_dir} sed -i "s/ /\n/g" ${taget_cco_source_dir}/macro_config.ini sed -i "/SUPPORT_IEEE_1901=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/HPLC_RF_SUPPORT=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/HPLC_RF_DEV_SUPPORT=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/BUILD_AMP_TYPE=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/BUILD_FASTBOOT_MODE=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/IOT_APP_SELECTION=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/IOT_SMART_CONFIG=.*/d" ${taget_cco_source_dir}/macro_config.ini sed -i "/PLC_SUPPORT_CCO_ROLE=.*/d" ${taget_cco_source_dir}/macro_config.ini fi fi fi if [ "${IMG_TYPE}" == "sta" ]; then taget_sta_source_dir="${GEN_IMG_FOLDER}/lib_sdk_source/kl3_${DEF_CHIP_ID}_${IMG_TYPE}_${DEF_PLC_APP}_${DEF_CORE_TYPE}_${DEF_FLASH}_${DEF_PSRAM}_${DEF_REL}" if [ ! -d ${taget_sta_source_dir} ]; then mkdir ${taget_sta_source_dir} fi if [ "x${DEF_BOARDS_TYPE}" == "xhtzdpt03" ]; then export pt_board_build=2 fi if [ "${IOT_BUILD}" == "1" ]; then export smart_cco_sta=2 . ${SRC_ENV_FILE} ${IMG_TYPE} ${APP_SELECTION} ${DEF_REL} ${DEF_FLASH} ${DEF_PSRAM} if [ "${DEF_CLEANUP}" == "true" ]; then ./make.py -j APP=${APP_SELECTION} -C .. clobber fi ./make.py -j PLATFORM=${DEF_PLATFORM_TYPE} cco=0 APP=${APP_SELECTION} FLASH_SIZE=${FLASH_SIZE_nM} -C .. . clean_env_flash_smart.sh ${IMG_TYPE} ${APP_SELECTION} else export cco=0 . ${SRC_ENV_FILE} if [ "${DEF_CLEANUP}" == "true" ]; then ./make.py -j APP=${APP_SELECTION} -C .. clobber fi ./make.py -j PLATFORM=${DEF_PLATFORM_TYPE} cco=0 APP=${APP_SELECTION} FLASH_SIZE=${FLASH_SIZE_nM} -C .. fi if [ "${APP_SELECTION}" == "${DEF_CUS_APP}" ]; then #kl3 customer demo, cus_core. cp ../ap/.output/cus/lib/ht_sta.bin ../tools/gen_img/ht_cus.bin cp ../ap/.output/cus/lib/ht_sta.out ../tools/gen_img/ht_cus.out cp ../ap/.output/cus/lib/ht_sta.map ../tools/gen_img/ht_cus.map cp ../export/lib/libapp.a ${taget_sta_source_dir}/libapp_cus.a cp ../export/lib/libht_sta.a ${taget_sta_source_dir}/libht_cus${lib_fb_str}.a else #plc core. cp ../ap/.output/plc/lib/ht_sta.bin ../tools/gen_img/ht.bin cp ../ap/.output/plc/lib/ht_sta.out ../tools/gen_img/ht.out cp ../ap/.output/plc/lib/ht_sta.map ../tools/gen_img/ht.map #prepare sdk material. cp ../export/lib/libapp.a ${taget_sta_source_dir}/libapp_plc.a cp ../export/lib/libht_sta.a ${taget_sta_source_dir}/libht_plc_${plc_lib_kw}.a cp ../sbl/.output/plc/lib/kunlun_sbl.bin ${taget_sta_source_dir}/sbl.bin cp ../export/lib/macro_config.ini ${taget_sta_source_dir} sed -i "s/ /\n/g" ${taget_sta_source_dir}/macro_config.ini sed -i "/SUPPORT_IEEE_1901=.*/d" ${taget_sta_source_dir}/macro_config.ini sed -i "/HPLC_RF_SUPPORT=.*/d" ${taget_sta_source_dir}/macro_config.ini sed -i "/HPLC_RF_DEV_SUPPORT=.*/d" ${taget_sta_source_dir}/macro_config.ini sed -i "/BUILD_AMP_TYPE=.*/d" ${taget_sta_source_dir}/macro_config.ini sed -i "/BUILD_FASTBOOT_MODE=.*/d" ${taget_sta_source_dir}/macro_config.ini sed -i "/IOT_APP_SELECTION=.*/d" ${taget_sta_source_dir}/macro_config.ini sed -i "/IOT_SMART_CONFIG=.*/d" ${taget_sta_source_dir}/macro_config.ini sed -i "/PLC_SUPPORT_CCO_ROLE=.*/d" ${taget_sta_source_dir}/macro_config.ini fi fi if [ "${IMG_TYPE}" == "ftm" ]; then export cco=0 . ${SRC_ENV_FILE} if [ "${DEF_CLEANUP}" == "true" ]; then ./make.py -j APP=${APP_SELECTION} -C .. clobber fi ./make.py -j PLATFORM=${DEF_PLATFORM_TYPE} cco=0 APP=${APP_SELECTION} FLASH_SIZE=${FLASH_SIZE_nM} -C .. cp ../ap/.output/plc/lib/ht_ftm.bin ../tools/gen_img/ht.bin cp ../ap/.output/plc/lib/ht_ftm.out ../tools/gen_img/ht.out cp ../ap/.output/plc/lib/ht_ftm.map ../tools/gen_img/ht.map fi if [ "${IMG_TYPE}" == "ckb" ]; then export cco=0 export ckb=1 . ${SRC_ENV_FILE} if [ "${DEF_CLEANUP}" == "true" ]; then ./make.py -j APP=${APP_SELECTION} -C .. clobber fi ./make.py -j PLATFORM=${DEF_PLATFORM_TYPE} cco=0 APP=${APP_SELECTION} FLASH_SIZE=${FLASH_SIZE_nM} -C .. cp ../ap/.output/plc/lib/ht_sta.bin ../tools/gen_img/ht.bin cp ../ap/.output/plc/lib/ht_sta.out ../tools/gen_img/ht.out cp ../ap/.output/plc/lib/ht_sta.map ../tools/gen_img/ht.map fi if [ "${BUILD_TYPE}" == "PLC" ]; then plc_make_endtime=$(date +%s) plc_make_time_interval=$((${plc_make_endtime} - ${plc_make_starttime})) echo "plc_make_starttime:${plc_make_starttime}" echo "plc_make_endtime:${plc_make_endtime}" echo "plc_make_time_interval:${plc_make_time_interval}" else cus_make_endtime=$(date +%s) cus_make_time_interval=$((${cus_make_endtime} - ${cus_make_starttime})) echo "cus_make_start_time:${cus_make_starttime}" echo "cus_make_endtime:${cus_make_endtime}" echo "cus_make_time_interval:${cus_make_time_interval}" fi return 0 } #start building... echo "start building: $0 $@ , $(date +%Y-%m-%d\ %H:%M:%S)" if [ "${DEF_CORE_TYPE}" == "ampplc" ]; then build_obj_func ${DEF_IMAGE_TYPE} ${DEF_CUS_APP} CUS # 这里生成ld文件是为了plc程序可以调用 echo "build_flash_kl3.sh call make_ld.sh." ../tools/rom_img/make_ld.sh --addrs ../ap/.output/cus/lib/ht_${DEF_IMAGE_TYPE}.out \ ../startup/ldscripts/riscv3/amp_cus_symbol > ../startup/ldscripts/riscv3/cus.addrs.ld fi ../tools/rom_img/make_ld.sh --addrs ../sbl/.output/plc/lib/kunlun_sbl.out \ ../tools/rom_img/sbl_symbol > ../startup/ldscripts/riscv3/sbl.addrs.ld build_obj_func ${DEF_IMAGE_TYPE} ${DEF_PLC_APP} PLC # 删除 cfg_log.txt cd ../tools/gen_img rm -f ./cfg_log.txt cd - gen_img_starttime=$(date +%s) for STR in ${GROUP_BOARDS_DEF[@]}; do if [ "${DEF_FLASH}" == "2m" ]; then if [[ "${STR}" == *"3201"* ]]; then continue elif [[ "${STR}" == *"3211"* ]]; then continue fi elif [ "${DEF_FLASH}" == "4m" ]; then if [ "${DEF_PSRAM}" != "0m" ]; then if [[ "${STR}" == *"3211"* ]]; then continue fi fi if [[ "${STR}" == *"3031"* ]]; then continue fi fi if [ "${DEF_CORE_TYPE}" == "ampplc" ]; then amp_valid_board=0 if [[ "${STR}" == *"3201"* ]]; then amp_valid_board=1 fi if [[ "${STR}" == *"3211"* ]]; then amp_valid_board=1 fi if [[ "${STR}" == *"3031"* ]]; then amp_valid_board=1 fi if [ "${STR}" == "goldfinger_17p03" ] || [ "${STR}" == "stamp03" ] || [ "${STR}" == "ledc03" ]; then amp_valid_board=1 fi if [ ${amp_valid_board} -eq 0 ]; then continue fi fi # GROUP_RUN_TYPE 是一个列表 flash psram upgrade # 依次调用 gen_img.sh 来生成相应固件 # flash 或 psram 在之前已经根据是否存在 psram 被移除 if [ "${DEF_IMAGE_TYPE}" == "ftm" ]; then cd ../tools/gen_img for RUN_TYPE in ${GROUP_RUN_TYPE[@]}; do echo "./gen_img.sh -d ${DEF_CHIP_ID} -c ${STR} -i ${DEF_IMAGE_TYPE} -r ${RUN_TYPE} -v ${DEF_REL} -m lzma -s ${DEF_FLASH} -b 3 -p ${PSRAM_SIZE_nM} -t ${DEF_CORE_TYPE}" ./gen_img.sh -d ${DEF_CHIP_ID} -c ${STR} -i ${DEF_IMAGE_TYPE} -r ${RUN_TYPE} -v ${DEF_REL} -m lzma -s ${DEF_FLASH} -b 3 -p ${PSRAM_SIZE_nM} -t ${DEF_CORE_TYPE} done cd - else cd ../tools/gen_img for RUN_TYPE in ${GROUP_RUN_TYPE[@]}; do echo "./gen_img.sh -d ${DEF_CHIP_ID} -c ${STR} -i ${DEF_IMAGE_TYPE} -r ${RUN_TYPE} -a ${CUST_APP} -v ${DEF_REL} -m lzma -s ${DEF_FLASH} -b 3 -p ${PSRAM_SIZE_nM} -t ${DEF_CORE_TYPE} ${GEN_FASTBOOT_STR}" ./gen_img.sh -d ${DEF_CHIP_ID} -c ${STR} -i ${DEF_IMAGE_TYPE} -r ${RUN_TYPE} -a ${CUST_APP} -v ${DEF_REL} -m lzma -s ${DEF_FLASH} -b 3 -p ${PSRAM_SIZE_nM} -t ${DEF_CORE_TYPE} ${GEN_FASTBOOT_STR} done cd - fi done gen_img_endtime=$(date +%s) gen_img_time_interval=$((${gen_img_endtime} - ${gen_img_starttime})) if [ "${DEF_CORE_TYPE}" == "ampplc" ]; then echo "cus make elapsed time:${cus_make_time_interval}s" fi echo "plc make elapsed time:${plc_make_time_interval}s" echo "gen img elapsed time:${gen_img_time_interval}s" if [ -f ../tools/gen_img/tmp_plc.lds ]; then rm ../tools/gen_img/tmp_plc.lds fi if [ -f ../tools/gen_img/tmp_cus.lds ]; then rm ../tools/gen_img/tmp_cus.lds fi exit 0