1026 lines
39 KiB
Bash
Executable File
1026 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
|
|
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
|
|
|
|
|