#!/bin/bash ######################## EDIT START ######################### DEF_SDK_TYPE="" DEF_RELEASE="release" DEF_LIBAPP="false" DEF_SG_TYPE= CHIP_CLASS_STR=("HZ") CHIP_ID_STR=("P3201" "P3211" "P3031") PROTO_TYPE_STR=("p12087" "p1901") GROUP_BOARDS_TYPE_SG=("htzd03" "qj03" "flx03" "spe03" "gx03" "dt03") GROUP_BOARDS_TYPE_IOT=("htzd03" "goldf03" "ledc03" "stamp03") GROUP_SDK_TYPE=("sg" "sg_ext" "iot" "iot_ext") GROUP_SG_TYPE=("gw" "nw") #specific board definition. BOARDS_HTZD03_GROUP=("htzd3201cco03" "htzd3211sta03" "htzd3211iic03" "htzd32113ps03") BOARDS_QJ03_GROUP=("qj5580dcco03" "qj5582dsta03" "qj5582diic03" "qj5582d3ps03") BOARDS_FLX03_GROUP=("flx6710cco03" "flx6711sta03" "flx6711iic03" "flx67113ps03") BOARDS_SPE03_GROUP=("spe7303cco03" "spe7301sta03" "spe7301iic03" "spe73013ps03") BOARDS_GX03_GROUP=("gx2001cco03" "gx2011sta03" "gx2011iic03" "gx20113ps03") BOARDS_DT03_GROUP=("dt0530cco03" "dt0531sta03" "dt0531iic03" "dt05313ps03") BOARDS_GOLDF03_GROUP=("goldfinger_17pcco03" "goldfinger_17psta03") BOARDS_LEDC03_GROUP=("ledccco03" "ledcsta03") BOARDS_STAMP03_GROUP=("stampcco03" "stampsta03") #sg app support. SG_GROUP_CHIPCLASS=("HZ" "HZ" "HZ" "HZ" "HZ" "HZ" "HZ" "HZ") SG_GROUP_CHIPID=("P3201" "P3201" "P3211" "P3211" "P3201" "P3201" "P3201" "P3211") SG_GROUP_CORE_TYPE=("PLC" "PLC" "PLC" "PLC" "AMPPLC" "AMPPLC" "PLC" "PLC") SG_GROUP_IMG_TYPE=("CCO" "CCO" "STA" "STA" "CCO" "CCO" "CCO" "STA") SG_GROUP_FLASH_SIZE=(4 4 4 4 4 4 4 4) SG_GROUP_PSRAM_SIZE=(8 8 0 0 8 8 8 0) SG_GROUP_RF_OPT=("RF" "NO_RF" "RF" "NO_RF" "RF" "NO_RF" "RF" "RF") SG_GROUP_DUAL_OPT=("DUAL" "NO_DUAL" "DUAL" "NO_DUAL" "DUAL" "NO_DUAL" "NO_DUAL" "NO_DUAL") SG_GROUP_LENGTH=${#SG_GROUP_CHIPCLASS[*]} #sg ext app support. SG_EXT_GROUP_CHIPCLASS=("HZ" "HZ" "HZ" "HZ" "HZ" "HZ" "HZ" "HZ") SG_EXT_GROUP_CHIPID=("P3201" "P3201" "P3211" "P3211" "P3201" "P3201" "P3201" "P3211") SG_EXT_GROUP_CORE_TYPE=("PLC" "PLC" "PLC" "PLC" "AMPPLC" "AMPPLC" "PLC" "PLC") SG_EXT_GROUP_IMG_TYPE=("CCO" "CCO" "STA" "STA" "CCO" "CCO" "CCO" "STA") SG_EXT_GROUP_FLASH_SIZE=(4 4 4 4 4 4 4 4) SG_EXT_GROUP_PSRAM_SIZE=(8 8 0 0 8 8 8 0) SG_EXT_GROUP_RF_OPT=("RF" "NO_RF" "RF" "NO_RF" "RF" "NO_RF" "RF" "RF") SG_EXT_GROUP_DUAL_OPT=("DUAL" "NO_DUAL" "DUAL" "NO_DUAL" "DUAL" "NO_DUAL" "NO_DUAL" "NO_DUAL") SG_EXT_GROUP_LENGTH=${#SG_EXT_GROUP_CHIPCLASS[*]} #demo app support. DEMO_GROUP_CHIPCLASS=("WQ" "WQ") DEMO_GROUP_CHIPID=("P3031" "P3031") DEMO_GROUP_CORE_TYPE=("PLC" "PLC") DEMO_GROUP_IMG_TYPE=("CCO" "STA") DEMO_GROUP_FLASH_SIZE=(2 2) DEMO_GROUP_PSRAM_SIZE=(0 0) DEMO_GROUP_RF_OPT=("NO_RF" "NO_RF") DEMO_GROUP_DUAL_OPT=("NO_DUAL" "NO_DUAL") DEMO_GROUP_LENGTH=${#DEMO_GROUP_CHIPCLASS[*]} #cus_at app support. CUS_AT_GROUP_CHIPCLASS=("WQ" "WQ") CUS_AT_GROUP_CHIPID=("P3031" "P3031") CUS_AT_GROUP_CORE_TYPE=("PLC" "PLC") CUS_AT_GROUP_IMG_TYPE=("CCO" "STA") CUS_AT_GROUP_FLASH_SIZE=(2 2) CUS_AT_GROUP_PSRAM_SIZE=(0 0) CUS_AT_GROUP_RF_OPT=("NO_RF" "NO_RF") CUS_AT_GROUP_DUAL_OPT=("NO_DUAL" "NO_DUAL") CUS_AT_GROUP_LENGTH=${#CUS_AT_GROUP_CHIPCLASS[*]} ###################### EDIT END ################################### #DEF_DEBUG. for k in $@; do for sdk_type in ${GROUP_SDK_TYPE[@]}; do if [ "$k" == "${sdk_type}" ]; then DEF_SDK_TYPE="${sdk_type}" break fi done done #DEF_DEBUG. for k in $@; do if [ "$k" == "debug" ]; then DEF_RELEASE="debug" fi done #DEF_LIBAPP. if [ "${DEF_SDK_TYPE}" == "sg_ext" ] || [ "${DEF_SDK_TYPE}" == "iot_ext" ]; then DEF_LIBAPP="true" else DEF_LIBAPP="false" fi #DEF_SG_TYPE. for k in $@; do for sg_type in ${GROUP_SG_TYPE[@]}; do if [ "$k" == "${sg_type}" ]; then DEF_SG_TYPE="${sg_type}" break fi done done ###################### THE BELLOW WILL NOT BE EDIT EVEN IF TO ADD NEW SDK ######################## #print help info. if [ "?" == "$1" ] || [ "" == "${DEF_SDK_TYPE}" ]; then echo "* usage: $0 [SDK_TYPE] [SG_TYPE] [DBG_OPTION]" echo "* [SDK_TYPE] -- Necessary, (${GROUP_SDK_TYPE[@]})" echo "* sg: provide sg app in source code style. sg_ext: provide sg app in library style." echo "* iot: provide iot apps in source code style. iot_ext: provide iot apps in library style." echo "* [SG_TYPE] -- Necessary when SDK_TYPE is sg or sg_ext, (${GROUP_SG_TYPE[@]}), no need when SDK_TYPE is iot and iot_ext" echo "* gw: gw app." echo "* nw: nw app." echo "* [DBG_OPTION] -- Optional, debug or release, null means release." echo "" echo "* example:" echo "* ./build_kl3_sdk_gen.sh sg_ext gw debug" echo "* ./build_kl3_sdk_gen.sh iot_ext debug" echo "" echo "*********************** NAME DESCRIPTION *********************************" echo "* [CHIP CLASS] -- (${CHIP_CLASS_STR[@]})." echo "* [CHIP ID] -- (${CHIP_ID_STR[@]})." echo "* [CORE_TYPE] -- (AMPPLC PLC), AMPPLC:dual-core architecture, include cus_core and plc_core; PLC:single core architecture, only have plc_core." echo "* [IMG_TYPE] -- (CCO STA), img type, cco or sta." echo "* [FLASH_SIZE] -- (2M 4M), flash size that support." echo "* [PSRAM_SIZE] -- (0M 8M), psram size that support." echo "* [RF_OPT] -- (RF NO_RF), with rf or not." echo "* [DUAL_OPT] -- (DUAL NO_DUAL), with dual or not." echo "" echo "sg-type support img as follows:" echo "*******(CHIP_CLASS CHIP_ID CORE_TYPE BOARD IMG_TYPE FLASH_SIZE PSRAM_SIZE RF_OPT DUAL_OPT):" echo "*********************** SG APP ********************************************" for ((index=0; index < SG_GROUP_LENGTH; index++)); do echo "* $index. (${SG_GROUP_CHIPCLASS[$index]} ${SG_GROUP_CHIPID[$index]} ${SG_GROUP_CORE_TYPE[$index]} ${SG_GROUP_IMG_TYPE[$index]} "\ "${SG_GROUP_FLASH_SIZE[$index]}M flash ${SG_GROUP_PSRAM_SIZE[$index]}M psram ${SG_GROUP_RF_OPT[$index]} ${SG_GROUP_DUAL_OPT[$index]})" done echo "" echo "sg_ext-type support img as follows:" echo "*******(CHIP_CLASS CHIP_ID CORE_TYPE BOARD IMG_TYPE FLASH_SIZE PSRAM_SIZE RF_OPT DUAL_OPT):" echo "*********************** SG_EXT APP ********************************************" for ((index=0; index < SG_EXT_GROUP_LENGTH; index++)); do echo "* $index. (${SG_EXT_GROUP_CHIPCLASS[$index]} ${SG_EXT_GROUP_CHIPID[$index]} ${SG_EXT_GROUP_CORE_TYPE[$index]} ${SG_EXT_GROUP_IMG_TYPE[$index]} "\ "${SG_EXT_GROUP_FLASH_SIZE[$index]}M flash ${SG_EXT_GROUP_PSRAM_SIZE[$index]}M psram ${SG_EXT_GROUP_RF_OPT[$index]} ${SG_EXT_GROUP_DUAL_OPT[$index]})" done echo "" echo "(iot-type iot_ext-type) support img as follows:" echo "*******(CHIP_CLASS CHIP_ID CORE_TYPE BOARD IMG_TYPE FLASH_SIZE PSRAM_SIZE RF_OPT DUAL_OPT):" echo "*********************** DEMO APP ******************************************" for ((index=0; index < DEMO_GROUP_LENGTH; index++)); do echo "* $index. (${DEMO_GROUP_CHIPCLASS[$index]} ${DEMO_GROUP_CHIPID[$index]} ${DEMO_GROUP_CORE_TYPE[$index]} ${DEMO_GROUP_IMG_TYPE[$index]} "\ "${DEMO_GROUP_FLASH_SIZE[$index]}M flash ${DEMO_GROUP_PSRAM_SIZE[$index]}M psram ${DEMO_GROUP_RF_OPT[$index]} ${DEMO_GROUP_DUAL_OPT[$index]})" done echo "" echo "*******(CHIP_CLASS CHIP_ID CORE_TYPE BOARD IMG_TYPE FLASH_SIZE PSRAM_SIZE RF_OPT DUAL_OPT):" echo "*********************** CUS_AT | SILA APP ****************************************" for ((index=0; index < CUS_AT_GROUP_LENGTH; index++)); do echo "* $index. (${CUS_AT_GROUP_CHIPCLASS[$index]} ${CUS_AT_GROUP_CHIPID[$index]} ${CUS_AT_GROUP_CORE_TYPE[$index]} ${CUS_AT_GROUP_IMG_TYPE[$index]} "\ "${CUS_AT_GROUP_FLASH_SIZE[$index]}M flash ${CUS_AT_GROUP_PSRAM_SIZE[$index]}M psram ${CUS_AT_GROUP_RF_OPT[$index]} ${CUS_AT_GROUP_DUAL_OPT[$index]})" done echo "" echo "*********************************** BOARD SUPPORT IMAGE_TYPE DEFINATION ***********************************" echo "board supports define:" echo "htzd03: (${BOARDS_HTZD03_GROUP[@]})" echo "goldf03: (${BOARDS_GOLDF03_GROUP[@]})" echo "ledc03: (${BOARDS_LEDC03_GROUP[@]})" echo "ledc03: (${BOARDS_STAMP03_GROUP[@]})" echo "" echo "************************************************** END **************************************************" exit 0 fi BUILD_NUM=0 MAINLINE_FOLDER=".." CMAKE_FOLDER="../../SDKCmake" CMAKE_SDK_FOLDER="${CMAKE_FOLDER}/kl3_sdk" SDK_ROOT_FOLDER="../tools/gen_img/KL3_SDK" OEM_FOLDER="../tools/oem" PIB_FOLDER="../tools/pib" TOOLS_FOLDER="../tools/gen_img" set -o errexit RELEASE_UPPER=$(echo ${DEF_RELEASE} | tr '[a-z]' '[A-Z]') if [ "${DEF_SDK_TYPE}" == "sg" ]; then TARGET_SDK_FOLDER="${SDK_ROOT_FOLDER}/KL3_SG_SDK_${RELEASE_UPPER}" DEF_BOARD_TYPE="htzd03" elif [ "${DEF_SDK_TYPE}" == "sg_ext" ]; then TARGET_SDK_FOLDER="${SDK_ROOT_FOLDER}/KL3_SG_EXT_SDK_${RELEASE_UPPER}" DEF_BOARD_TYPE="htzd03" elif [ "${DEF_SDK_TYPE}" == "iot" ]; then TARGET_SDK_FOLDER="${SDK_ROOT_FOLDER}/KL3_IOT_SDK_${RELEASE_UPPER}" DEF_BOARD_TYPE="goldf03" elif [ "${DEF_SDK_TYPE}" == "iot_ext" ]; then TARGET_SDK_FOLDER="${SDK_ROOT_FOLDER}/KL3_IOT_EXT_SDK_${RELEASE_UPPER}" DEF_BOARD_TYPE="goldf03" fi if [ ! -d ${SDK_ROOT_FOLDER} ]; then mkdir -p ${SDK_ROOT_FOLDER} fi if [ -d ${TARGET_SDK_FOLDER} ]; then rm -rf ${TARGET_SDK_FOLDER} fi mkdir -p ${TARGET_SDK_FOLDER} pushd "${TARGET_SDK_FOLDER}" mkdir cus_core mkdir plc_core mkdir resource mkdir resource/boards mkdir build mkdir output mkdir tools mkdir doc popd #prepare common file. if [ ! -d ${CMAKE_SDK_FOLDER}/cmake ] || [ ! -d ${CMAKE_SDK_FOLDER}/.scripts ] \ || [ ! -d ${MAINLINE_FOLDER}/export/inc ] || [ ! -f ${CMAKE_SDK_FOLDER}/build_target_firmware.sh ]; then echo "ERR: common file not exist." exit 1 fi cp -r ${CMAKE_SDK_FOLDER}/cmake ${TARGET_SDK_FOLDER} cp -r ${CMAKE_SDK_FOLDER}/.scripts ${TARGET_SDK_FOLDER}/build cp ${CMAKE_SDK_FOLDER}/build_target_firmware.sh ${TARGET_SDK_FOLDER}/build cp ${CMAKE_SDK_FOLDER}/do_filter_sdk.sh ${TARGET_SDK_FOLDER}/ cp -r ${MAINLINE_FOLDER}/export/inc ${TARGET_SDK_FOLDER} sed -i "s/^DEF_RELEASE=.*/DEF_RELEASE=\"${DEF_RELEASE}\"/g" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh sed -i "s/^SDK_FOLDER_NAME=.*/SDK_FOLDER_NAME=\"$(basename ${TARGET_SDK_FOLDER})\"/g" ${TARGET_SDK_FOLDER}/do_filter_sdk.sh if [ "${DEF_SDK_TYPE}" == "sg" ] || [ "${DEF_SDK_TYPE}" == "sg_ext" ]; then group_boards_type="${GROUP_BOARDS_TYPE_SG[@]}" else group_boards_type="${GROUP_BOARDS_TYPE_IOT[@]}" fi sed -i "s/^GROUP_BOARDS_TYPE=.*/GROUP_BOARDS_TYPE=\(${group_boards_type}\)/g" ${TARGET_SDK_FOLDER}/do_filter_sdk.sh IOT_VER_FILE="${MAINLINE_FOLDER}/inc/iot_version.h" get_iot_ver() { ver_file=$1 major_ver=`cat ${ver_file} |grep " AP_FIRMWARE_VERSION_MAJOR"|awk '{print $3}'` mionor_ver=`cat ${ver_file} |grep " AP_FIRMWARE_VERSION_MINOR"|awk '{print $3}'` micro_ver=`cat ${ver_file} |grep " AP_FIRMWARE_VERSION_MICRO"|awk '{print $3}'` build_ver=`cat ${ver_file} |grep " AP_FIRMWARE_VERSION_BUILD"|awk '{print $3}'` major_ver=${major_ver//(/} major_ver=${major_ver//)/} mionor_ver=${mionor_ver//(/} mionor_ver=${mionor_ver//)/} micro_ver=${micro_ver//(/} micro_ver=${micro_ver//)/} build_ver=${build_ver//(/} build_ver=${build_ver//)/} IOT_VER="${major_ver}.${mionor_ver}.${micro_ver}.${build_ver}" return } get_git_ver() { ver_file=$1 commit_id=`git log -1 | grep "commit" | awk '{print $2}'` GIT_VER="${commit_id:0:6}" return } #generate oem and pib bin. prepare_oem_pib_bin() { local sdk_type=$1 local board_type_upper=$(echo $2 | tr '[a-z]' '[A-Z]') local target_board_dir=$3 PIB_IMG=${board_type_upper} LP_PIB_IMG=${board_type_upper} OEM_IMG=${board_type_upper} OEM_AMP_IMG= if [ "${sdk_type}" == "iot" ] || [ "${sdk_type}" == "iot_ext" ]; then if [[ "${board_type_upper}" == "GOLDFINGER_17P"* ]]; then OEM_IMG="GOLDFINGER_17P03" OEM_AMP_IMG="GOLDFINGER_17P03_AMPIOT" fi if [[ "${board_type_upper}" == "LEDC"* ]]; then OEM_IMG="LEDC03" fi if [[ "${board_type_upper}" == "STAMP"* ]]; then OEM_IMG="STAMP03" fi #plc oem oem_ini="${OEM_FOLDER}/${OEM_IMG}_OEM.ini" if [ ! -f "${oem_ini}" ]; then echo "[WARNING!!!] ${oem_ini} not exist." return 1 fi cp ${oem_ini} ./tmp_oem.ini if [[ "${board_type_upper}" == *"STA03" ]]; then sed -i "s/mid.*/mid 0/g" ./tmp_oem.ini fi if [[ "${board_type_upper}" == *"CCO03" ]]; then sed -i "s/mid.*/mid 1/g" ./tmp_oem.ini fi $OEM_TOOL --input=./tmp_oem.ini --output=${target_board_dir}/oem_plc.bin rm ./tmp_oem.ini #amp oem if [ "x${OEM_AMP_IMG}" != "x" ]; then oem_ini="${OEM_FOLDER}/${OEM_AMP_IMG}_OEM.ini" if [ ! -f "${oem_ini}" ]; then echo "[WARNING!!!] ${oem_ini} not exist." return 1 fi cp ${oem_ini} ./tmp_oem.ini if [[ "${board_type_upper}" == *"STA03" ]]; then sed -i "s/mid.*/mid 0/g" ./tmp_oem.ini fi if [[ "${board_type_upper}" == *"CCO03" ]]; then sed -i "s/mid.*/mid 1/g" ./tmp_oem.ini fi $OEM_TOOL --input=./tmp_oem.ini --output=${target_board_dir}/oem_amp.bin rm ./tmp_oem.ini fi PIB_IMG=${PIB_IMG/IIC/STA} PIB_IMG=${PIB_IMG/3PS/STA} LP_PIB_IMG=${LP_PIB_IMG/IIC/STA} LP_PIB_IMG=${LP_PIB_IMG/3PS/STA} if [[ "${PIB_IMG}" == *"CCO03" ]]; then PIB_IMG=$(echo ${PIB_IMG} | sed -n "s/^.*CCO03/HTZD3201CCO03/p") LP_PIB_IMG=$(echo ${LP_PIB_IMG} | sed -n "s/^.*CCO03/HTZD3201CCO03_LP/p") fi if [[ "${PIB_IMG}" == *"STA03" ]]; then PIB_IMG=$(echo ${PIB_IMG} | sed -n "s/^.*STA03/HTZD3211STA03/p") LP_PIB_IMG=$(echo ${LP_PIB_IMG} | sed -n "s/^.*STA03/HTZD3211STA03_LP/p") fi pib_file="${PIB_FOLDER}/${PIB_IMG}_PIB.bin" lp_pib_file="${PIB_FOLDER}/${LP_PIB_IMG}_PIB.bin" echo iot pib_file:${pib_file} echo iot lp_pib_file:${lp_pib_file} cp ${pib_file} ${target_board_dir}/pib.bin cp ${lp_pib_file} ${target_board_dir}/lp_pib.bin else #plc oem oem_ini="${OEM_FOLDER}/${OEM_IMG}_OEM.ini" if [ ! -f "${oem_ini}" ]; then echo "[WARNING!!!] ${oem_ini} not exist." return 1 fi cp ${oem_ini} ./tmp_oem.ini $OEM_TOOL --input=./tmp_oem.ini --output=${target_board_dir}/oem_plc.bin rm ./tmp_oem.ini if [[ "${board_type_upper}" == "HTZD3201CCO"* ]]; then OEM_AMP_IMG="HTZD3201CCO03_AMPSG" fi #amp oem if [ "x${OEM_AMP_IMG}" != "x" ]; then oem_ini="${OEM_FOLDER}/${OEM_AMP_IMG}_OEM.ini" if [ ! -f "${oem_ini}" ]; then echo "[WARNING!!!] ${oem_ini} not exist." return 1 fi cp ${oem_ini} ./tmp_oem.ini $OEM_TOOL --input=./tmp_oem.ini --output=${target_board_dir}/oem_amp.bin rm ./tmp_oem.ini fi PIB_IMG=${PIB_IMG/IIC/STA} PIB_IMG=${PIB_IMG/3PS/STA} LP_PIB_IMG=${LP_PIB_IMG/IIC/STA} LP_PIB_IMG=${LP_PIB_IMG/3PS/STA} if [[ "${PIB_IMG}" == *"CCO03" ]]; then if [ "${DEF_SG_TYPE}" == "nw" ]; then PIB_IMG=$(echo ${PIB_IMG} | sed -n "s/^.*CCO03/HTZDCCO01_NW/p") LP_PIB_IMG=$(echo ${LP_PIB_IMG} | sed -n "s/^.*CCO03/HTZDCCO01_NW_LP/p") else PIB_IMG=$(echo ${PIB_IMG} | sed -n "s/^.*CCO03/HTZDCCO01/p") LP_PIB_IMG=$(echo ${LP_PIB_IMG} | sed -n "s/^.*CCO03/HTZDCCO01_LP/p") fi if [ "${DEF_SG_TYPE}" == "nw" ]; then lp_guangdong_pib_file="${PIB_FOLDER}/HTZDCCO01_NW_LP_GUANGDONG_PIB.bin" echo sg lp_guangdong_pib_file:${lp_guangdong_pib_file} cp ${lp_guangdong_pib_file} ${target_board_dir}/lp_guangdong_pib.bin fi fi if [[ "${PIB_IMG}" == *"STA03" ]]; then PIB_IMG=$(echo ${PIB_IMG} | sed -n "s/^.*STA03/HTZDSTA01/p") LP_PIB_IMG=$(echo ${LP_PIB_IMG} | sed -n "s/^.*STA03/HTZDSTA01_LP/p") fi pib_file="${PIB_FOLDER}/${PIB_IMG}_PIB.bin" lp_pib_file="${PIB_FOLDER}/${LP_PIB_IMG}_PIB.bin" echo sg pib_file:${pib_file} echo sg lp_pib_file:${lp_pib_file} cp ${pib_file} ${target_board_dir}/pib.bin cp ${lp_pib_file} ${target_board_dir}/lp_pib.bin fi } #generate board resource. gen_boards_resource() { #prepare tools. ./build_ah.sh kl3 ./build_lzma.sh kl3 ./build_oem_tool.sh kl3 cp ${TOOLS_FOLDER}/elzma ${TARGET_SDK_FOLDER}/tools cp ${TOOLS_FOLDER}/ah ${TARGET_SDK_FOLDER}/tools target_board_resource_dir=${TARGET_SDK_FOLDER}/resource/boards OEM_TOOL="${TOOLS_FOLDER}/oem_tool" boards_support=() board_num=0 if [ "${DEF_SDK_TYPE}" == "sg" ] || [ "${DEF_SDK_TYPE}" == "sg_ext" ]; then GROUP_BOARDS_TYPE=(${GROUP_BOARDS_TYPE_SG[@]}) else GROUP_BOARDS_TYPE=(${GROUP_BOARDS_TYPE_IOT[@]}) fi for boards_type in ${GROUP_BOARDS_TYPE[@]}; do BOARD_TYPE_KW=$(echo ${boards_type} | tr '[a-z]' '[A-Z]') eval BOARDS_GROUP="\${BOARDS_${BOARD_TYPE_KW}_GROUP[@]}" for board_item in ${BOARDS_GROUP}; do mkdir -p ${target_board_resource_dir}/${board_item} prepare_oem_pib_bin ${DEF_SDK_TYPE} ${board_item} ${target_board_resource_dir}/${board_item} boards_support[${board_num}]=${board_item} ((board_num=${board_num}+1)) done done boards_support="${boards_support[@]}" sed -i "/^BOARD_SUPPORT_NUM=.*/i BOARDS_SUPPORT=\(${boards_support}\)" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh sed -i "s/^BOARD_SUPPORT_NUM=.*/BOARD_SUPPORT_NUM=${board_num}/" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh sed -i "/^BOARD_SUPPORT_NUM=.*/i BOARDS_SUPPORT=\(${boards_support}\)" ${TARGET_SDK_FOLDER}/do_filter_sdk.sh sed -i "s/^BOARD_SUPPORT_NUM=.*/BOARD_SUPPORT_NUM=${board_num}/" ${TARGET_SDK_FOLDER}/do_filter_sdk.sh } #build_sdk_start chip_class chip_id img_type app_name core_type flash_size psram_size proto_type rf_opt dual_opt boot_opt. build_sdk_start() { local chip_class=$1 local chip_id=$2 local img_type=$3 local app=$4 local core_type=$5 local flash_size=$6 local psram_size=$7 local proto_type=$8 local rf_opt=$9 local dual_opt=${10} local boot_opt=${11} local cus_appid=17 local chip_class_lower=$(echo ${chip_class} | tr '[A-Z]' '[a-z]') local chip_id_lower=$(echo ${chip_id} | tr '[A-Z]' '[a-z]') local img_type_lower=$(echo ${img_type} | tr '[A-Z]' '[a-z]') local app_lower=$(echo ${app} | tr '[A-Z]' '[a-z]') local core_type_lower=$(echo ${core_type} | tr '[A-Z]' '[a-z]') local proto_type_lower=$(echo ${proto_type} | tr '[A-Z]' '[a-z]') local rf_opt_lower=$(echo ${rf_opt} | tr '[A-Z]' '[a-z]') local dual_opt_lower=$(echo ${dual_opt} | tr '[A-Z]' '[a-z]') local platform_type="CHIP" if [ "${app_lower}" == "sg" ]; then app_id="0" elif [ "${app_lower}" == "sg_ext" ]; then app_id="5" elif [ "${app_lower}" == "demo" ]; then app_id="3" elif [ "${app_lower}" == "cus_at" ]; then app_id="18" elif [ "${app_lower}" == "sila" ]; then app_id="24" else echo "Unsupport app:${app_lower}" return 1 fi if [ ${core_type_lower} == "ampplc" ]; then local amp_kb="amp" CFG_DIR="${MAINLINE_FOLDER}/build/cfg3" else local amp_kb="plc" CFG_DIR="${MAINLINE_FOLDER}/build/cfg3_plc" fi #prepare app. target_cus_core_dir="${TARGET_SDK_FOLDER}/cus_core" target_plc_core_dir="${TARGET_SDK_FOLDER}/plc_core" if [ "${core_type_lower}" == "ampplc" ]; then if [ "${app_lower}" == "cus_at" ]; then if [ ! -d "${target_cus_core_dir}/cus_at_app" ]; then mkdir -p ${target_cus_core_dir}/cus_at_app cp -rf ${MAINLINE_FOLDER}/app/iot_cuscore_at_app/* ${target_cus_core_dir}/cus_at_app cp -rf ${CMAKE_SDK_FOLDER}/kl3_iot_cuscore_at_app/. ${target_cus_core_dir}/cus_at_app cp -rf ${MAINLINE_FOLDER}/app/utils/iot_load_plc.* ${target_cus_core_dir}/cus_at_app fi cus_appid=23 else if [ ! -d "${target_cus_core_dir}/cus_demo_app" ]; then mkdir -p ${target_cus_core_dir}/cus_demo_app cp -rf ${MAINLINE_FOLDER}/app/iot_cuscore_demo_app/* ${target_cus_core_dir}/cus_demo_app cp -rf ${CMAKE_SDK_FOLDER}/kl3_iot_cuscore_demo_app/. ${target_cus_core_dir}/cus_demo_app cp -rf ${MAINLINE_FOLDER}/app/utils/iot_load_plc.* ${target_cus_core_dir}/cus_demo_app fi cus_appid=17 fi fi if [ "${app_lower}" == "sg" ] && [ ! -e ${target_plc_core_dir}/${app_lower}_app ]; then mkdir -p ${target_plc_core_dir}/${app_lower}_app cp -rf ${CMAKE_SDK_FOLDER}/kl3_sg_app/. ${target_plc_core_dir}/${app_lower}_app cp -rf ${MAINLINE_FOLDER}/app/smart_grid/* ${target_plc_core_dir}/${app_lower}_app elif [ "${app_lower}" == "sg_ext" ] && [ ! -e ${target_plc_core_dir}/${app_lower}_app ]; then mkdir -p ${target_plc_core_dir}/${app_lower}_app cp -rf ${CMAKE_SDK_FOLDER}/kl3_sg_ext_app/. ${target_plc_core_dir}/${app_lower}_app cp -rf ${MAINLINE_FOLDER}/app/smart_grid_extend/* ${target_plc_core_dir}/${app_lower}_app elif [ "${app_lower}" == "demo" ] && [ ! -e ${target_plc_core_dir}/${app_lower}_app ]; then mkdir -p ${target_plc_core_dir}/${app_lower}_app cp -rf ${CMAKE_SDK_FOLDER}/kl3_iot_demo_app/. ${target_plc_core_dir}/${app_lower}_app if [ "${DEF_LIBAPP}" == "false" ]; then cp -rf ${MAINLINE_FOLDER}/app/demo/* ${target_plc_core_dir}/${app_lower}_app rm -f ${target_plc_core_dir}/${app_lower}_app/demo_speed_test* sed -i "/#elif (IOT_DEMO_SUB_FUN == IOT_DEMO_SEL_SPEED_TEST)/,/app_demo_spd_module_init();/d" ${target_plc_core_dir}/${app_lower}_app/demo.c # copy utils files. cp -rf ${MAINLINE_FOLDER}/app/utils/* ${target_plc_core_dir}/${app_lower}_app rm -f ${target_plc_core_dir}/${app_lower}_app/iot_load_plc.* fi elif [ "${app_lower}" == "ge" ] && [ ! -e ${target_plc_core_dir}/${app_lower}_app ]; then mkdir -p ${target_plc_core_dir}/${app_lower}_app cp -rf ${CMAKE_SDK_FOLDER}/kl3_iot_ge_app/. ${target_plc_core_dir}/${app_lower}_app if [ "${DEF_LIBAPP}" == "false" ]; then cp -rf ${MAINLINE_FOLDER}/app/grapp/* ${target_plc_core_dir}/${app_lower}_app fi elif [ "${app_lower}" == "cus_at" ] && [ ! -e ${target_plc_core_dir}/${app_lower}_app ]; then mkdir -p ${target_plc_core_dir}/${app_lower}_app cp -rf ${CMAKE_SDK_FOLDER}/kl3_iot_cus_at_app/. ${target_plc_core_dir}/${app_lower}_app if [ "${DEF_LIBAPP}" == "false" ]; then cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/at ${target_plc_core_dir}/${app_lower}_app/ cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/common ${target_plc_core_dir}/${app_lower}_app/ cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/driver ${target_plc_core_dir}/${app_lower}_app/ cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/customer ${target_plc_core_dir}/${app_lower}_app/ rm -f ${target_plc_core_dir}/${app_lower}_app/driver/app_gpio* sed -i "/#if APP_IO_OPERATION_ENABLE/,/#endif \/\* end APP_IO_OPERATION_ENABLE \*\//d" ${target_plc_core_dir}/${app_lower}_app/at/app_atcmd_handle.c sed -i "/#if APP_IO_OPERATION_ENABLE/,/#endif \/\* end APP_IO_OPERATION_ENABLE \*\//d" ${target_plc_core_dir}/${app_lower}_app/common/app_config.c sed -i "/#if APP_IO_OPERATION_ENABLE/,/#endif \/\* end APP_IO_OPERATION_ENABLE \*\//d" ${target_plc_core_dir}/${app_lower}_app/common/app_main.c sed -i "/#if (IOT_AT_ONLY == 1)/d" ${target_plc_core_dir}/${app_lower}_app/at/app_atcmd_handle.c sed -i "/#else \/\* else IOT_AT_ONLY == 0 \*\//,/#endif \/\* end IOT_AT_ONLY \*\//d" ${target_plc_core_dir}/${app_lower}_app/at/app_atcmd_handle.c # copy utils files. cp -rf ${MAINLINE_FOLDER}/app/utils ${target_plc_core_dir}/${app_lower}_app/ fi elif [ "${app_lower}" == "sila" ] && [ ! -e ${target_plc_core_dir}/${app_lower}_app ]; then mkdir -p ${target_plc_core_dir}/${app_lower}_app cp -rf ${CMAKE_SDK_FOLDER}/kl3_iot_sila_app/. ${target_plc_core_dir}/${app_lower}_app if [ "${DEF_LIBAPP}" == "false" ]; then cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/at ${target_plc_core_dir}/${app_lower}_app/ cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/common ${target_plc_core_dir}/${app_lower}_app/ cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/driver ${target_plc_core_dir}/${app_lower}_app/ cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/customer ${target_plc_core_dir}/${app_lower}_app/ cp -rf ${MAINLINE_FOLDER}/app/iot_cus_at_app/proto ${target_plc_core_dir}/${app_lower}_app/ sed -i "/#if (IOT_AT_ONLY == 1)/,/#else \/\* else IOT_AT_ONLY == 0 \*\//d" ${target_plc_core_dir}/${app_lower}_app/at/app_atcmd_handle.c sed -i "/#endif \/\* end IOT_AT_ONLY \*\//d" ${target_plc_core_dir}/${app_lower}_app/at/app_atcmd_handle.c # copy utils files. cp -rf ${MAINLINE_FOLDER}/app/utils ${target_plc_core_dir}/${app_lower}_app/ fi fi local plc_lib_kw="${proto_type_lower}" if [ "${rf_opt_lower}" == "rf" ]; then plc_lib_kw="${plc_lib_kw}_rf" fi if [ "${dual_opt_lower}" == "dual" ]; then plc_lib_kw="${plc_lib_kw}_dual" fi if [ "${boot_opt}" == "fastboot" ]; then plc_lib_kw="${plc_lib_kw}_fb" fi if [ "${core_type_lower}" == "ampplc" ]; then taget_source_dir="../tools/gen_img/lib_sdk_source/kl3_${chip_class}_${img_type_lower}_${app_id}_ampplc_${flash_size}m_${psram_size}m_${DEF_RELEASE}" chk_files=("sbl.bin" "libht_cus.a" "libht_plc_${plc_lib_kw}.a" "libapp_plc.a") else taget_source_dir="../tools/gen_img/lib_sdk_source/kl3_${chip_class}_${img_type_lower}_${app_id}_plc_${flash_size}m_${psram_size}m_${DEF_RELEASE}" chk_files=("sbl.bin" "libht_plc_${plc_lib_kw}.a" "libapp_plc.a") fi for bin_file in ${chk_files[@]}; do if [ ! -f ${taget_source_dir}/${bin_file} ]; then echo "WARNING: file not exist : ${taget_source_dir}/${bin_file}" local build_img_flag=1 break fi done #building blocks for compiling the SDK. if [ "${build_img_flag}" == "1" ]; then if [ "${DEF_RELEASE}" == "debug" ]; then sed -i "s/\([ ]*#define AP_FIRMWARE_VERSION_TYPE[ ]*\) .*/\1 \(1\)/" ${IOT_VER_FILE} sed -i "s/\([ ]*#define IOT_PRINTF_DEBUG[ ]*\) .*/\1 1/" ${MAINLINE_FOLDER}/export/inc/iot_config_api.h sed -i "s/\([ ]*#define IOT_PRINTF_DEBUG[ ]*\) .*/\1 1/" ${MAINLINE_FOLDER}/export/inc/config/plc_config_api.h sed -i "s/\([ ]*#define IOT_EXCEPTION_DEBUG[ ]*\) .*/\1 1/" ${MAINLINE_FOLDER}/export/inc/iot_config_api.h sed -i "s/\([ ]*#define IOT_EXCEPTION_DEBUG[ ]*\) .*/\1 1/" ${MAINLINE_FOLDER}/export/inc/config/plc_config_api.h else sed -i "s/\([ ]*#define AP_FIRMWARE_VERSION_TYPE[ ]*\) .*/\1 \(0\)/" ${IOT_VER_FILE} sed -i "s/\([ ]*#define IOT_PRINTF_DEBUG[ ]*\) .*/\1 0/" ${MAINLINE_FOLDER}/export/inc/iot_config_api.h sed -i "s/\([ ]*#define IOT_PRINTF_DEBUG[ ]*\) .*/\1 0/" ${MAINLINE_FOLDER}/export/inc/config/plc_config_api.h sed -i "s/\([ ]*#define IOT_EXCEPTION_DEBUG[ ]*\) .*/\1 0/" ${MAINLINE_FOLDER}/export/inc/iot_config_api.h sed -i "s/\([ ]*#define IOT_EXCEPTION_DEBUG[ ]*\) .*/\1 0/" ${MAINLINE_FOLDER}/export/inc/config/plc_config_api.h sed -i "s/\([ ]*#define DBGLOG_DEFAULT_LEVEL[ ]*\) .*/\1 DBGLOG_ERR/" ${MAINLINE_FOLDER}/common/dbglog/iot_dbglog.c fi if [ "${core_type_lower}" == "ampplc" ]; then if [ "${boot_opt}" == "fastboot" ]; then ./build_flash_kl3.sh ${img_type_lower} ${cus_appid} ${app_id} ampplc ${flash_size}m ${psram_size}m ${chip_class} ${proto_type_lower} ${rf_opt_lower} ${dual_opt_lower} ${DEF_RELEASE} ${platform_type} ${boot_opt} ${DEF_BOARD_TYPE} else ./build_flash_kl3.sh ${img_type_lower} ${cus_appid} ${app_id} ampplc ${flash_size}m ${psram_size}m ${chip_class} ${proto_type_lower} ${rf_opt_lower} ${dual_opt_lower} ${DEF_RELEASE} ${platform_type} ${DEF_BOARD_TYPE} fi else ./build_flash_kl3.sh ${img_type_lower} ${cus_appid} ${app_id} plc ${flash_size}m ${psram_size}m ${chip_class} ${proto_type_lower} ${rf_opt_lower} ${dual_opt_lower} ${DEF_RELEASE} ${platform_type} ${DEF_BOARD_TYPE} fi fi #prepare boards. target_chip_resource_dir=${TARGET_SDK_FOLDER}/resource/${chip_class_lower}_${chip_id_lower}_${flash_size}f${psram_size}p/${img_type_lower}_${amp_kb} if [ ! -d "${target_chip_resource_dir}" ]; then mkdir -p "${target_chip_resource_dir}" mkdir ${target_chip_resource_dir}/bin mkdir ${target_chip_resource_dir}/lib mkdir ${target_chip_resource_dir}/ld mkdir ${target_chip_resource_dir}/cfg fi #prepare cfg. if [ "${app_lower}" == "sg" ] || [ "${app_lower}" == "sg_ext" ]; then if [ "${psram_size}" == "0" ]; then cfg_file=${CFG_DIR}/${flash_size}m_${img_type_lower}.cfg upd_cfg_file=${CFG_DIR}/${flash_size}m_${img_type_lower}_upgrade.cfg else cfg_file=${CFG_DIR}/${flash_size}m_${img_type_lower}_psram.cfg upd_cfg_file=${CFG_DIR}/${flash_size}m_${img_type_lower}_upgrade_psram.cfg fi cp ${upd_cfg_file} ${target_chip_resource_dir}/cfg/${img_type_lower}_upgrade.cfg sed -i "/^flash_size=./a psram_size=${psram_size}" ${target_chip_resource_dir}/cfg/${img_type_lower}_upgrade.cfg else if [ "${psram_size}" == "0" ]; then cfg_file=${CFG_DIR}/smart_${flash_size}m_${img_type_lower}.cfg else cfg_file=${CFG_DIR}/smart_${flash_size}m_${img_type_lower}_psram.cfg fi fi cp ${cfg_file} ${target_chip_resource_dir}/cfg/${img_type_lower}.cfg sed -i "/^flash_size=./a psram_size=${psram_size}" ${target_chip_resource_dir}/cfg/${img_type_lower}.cfg #prepare chip resource. cp ${taget_source_dir}/sbl.bin ${target_chip_resource_dir}/bin if [ "${DEF_LIBAPP}" == "true" ]; then if [ "${app_lower}" == "sg_ext" ]; then cp ${taget_source_dir}/libapp_plc.a ${target_chip_resource_dir}/lib/libsg_app_${img_type_lower}.a else cp ${taget_source_dir}/libapp_plc.a ${target_chip_resource_dir}/lib/lib${app_lower}_app_${img_type_lower}.a fi fi if [ "${DEF_SDK_TYPE}" == "sg" ] || [ "${DEF_SDK_TYPE}" == "sg_ext" ]; then if [ "${core_type_lower}" == "ampplc" ]; then if [ "${boot_opt}" == "fastboot" ]; then cp ${taget_source_dir}/libht_cus_fb.a ${target_chip_resource_dir}/lib/libsg${img_type_lower}_amp_cus_fb.a else cp ${taget_source_dir}/libht_cus.a ${target_chip_resource_dir}/lib/libsg${img_type_lower}_amp_cus.a fi cp ${taget_source_dir}/libht_plc_${plc_lib_kw}.a ${target_chip_resource_dir}/lib/libsg${img_type_lower}_amp_plc_${plc_lib_kw}.a else cp ${taget_source_dir}/libht_plc_${plc_lib_kw}.a ${target_chip_resource_dir}/lib/libsg${img_type_lower}_plc_${plc_lib_kw}.a fi else if [ "${core_type_lower}" == "ampplc" ]; then cp ${taget_source_dir}/libht_cus.a ${target_chip_resource_dir}/lib/libiot${img_type_lower}_amp_cus.a cp ${taget_source_dir}/libht_plc_${plc_lib_kw}.a ${target_chip_resource_dir}/lib/libiot${img_type_lower}_amp_plc_${plc_lib_kw}.a else cp ${taget_source_dir}/libht_plc_${plc_lib_kw}.a ${target_chip_resource_dir}/lib/libiot${img_type_lower}_plc_${plc_lib_kw}.a fi fi #prepare board macro. cp ${taget_source_dir}/macro_config.ini ${target_chip_resource_dir}/ sed -i "/^$/d" ${target_chip_resource_dir}/macro_config.ini sed -i "s/^/-D/g" ${target_chip_resource_dir}/macro_config.ini sed -i ':a;N;$!ba;s/\n/ /g' ${target_chip_resource_dir}/macro_config.ini #prepare lds. src_ld_dir="${MAINLINE_FOLDER}/startup/ldscripts/riscv3" if [ "${img_type_lower}" == "cco" ]; then if [ "${core_type_lower}" == "ampplc" ]; then if [ "${psram_size}" == "0" ]; then if [ "${boot_opt}" == "fastboot" ]; then cp ${src_ld_dir}/link_flash_2m_cus_cco.lds ${target_chip_resource_dir}/ld/link_cco_amp_cus_fb.lds else cp ${src_ld_dir}/link_flash_2m_cus_cco.lds ${target_chip_resource_dir}/ld/link_cco_amp_cus.lds fi cp ${src_ld_dir}/link_flash_2m_cco.lds ${target_chip_resource_dir}/ld/link_cco_amp_plc.lds else if [ "${boot_opt}" == "fastboot" ]; then cp ${src_ld_dir}/link_psram_8m_cus_cco_fb.lds ${target_chip_resource_dir}/ld/link_cco_amp_cus_fb.lds else cp ${src_ld_dir}/link_psram_8m_cus_cco.lds ${target_chip_resource_dir}/ld/link_cco_amp_cus.lds fi cp ${src_ld_dir}/link_psram_8m_cco.lds ${target_chip_resource_dir}/ld/link_cco_amp_plc.lds fi else if [ "${psram_size}" == "0" ]; then if [ "${flash_size}" == "2" ]; then cp ${src_ld_dir}/link_flash_2m_cco_plc_only.lds ${target_chip_resource_dir}/ld/link_cco_plc.lds else cp ${src_ld_dir}/link_flash_4m_cco_plc_only.lds ${target_chip_resource_dir}/ld/link_cco_plc.lds fi else cp ${src_ld_dir}/link_psram_8m_cco_plc_only.lds ${target_chip_resource_dir}/ld/link_cco_plc.lds fi fi if [ -e ${src_ld_dir}/sec_cpu_cco.addrs.ld ]; then cp ${src_ld_dir}/sec_cpu_cco.addrs.ld ${target_chip_resource_dir}/ld/ fi elif [ "${img_type_lower}" == "sta" ]; then if [ "${core_type_lower}" == "ampplc" ]; then if [ "${psram_size}" == "0" ]; then if [ "${boot_opt}" == "fastboot" ]; then cp ${src_ld_dir}/link_flash_2m_cus_sta.lds ${target_chip_resource_dir}/ld/link_sta_amp_cus_fb.lds else cp ${src_ld_dir}/link_flash_2m_cus_sta.lds ${target_chip_resource_dir}/ld/link_sta_amp_cus.lds fi cp ${src_ld_dir}/link_flash_2m_sta.lds ${target_chip_resource_dir}/ld/link_sta_amp_plc.lds else cp ${src_ld_dir}/link_psram_8m_cus_sta.lds ${target_chip_resource_dir}/ld/link_sta_amp_cus.lds cp ${src_ld_dir}/link_psram_8m_sta.lds ${target_chip_resource_dir}/ld/link_sta_amp_plc.lds fi else if [ "${psram_size}" == "0" ]; then if [ "${flash_size}" == "2" ]; then cp ${src_ld_dir}/link_flash_2m_sta_plc_only.lds ${target_chip_resource_dir}/ld/link_sta_plc.lds else cp ${src_ld_dir}/link_flash_4m_sta_plc_only.lds ${target_chip_resource_dir}/ld/link_sta_plc.lds fi else cp ${src_ld_dir}/link_psram_8m_sta_plc_only.lds ${target_chip_resource_dir}/ld/link_sta_plc.lds fi fi if [ -e ${src_ld_dir}/sec_cpu_sta.addrs.ld ]; then cp ${src_ld_dir}/sec_cpu_sta.addrs.ld ${target_chip_resource_dir}/ld/ fi fi if [ -e ${src_ld_dir}/rom.addrs.ld ]; then cp ${src_ld_dir}/rom.addrs.ld ${target_chip_resource_dir}/ld/ fi if [ "${core_type_lower}" == "ampplc" ] && [ -e ${src_ld_dir}/cus.addrs.ld ]; then cp ${src_ld_dir}/cus.addrs.ld ${target_chip_resource_dir}/ld/ fi cp ${src_ld_dir}/link_sbl.lds ${target_chip_resource_dir}/ld #app_lib flag set. if [ "${DEF_LIBAPP}" == "true" ]; then sed -i "s/^APPLIB_ENABLE=./APPLIB_ENABLE=1/" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh else sed -i "s/^APPLIB_ENABLE=./APPLIB_ENABLE=0/" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh fi # add sdk_type flag. sed -i "s/^DEF_SDK_TYPE=.*/DEF_SDK_TYPE=${DEF_SDK_TYPE}/" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh # add sg_type flag. sed -i "s/^DEF_SG_TYPE=.*/DEF_SG_TYPE=${DEF_SG_TYPE}/" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh # add iot version. get_iot_ver ${IOT_VER_FILE} sed -i "s/^IOT_VER=.*/IOT_VER=\"${IOT_VER}\"/g" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh # add git version. cd ${MAINLINE_FOLDER}/../../../ get_git_ver cd - sed -i "s/^GIT_VER=.*/GIT_VER=\"${GIT_VER}\"/g" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh # add board type. sed -i "s/^DEF_BOARD_TYPE=.*/DEF_BOARD_TYPE=\"${platform_type}\"/g" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh #normal mode. sed -i "/^GROUP_NUM=.*/i GROUP_${BUILD_NUM}=(${chip_class_lower} ${chip_id_lower} ${img_type_lower} ${app_lower} ${core_type_lower} ${flash_size} ${psram_size} ${proto_type_lower} ${rf_opt_lower} ${dual_opt_lower} ${boot_opt})" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh ((BUILD_NUM=${BUILD_NUM}+1)) return 0 } sed -i "s/export MBEDTLS_NONE_ROM_EN = 1/export MBEDTLS_NONE_ROM_EN = 0/g" Makefile #start build sdk. echo "==To build all taget==" if [ "${DEF_SDK_TYPE}" == "sg" ]; then for ((index=0; index < SG_GROUP_LENGTH; index++)); do for PT in ${PROTO_TYPE_STR[@]}; do #rf-enable not support protocol 1901. if [ "${PT}" == "p1901" ] && [ "${SG_GROUP_RF_OPT[$index]}" == "RF" ]; then continue fi build_sdk_start ${SG_GROUP_CHIPCLASS[$index]} ${SG_GROUP_CHIPID[$index]} ${SG_GROUP_IMG_TYPE[$index]} SG ${SG_GROUP_CORE_TYPE[$index]} ${SG_GROUP_FLASH_SIZE[$index]} ${SG_GROUP_PSRAM_SIZE[$index]} ${PT} ${SG_GROUP_RF_OPT[$index]} ${SG_GROUP_DUAL_OPT[$index]} normalboot if [ "$?" == "0" ]; then echo "== ${SG_GROUP_CHIPCLASS[$index]} ${SG_GROUP_CHIPID[$index]} ${SG_GROUP_IMG_TYPE[$index]} SG ${SG_GROUP_CORE_TYPE[$index]} "\ "${SG_GROUP_FLASH_SIZE[$index]}M flash ${SG_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${SG_GROUP_RF_OPT[$index]} ${SG_GROUP_DUAL_OPT[$index]} normalboot sdk build successfully==" else echo "== ${SG_GROUP_CHIPCLASS[$index]} ${SG_GROUP_CHIPID[$index]} ${SG_GROUP_IMG_TYPE[$index]} SG ${SG_GROUP_CORE_TYPE[$index]} "\ "${SG_GROUP_FLASH_SIZE[$index]}M flash ${SG_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${SG_GROUP_RF_OPT[$index]} ${SG_GROUP_DUAL_OPT[$index]} normalboot sdk build failed!!!==" fi if [ "${SG_GROUP_CORE_TYPE[$index]}" == "AMPPLC" ]; then build_sdk_start ${SG_GROUP_CHIPCLASS[$index]} ${SG_GROUP_CHIPID[$index]} ${SG_GROUP_IMG_TYPE[$index]} SG ${SG_GROUP_CORE_TYPE[$index]} ${SG_GROUP_FLASH_SIZE[$index]} ${SG_GROUP_PSRAM_SIZE[$index]} ${PT} ${SG_GROUP_RF_OPT[$index]} ${SG_GROUP_DUAL_OPT[$index]} fastboot if [ "$?" == "0" ]; then echo "== ${SG_GROUP_CHIPCLASS[$index]} ${SG_GROUP_CHIPID[$index]} ${SG_GROUP_IMG_TYPE[$index]} SG ${SG_GROUP_CORE_TYPE[$index]} "\ "${SG_GROUP_FLASH_SIZE[$index]}M flash ${SG_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${SG_GROUP_RF_OPT[$index]} ${SG_GROUP_DUAL_OPT[$index]} fastboot sdk build successfully==" else echo "== ${SG_GROUP_CHIPCLASS[$index]} ${SG_GROUP_CHIPID[$index]} ${SG_GROUP_IMG_TYPE[$index]} SG ${SG_GROUP_CORE_TYPE[$index]} "\ "${SG_GROUP_FLASH_SIZE[$index]}M flash ${SG_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${SG_GROUP_RF_OPT[$index]} ${SG_GROUP_DUAL_OPT[$index]} fastboot sdk build failed!!!==" fi fi done done elif [ "${DEF_SDK_TYPE}" == "sg_ext" ]; then for ((index=0; index < SG_EXT_GROUP_LENGTH; index++)); do for PT in ${PROTO_TYPE_STR[@]}; do #rf-enable not support protocol 1901. if [ "${PT}" == "p1901" ] && [ "${SG_EXT_GROUP_RF_OPT[$index]}" == "RF" ]; then continue fi build_sdk_start ${SG_EXT_GROUP_CHIPCLASS[$index]} ${SG_EXT_GROUP_CHIPID[$index]} ${SG_EXT_GROUP_IMG_TYPE[$index]} SG_EXT ${SG_EXT_GROUP_CORE_TYPE[$index]} ${SG_EXT_GROUP_FLASH_SIZE[$index]} ${SG_EXT_GROUP_PSRAM_SIZE[$index]} ${PT} ${SG_EXT_GROUP_RF_OPT[$index]} ${SG_EXT_GROUP_DUAL_OPT[$index]} normalboot if [ "$?" == "0" ]; then echo "== ${SG_EXT_GROUP_CHIPCLASS[$index]} ${SG_EXT_GROUP_CHIPID[$index]} ${SG_EXT_GROUP_IMG_TYPE[$index]} SG_EXT ${SG_EXT_GROUP_CORE_TYPE[$index]} "\ "${SG_EXT_GROUP_FLASH_SIZE[$index]}M flash ${SG_EXT_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${SG_EXT_GROUP_RF_OPT[$index]} ${SG_EXT_GROUP_DUAL_OPT[$index]} normalboot sdk build successfully==" else echo "== ${SG_EXT_GROUP_CHIPCLASS[$index]} ${SG_EXT_GROUP_CHIPID[$index]} ${SG_EXT_GROUP_IMG_TYPE[$index]} SG_EXT ${SG_EXT_GROUP_CORE_TYPE[$index]} "\ "${SG_EXT_GROUP_FLASH_SIZE[$index]}M flash ${SG_EXT_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${SG_EXT_GROUP_RF_OPT[$index]} ${SG_EXT_GROUP_DUAL_OPT[$index]} normalboot sdk build failed!!!==" fi if [ "${SG_EXT_GROUP_CORE_TYPE[$index]}" == "AMPPLC" ]; then build_sdk_start ${SG_EXT_GROUP_CHIPCLASS[$index]} ${SG_EXT_GROUP_CHIPID[$index]} ${SG_EXT_GROUP_IMG_TYPE[$index]} SG_EXT ${SG_EXT_GROUP_CORE_TYPE[$index]} ${SG_EXT_GROUP_FLASH_SIZE[$index]} ${SG_EXT_GROUP_PSRAM_SIZE[$index]} ${PT} ${SG_EXT_GROUP_RF_OPT[$index]} ${SG_EXT_GROUP_DUAL_OPT[$index]} fastboot if [ "$?" == "0" ]; then echo "== ${SG_EXT_GROUP_CHIPCLASS[$index]} ${SG_EXT_GROUP_CHIPID[$index]} ${SG_EXT_GROUP_IMG_TYPE[$index]} SG_EXT ${SG_EXT_GROUP_CORE_TYPE[$index]} "\ "${SG_EXT_GROUP_FLASH_SIZE[$index]}M flash ${SG_EXT_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${SG_EXT_GROUP_RF_OPT[$index]} ${SG_EXT_GROUP_DUAL_OPT[$index]} fastboot sdk build successfully==" else echo "== ${SG_EXT_GROUP_CHIPCLASS[$index]} ${SG_EXT_GROUP_CHIPID[$index]} ${SG_EXT_GROUP_IMG_TYPE[$index]} SG_EXT ${SG_EXT_GROUP_CORE_TYPE[$index]} "\ "${SG_EXT_GROUP_FLASH_SIZE[$index]}M flash ${SG_EXT_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${SG_EXT_GROUP_RF_OPT[$index]} ${SG_EXT_GROUP_DUAL_OPT[$index]} fastboot sdk build failed!!!==" fi fi done done elif [ "${DEF_SDK_TYPE}" == "iot" ] || [ "${DEF_SDK_TYPE}" == "iot_ext" ]; then #iot sdk not support fastboot fireware because of poor flash. for ((index=0; index < DEMO_GROUP_LENGTH; index++)); do for PT in ${PROTO_TYPE_STR[@]}; do #rf-enable not support protocol 1901. if [ "${PT}" == "p1901" ] && [ "${DEMO_GROUP_RF_OPT[$index]}" == "RF" ]; then continue fi build_sdk_start ${DEMO_GROUP_CHIPCLASS[$index]} ${DEMO_GROUP_CHIPID[$index]} ${DEMO_GROUP_IMG_TYPE[$index]} DEMO ${DEMO_GROUP_CORE_TYPE[$index]} ${DEMO_GROUP_FLASH_SIZE[$index]} ${DEMO_GROUP_PSRAM_SIZE[$index]} ${PT} ${DEMO_GROUP_RF_OPT[$index]} ${DEMO_GROUP_DUAL_OPT[$index]} normalboot if [ "$?" == "0" ]; then echo "== ${DEMO_GROUP_CHIPCLASS[$index]} ${DEMO_GROUP_CHIPID[$index]} ${DEMO_GROUP_IMG_TYPE[$index]} DEMO ${DEMO_GROUP_CORE_TYPE[$index]} "\ "${DEMO_GROUP_FLASH_SIZE[$index]}M flash ${DEMO_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${DEMO_GROUP_RF_OPT[$index]} ${DEMO_GROUP_DUAL_OPT[$index]} normalboot sdk build successfully==" else echo "== ${DEMO_GROUP_CHIPCLASS[$index]} ${DEMO_GROUP_CHIPID[$index]} ${DEMO_GROUP_IMG_TYPE[$index]} DEMO ${DEMO_GROUP_CORE_TYPE[$index]} "\ "${DEMO_GROUP_FLASH_SIZE[$index]}M flash ${DEMO_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${DEMO_GROUP_RF_OPT[$index]} ${DEMO_GROUP_DUAL_OPT[$index]} normalboot sdk build failed!!!==" fi done done for ((index=0; index < CUS_AT_GROUP_LENGTH; index++)); do for PT in ${PROTO_TYPE_STR[@]}; do #rf-enable not support protocol 1901. if [ "${PT}" == "p1901" ] && [ "${CUS_AT_GROUP_RF_OPT[$index]}" == "RF" ]; then continue fi build_sdk_start ${CUS_AT_GROUP_CHIPCLASS[$index]} ${CUS_AT_GROUP_CHIPID[$index]} ${CUS_AT_GROUP_IMG_TYPE[$index]} CUS_AT ${CUS_AT_GROUP_CORE_TYPE[$index]} ${CUS_AT_GROUP_FLASH_SIZE[$index]} ${CUS_AT_GROUP_PSRAM_SIZE[$index]} ${PT} ${CUS_AT_GROUP_RF_OPT[$index]} ${CUS_AT_GROUP_DUAL_OPT[$index]} normalboot if [ "$?" == "0" ]; then echo "== ${CUS_AT_GROUP_CHIPCLASS[$index]} ${CUS_AT_GROUP_CHIPID[$index]} ${CUS_AT_GROUP_IMG_TYPE[$index]} CUS_AT ${CUS_AT_GROUP_CORE_TYPE[$index]} "\ "${CUS_AT_GROUP_FLASH_SIZE[$index]}M flash ${CUS_AT_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${CUS_AT_GROUP_RF_OPT[$index]} ${CUS_AT_GROUP_DUAL_OPT[$index]} normalboot sdk build successfully==" else echo "== ${CUS_AT_GROUP_CHIPCLASS[$index]} ${CUS_AT_GROUP_CHIPID[$index]} ${CUS_AT_GROUP_IMG_TYPE[$index]} CUS_AT ${CUS_AT_GROUP_CORE_TYPE[$index]} "\ "${CUS_AT_GROUP_FLASH_SIZE[$index]}M flash ${CUS_AT_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${CUS_AT_GROUP_RF_OPT[$index]} ${CUS_AT_GROUP_DUAL_OPT[$index]} normalboot sdk build failed!!!==" fi done done for ((index=0; index < CUS_AT_GROUP_LENGTH; index++)); do if [ "${DEF_LIBAPP}" == "true" ] && [ "${CUS_AT_GROUP_CORE_TYPE[$index]}" == "PLC" ]; then continue fi for PT in ${PROTO_TYPE_STR[@]}; do #rf-enable not support protocol 1901. if [ "${PT}" == "p1901" ] && [ "${CUS_AT_GROUP_RF_OPT[$index]}" == "RF" ]; then continue fi build_sdk_start ${CUS_AT_GROUP_CHIPCLASS[$index]} ${CUS_AT_GROUP_CHIPID[$index]} ${CUS_AT_GROUP_IMG_TYPE[$index]} SILA ${CUS_AT_GROUP_CORE_TYPE[$index]} ${CUS_AT_GROUP_FLASH_SIZE[$index]} ${CUS_AT_GROUP_PSRAM_SIZE[$index]} ${PT} ${CUS_AT_GROUP_RF_OPT[$index]} ${CUS_AT_GROUP_DUAL_OPT[$index]} normalboot if [ "$?" == "0" ]; then echo "== ${CUS_AT_GROUP_CHIPCLASS[$index]} ${CUS_AT_GROUP_CHIPID[$index]} ${CUS_AT_GROUP_IMG_TYPE[$index]} SILA ${CUS_AT_GROUP_CORE_TYPE[$index]} "\ "${CUS_AT_GROUP_FLASH_SIZE[$index]}M flash ${CUS_AT_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${CUS_AT_GROUP_RF_OPT[$index]} ${CUS_AT_GROUP_DUAL_OPT[$index]} normalboot sdk build successfully==" else echo "== ${CUS_AT_GROUP_CHIPCLASS[$index]} ${CUS_AT_GROUP_CHIPID[$index]} ${CUS_AT_GROUP_IMG_TYPE[$index]} SILA ${CUS_AT_GROUP_CORE_TYPE[$index]} "\ "${CUS_AT_GROUP_FLASH_SIZE[$index]}M flash ${CUS_AT_GROUP_PSRAM_SIZE[$index]}M psram ${PT} ${CUS_AT_GROUP_RF_OPT[$index]} ${CUS_AT_GROUP_DUAL_OPT[$index]} normalboot sdk build failed!!!==" fi done done fi #generate boards resource. gen_boards_resource echo "==Build all target successfully, dir location : ${TARGET_SDK_FOLDER}==" sed -i "s/^GROUP_NUM=.*/GROUP_NUM=${BUILD_NUM}/" ${TARGET_SDK_FOLDER}/build/build_target_firmware.sh