Files
kunlun/build/build_flash_kl3.sh

1028 lines
39 KiB
Bash
Executable File

#!/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