chip_id=$1 flash_type=$2 BUILD_BRANCH=$3 BUILD_TAG=$4 echo "build log:start build" ${chip_id} ${flash_type} ${BUILD_BRANCH} ${BUILD_TAG} tool_path=../tools dest_rootpath=../tools/gen_img/lib_sg_sdk cmake_folder="../../SDKCmake" mainline_path="../" customer_path="../tools/gen_img/customer" export_inc_path=../export/inc/ CHIP_ID=$(echo $chip_id | tr '[a-z]' '[A-Z]') # HZ WQ CHIP_STRING=("HZ" "WQ") FLASH_TYPE=$(echo $flash_type | tr '[a-z]' '[A-Z]') # 1M 2M 2K 2P 4M 4P customer_list=("htzd" "jsmt" "gldq") customer_num=${#customer_list[*]} module_list=("cco" "iic" "sta" "3ps") module_num=${#module_list[*]} pib_list=("09" "default" "09_LP" "LP") pib_num=${#pib_list[*]} FLASH_TYPE_STRING=("1m" "2m" "2k" "2p" "4m" "4p") flash_type_num=${#FLASH_TYPE_STRING[*]} GROUP_CCO_PSRAM=(4 4 8 4 8 8) GROUP_CCO_FLASH=(1 1 1 1 4 4) GROUP_STA_PSRAM=(0 0 2 2 0 2) GROUP_STA_FLASH=(1 2 2 2 4 4) #print help info. if [ "?" == "$1" ]; then echo "*$0 [CHIP_ID] [FLASH_TYPE] [BUILD_BRANCH] [BUILD_TAG]" echo "* [CHIP_ID] -- Optional, to set the chip id, support HZ\WQ." echo "* [FLASH_TYPE] -- Optional, to set the flash type, support as follows." for ((index=0; index < flash_type_num; index++)); do echo "* ${FLASH_TYPE_STRING[$index]} ${GROUP_CCO_BOARD[$index]} (${GROUP_CCO_FLASH[$index]}M flash ${GROUP_CCO_PSRAM[$index]}M psram) + " \ "sta ${GROUP_STA_BOARD[$index]} (${GROUP_STA_FLASH[$index]}M flash ${GROUP_STA_PSRAM[$index]}M psram)" done echo "* [BUILD_BRANCH] -- Optional, to set the build branch." echo "* [BUILD_TAG] -- Optional, to set the build tag." exit 0 fi set -o errexit if [ "$CHIP_ID" == "" ]; then CHIP_ID=${CHIP_STRING[0]} INPUT_CHIP_OK=1 else for STR in ${CHIP_STRING[@]}; do if [ "$CHIP_ID" == "$STR" ]; then INPUT_CHIP_OK=1 break fi done fi if [ "$FLASH_TYPE" == "" ]; then FLASH_TYPE=${FLASH_TYPE_STRING[0]} INPUT_FLASH_OK=1 else for STR in ${FLASH_TYPE_STRING[@]}; do if [ "$FLASH_TYPE" == "$STR" ]; then INPUT_FLASH_OK=1 break fi done fi if [ "$INPUT_CHIP_OK" != "1" ] || [ "$INPUT_CHIP_OK" != "1" ]; then echo "build param error, chip_id:${CHIP_ID}, flash_type:${FLASH_TYPE}." exit 1 fi for((i=0;i<$customer_num;i++)) do mkdir -p $dest_rootpath/${customer_list[i]}/bin mkdir -p $dest_rootpath/${customer_list[i]}/sdk/bin mkdir -p $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app mkdir -p $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts mkdir -p $dest_rootpath/${customer_list[i]}/sdk/ld mkdir -p $dest_rootpath/${customer_list[i]}/sdk/tools mkdir -p $dest_rootpath/${customer_list[i]}/sdk/cmake cp -r $mainline_path/app/smart_grid $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app cp -r $cmake_folder/iot_sg_app/CMakeLists.txt $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app cp -r $cmake_folder/iot_sg_app/main.c $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app cp -r $mainline_path/export/* $dest_rootpath/${customer_list[i]}/sdk cp -r $cmake_folder/cmake/* $dest_rootpath/${customer_list[i]}/sdk/cmake if [ ${FLASH_TYPE} == "4P" ];then cp $mainline_path/startup/ldscripts/riscv/link_psram_8m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds cp $mainline_path/startup/ldscripts/riscv/link_psram_2m_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds elif [ ${FLASH_TYPE} == "4M" ];then cp $mainline_path/startup/ldscripts/riscv/link_psram_8m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds cp $mainline_path/startup/ldscripts/riscv/link_flash_4m_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds elif [ ${FLASH_TYPE} == "2P" ];then cp $mainline_path/startup/ldscripts/riscv/link_psram_4m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds cp $mainline_path/startup/ldscripts/riscv/link_psram_2m_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds elif [ ${FLASH_TYPE} == "2K" ];then cp $mainline_path/startup/ldscripts/riscv/link_psram_8m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds cp $mainline_path/startup/ldscripts/riscv/link_psram_2m_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds else cp $mainline_path/startup/ldscripts/riscv/link_psram_4m_cco.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_cco.lds cp $mainline_path/startup/ldscripts/riscv/link_flash_sta.lds $dest_rootpath/${customer_list[i]}/sdk/ld/link_flash_sta.lds fi if [ -e $mainline_path/startup/ldscripts/riscv/sp_cco.addrs.ld ];then cp $mainline_path/startup/ldscripts/riscv/sp_cco.addrs.ld $dest_rootpath/${customer_list[i]}/sdk/ld fi if [ -e $mainline_path/startup/ldscripts/riscv/sp_sta.addrs.ld ];then cp $mainline_path/startup/ldscripts/riscv/sp_sta.addrs.ld $dest_rootpath/${customer_list[i]}/sdk/ld fi if [ -e $mainline_path/startup/ldscripts/riscv/sp.addrs.ld ];then cp $mainline_path/startup/ldscripts/riscv/sp.addrs.ld $dest_rootpath/${customer_list[i]}/sdk/ld fi if [ -e $mainline_path/startup/ldscripts/riscv/rom.addrs.ld ];then cp $mainline_path/startup/ldscripts/riscv/rom.addrs.ld $dest_rootpath/${customer_list[i]}/sdk/ld fi cp $mainline_path/tools/gen_img/ah $dest_rootpath/${customer_list[i]}/sdk/tools if [ -e $mainline_path/tools/gen_img/elzma ];then cp $mainline_path/tools/gen_img/elzma $dest_rootpath/${customer_list[i]}/sdk/tools fi for((j=0;j<$module_num;j++)) do if [ ${FLASH_TYPE} == "4M" ] || [ ${FLASH_TYPE} == "4P" ]; then bin_size=4M elif [ ${module_list[j]}x == "cco"x ];then bin_size=1M else bin_size=2M fi if [ ! -d ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]} ];then continue fi mkdir -p $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]} if [ ${FLASH_TYPE} == "4M" ]; then cp -r $cmake_folder/iot_sg_app/scripts_4m/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts elif [ ${FLASH_TYPE} == "4P" ]; then cp -r $cmake_folder/iot_sg_app/scripts_4m_psram/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts elif [ ${FLASH_TYPE} == "2K" ]; then cp -r $cmake_folder/iot_sg_app/scripts_2k/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts elif [ ${FLASH_TYPE} == "2P" ]; then cp -r $cmake_folder/iot_sg_app/scripts_2m_psram/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts elif [ ${FLASH_TYPE} == "2M" ]; then cp -r $cmake_folder/iot_sg_app/scripts_2m/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts else cp -r $cmake_folder/iot_sg_app/scripts/* $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts fi module_case=`echo ${module_list[j]}|awk '{print toupper($0)}'` customer_case=`echo ${customer_list[i]}|awk '{print toupper($0)}'` cp -r ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/*OEM.bin $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/oem.bin cp -r ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/kl_ram.bin $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/ram.bin cp -r ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/kunlun_sbl.bin $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/sbl.bin cp -r ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/sp_fw.bin $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/sp.bin for((m=0;m<$pib_num;m++)) do if [ ${pib_list[m]}x != "default"x ];then filename=${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/$customer_case$module_case"01_"${pib_list[m]}"_PIB.bin" else filename=${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/out/$customer_case$module_case"01_PIB.bin" fi echo $filename if [ -e $filename ];then if [ ${pib_list[m]}x == "default"x ];then cp -r $filename $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/pib.bin elif [ ${pib_list[m]}x == "LP"x ];then cp -r $filename $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]}/lp_pib.bin else cp -r $filename $dest_rootpath/${customer_list[i]}/sdk/bin/${module_list[j]} fi cfgfile=$dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts/flash_mapping_${module_list[j]}.cfg if [ ${pib_list[m]}x == "LP"x ];then cfgfile=$dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts/flash_mapping_${module_list[j]}_lp.cfg sed -i "s/key_word=.*/key_word=${CHIP_ID}-SG-${customer_case}${module_case}01-${pib_list[m]}-${BUILD_BRANCH}.${BUILD_TAG}-/g" $cfgfile elif [ ${pib_list[m]}x == "default"x ];then sed -i "s/key_word=.*/key_word=${CHIP_ID}-SG-${customer_case}${module_case}01-${BUILD_BRANCH}.${BUILD_TAG}-/g" $cfgfile fi fi done if [ ${module_list[j]}x == "iic"x ] || [ ${module_list[j]}x == "3ps"x ];then upgradefile=${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/bin/*UPGRADE*.bin rm -f $upgradefile fi cp ${customer_path}/${bin_size}/${customer_list[i]}/${module_list[j]}/bin/*.bin $dest_rootpath/${customer_list[i]}/bin cd $dest_rootpath/${customer_list[i]}/sdk/examples/iot_sg_app/scripts filepath=build-${module_list[j]}.sh if [ -e $filepath ];then chmod 777 $filepath dos2unix ./$filepath ./$filepath fi cd - done done echo "build log:end build" ${chip_id} ${flash_type} ${BUILD_BRANCH} ${BUILD_TAG}