Files
kunlun/build/build_kl3_sdk_gen.sh
2024-09-28 14:24:04 +08:00

936 lines
48 KiB
Bash
Executable File

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