#!/bin/bash app=$1 board_cco=$(echo $2 | tr '[A-Z]' '[a-z]') flash_cco=$3 psram_cco=$4 board_sta=$(echo $5 | tr '[A-Z]' '[a-z]') flash_sta=$6 psram_sta=$7 chip_id=$(echo $8 | tr '[A-Z]' '[a-z]') debug_release=$(echo $9 | tr '[A-Z]' '[a-z]') chip_type="kl1" # Fix kl1 for now. oem_make_tool="./../tools/gen_img/oem_tool" if [ "$debug_release" != "release" ]; then debug_release="debug" DB_RLS_FLAG="D" else DB_RLS_FLAG="R" fi source_cco_dir="../tools/gen_img/lib_sdk_source/cco_${app}_${flash_cco}m_${psram_cco}m_${chip_type}_${chip_id}_${debug_release}" source_sta_dir="../tools/gen_img/lib_sdk_source/sta_${app}_${flash_sta}m_${psram_sta}m_${chip_type}_${chip_id}_${debug_release}" Mainline_folder="../" cmake_folder="../../SDKCmake" sdk_folder="../tools/gen_img/sdk_${chip_type}${chip_id}_${app}_${board_cco}${flash_cco}${psram_cco}_${board_sta}${flash_sta}${psram_sta}_${debug_release}/sdk" readme="app:${app}-chip:${chip_id}-cco.board:${board_cco}.flash:${flash_cco}M.psram:${psram_cco}M-sta.board:${board_sta}.flash:${flash_sta}M.psram:${psram_sta}M-${debug_release}" chip_id_u=$(echo ${chip_id} | tr '[a-z]' '[A-Z]') board_cco_u=$(echo $board_cco | tr '[a-z]' '[A-Z]') board_sta_u=$(echo $board_sta | tr '[a-z]' '[A-Z]') rm -rf $sdk_folder mkdir -p $sdk_folder echo "$readme" echo "$readme @ $sdk_folder" > "$sdk_folder/rm.txt" set -o errexit #prepare bin sdk_bins=("sbl.bin" "sp.bin") dst_sta_bin_dir="$sdk_folder/bin/sta" dst_cco_bin_dir="$sdk_folder/bin/cco" mkdir -p ./$dst_sta_bin_dir mkdir -p ./$dst_cco_bin_dir for bin_file in ${sdk_bins[@]}; do if [ ! -f $source_sta_dir/$bin_file ] || [ ! -f $source_cco_dir/$bin_file ]; then if [ ! -f "$source_sta_dir/$bin_file" ]; then echo "file not exist : $source_sta_dir/$bin_file" else echo "file not exist : $source_cco_dir/$bin_file" fi exit 1 fi cp -f "$source_sta_dir/$bin_file" $dst_sta_bin_dir cp -f "$source_cco_dir/$bin_file" $dst_cco_bin_dir done OEM_STA_INI=$Mainline_folder$"/tools/oem/"${board_sta_u}"STA01_OEM.ini" OEM_CCO_INI=$Mainline_folder$"/tools/oem/"${board_cco_u}"CCO01_OEM.ini" if [ ! -f $OEM_STA_INI ] || [ ! -f $OEM_CCO_INI ]; then if [ ! -f $OEM_STA_INI ]; then echo "file not exist : $OEM_STA_INI" else echo "file not exist : $OEM_CCO_INI" fi exit 1 fi $oem_make_tool --input=$OEM_STA_INI --output=$dst_sta_bin_dir/oem.bin $oem_make_tool --input=$OEM_CCO_INI --output=$dst_cco_bin_dir/oem.bin PIB_STA_FILE=$Mainline_folder"/tools/pib/"${board_sta_u}"STA01_PIB.bin" PIB_CCO_FILE=$Mainline_folder"/tools/pib/"${board_cco_u}"CCO01_PIB.bin" if [ ! -f $PIB_STA_FILE ] || [ ! -f $PIB_CCO_FILE ]; then if [ ! -f $PIB_STA_FILE ]; then echo "file not exist : $PIB_STA_FILE" else echo "file not exist : $PIB_CCO_FILE" fi exit 1 fi cp -f $PIB_STA_FILE $dst_sta_bin_dir/pib.bin cp -f $PIB_CCO_FILE $dst_cco_bin_dir/pib.bin #prepare cmake cp -rf $cmake_folder/cmake $sdk_folder #prepare inc cp -rf $Mainline_folder/export/inc $sdk_folder #prepare ld src_ld_dir="$Mainline_folder/startup/ldscripts/riscv" dst_ld_dir="$sdk_folder/ld" mkdir -p $dst_ld_dir if [ "$psram_sta" == "0" ]; then cp -f $src_ld_dir/link_flash_smart_sta.lds $dst_ld_dir/link_flash_smart_sta.lds else cp -f $src_ld_dir/link_flash_smart_psram_sta.lds $dst_ld_dir/link_flash_smart_sta.lds fi if [ -d $src_ld_dir/link_flash_smart_psram_${psram_cco}m_cco.lds ]; then cp -f $src_ld_dir/link_flash_smart_psram_${psram_cco}m_cco.lds $dst_ld_dir/link_flash_smart_cco.lds else cp -f $src_ld_dir/link_flash_smart_psram_cco.lds $dst_ld_dir/link_flash_smart_cco.lds fi if [ ! -f "$Mainline_folder/startup/ldscripts/riscv/sp_smart_cco.addrs.ld" ]; then echo "file not exist : $Mainline_folder/startup/ldscripts/riscv/sp_smart_cco.addrs.ld" exit 1 fi if [ ! -f "$Mainline_folder/startup/ldscripts/riscv/sp_smart_sta.addrs.ld" ]; then echo "file not exist : $Mainline_folder/startup/ldscripts/riscv/sp_smart_sta.addrs.ld" exit 1 fi if [ -e $src_ld_dir/rom.addrs.ld ];then cp $src_ld_dir/rom.addrs.ld $dst_ld_dir fi cp -f $Mainline_folder/startup/ldscripts/riscv/sp_smart_cco.addrs.ld $dst_ld_dir cp -f $Mainline_folder/startup/ldscripts/riscv/sp_smart_sta.addrs.ld $dst_ld_dir #prepare lib mkdir $sdk_folder/lib cp -rf $source_sta_dir/*.a $sdk_folder/lib if [ -f $source_cco_dir/libcco_app.a ]; then cp $source_cco_dir/libcco_app.a $sdk_folder/lib fi # copy 3 phase cco lib if [ $board_cco == "htzd" ] && [ $source_cco_dir/libht_cco_3p.a ]; then cp $source_cco_dir/libht_cco_3p.a $sdk_folder/lib/libht_cco.a # copy 1 phase cco lib elif [ -f $source_cco_dir/libht_cco_1p.a ]; then cp $source_cco_dir/libht_cco_1p.a $sdk_folder/lib/libht_cco.a elif [ -f $source_cco_dir/libht_cco.a ]; then cp $source_cco_dir/libht_cco.a $sdk_folder/lib fi #prepare tools mkdir -p $sdk_folder/tools if [ ! -f "$Mainline_folder/tools/gen_img/elzma" ]; then echo "file not exist : $Mainline_folder/tools/gen_img/elzma" exit 1 fi if [ ! -f "$Mainline_folder/tools/gen_img/ah" ]; then echo "file not exist : $Mainline_folder/tools/gen_img/ah" exit 1 fi cp -f $Mainline_folder/tools/gen_img/elzma $sdk_folder/tools cp -f $Mainline_folder/tools/gen_img/ah $sdk_folder/tools #prepare example mkdir -p $sdk_folder/examples ####################### APP = 9 ge-ext app START ########################## if [ "$app" == "9" ]; then sdk_sub_dir="$sdk_folder/examples/iot_ge_ext_app" mkdir $sdk_sub_dir cp -rf $Mainline_folder/app/iot_ge_ext_app $sdk_sub_dir cp -rf $cmake_folder/iot_ge_ext_app/CMakeLists.txt ${sdk_sub_dir}/ cp -rf $cmake_folder/iot_ge_ext_app/main.c ${sdk_sub_dir}/ mkdir -p $sdk_sub_dir/bin mkdir -p $sdk_sub_dir/build_release_cco mkdir -p $sdk_sub_dir/build_release_sta cp -rf $Mainline_folder/app/grapp $sdk_folder/inc echo flash_cco=${flash_cco} flash_sta=${flash_sta} if [ ${flash_cco} == "2" ] && [ ${flash_sta} == "2" ]; then cp -Rf $cmake_folder/iot_ge_ext_app/scripts_2m_2m $sdk_sub_dir/scripts elif [ ${flash_cco} == "4" ] && [ ${flash_sta} == "4" ]; then cp -Rf $cmake_folder/iot_ge_ext_app/scripts_4m_4m $sdk_sub_dir/scripts else cp -rf $cmake_folder/iot_ge_ext_app/scripts $sdk_sub_dir/ fi if [ "$psram_sta" == "0" ]; then rm -f $sdk_sub_dir/scripts/build_sta_psram.sh rm -f $sdk_sub_dir/scripts/smart_sta_psram.cfg else rm -f $sdk_sub_dir/scripts/build-sta.sh rm -f $sdk_sub_dir/scripts/smart_sta.cfg mv $sdk_sub_dir/scripts/build_sta_psram.sh $sdk_sub_dir/scripts/build-sta.sh mv $sdk_sub_dir/scripts/smart_sta_psram.cfg $sdk_sub_dir/scripts/smart_sta.cfg fi # change key_word sed -i "s,key_word=IOT-SMARTCCO01-,key_word=IOT-${chip_id_u}-GE_EXT-${board_cco_u}-SMARTCCO01-${flash_cco}F${psram_cco}P-${DB_RLS_FLAG}-,g" $sdk_sub_dir/scripts/smart_cco.cfg sed -i "s,key_word=IOT-SMARTSTA01-,key_word=IOT-${chip_id_u}-GE_EXT-${board_sta_u}-SMARTSTA01-${flash_sta}F${psram_sta}P-${DB_RLS_FLAG}-,g" $sdk_sub_dir/scripts/smart_sta.cfg #delete *.c find $sdk_folder/inc/grapp/ -name '*.c' |xargs rm -rf fi ####################### APP = 9 END ########################## ####################### APP = 8 ge-lwip app START ########################## if [ "$app" == "8" ]; then cp -rf $cmake_folder/iot_ge_lwip_app $sdk_folder/examples sdk_sub_dir="$sdk_folder/examples/iot_ge_lwip_app" mkdir -p $sdk_sub_dir/bin mkdir -p $sdk_sub_dir/build_release_cco mkdir -p $sdk_sub_dir/build_release_sta cp -rf $Mainline_folder/app/iot_ge_lwip_app $sdk_sub_dir cp -rf $Mainline_folder/import/lwip $sdk_sub_dir/iot_ge_lwip_app/ge_lwip/ cp -rf $Mainline_folder/app/grapp $sdk_folder/inc #delete *.c find $sdk_sub_dir/iot_ge_lwip_app/ge_lwip/lwip/ports -name '*.c' |xargs rm -rf find $sdk_folder/inc/grapp/ -name '*.c' |xargs rm -rf fi ####################### APP = 8 END ########################## ####################### APP = 3 DEMO app START ########################## if [ "$app" == "3" ]; then sdk_sub_dir="$sdk_folder/examples/iot_demo_app" mkdir -p $sdk_sub_dir scripts_dir="scripts_${flash_cco}m_${flash_sta}m" if [ -d $cmake_folder/iot_demo_app/${scripts_dir} ]; then cp -rf $cmake_folder/iot_demo_app/${scripts_dir} ${sdk_sub_dir}/scripts else cp -rf $cmake_folder/iot_demo_app/scripts ${sdk_sub_dir}/ fi cp -rf $cmake_folder/iot_demo_app/CMakeLists.txt ${sdk_sub_dir}/ cp -rf $cmake_folder/iot_demo_app/main.c ${sdk_sub_dir}/ mkdir -p $sdk_sub_dir/bin mkdir -p $sdk_sub_dir/build_release_cco mkdir -p $sdk_sub_dir/build_release_sta cp -rf $Mainline_folder/app/demo $sdk_sub_dir cp -rf $MAINLINE_FOLDER/app/utils/* $sdk_sub_dir if [ "$psram_sta" == "0" ]; then rm -f $sdk_sub_dir/scripts/build-sta_psram.sh rm -f $sdk_sub_dir/scripts/smart_sta_psram.cfg else rm -f $sdk_sub_dir/scripts/build-sta.sh rm -f $sdk_sub_dir/scripts/smart_sta.cfg mv $sdk_sub_dir/scripts/build-sta_psram.sh $sdk_sub_dir/scripts/build-sta.sh mv $sdk_sub_dir/scripts/smart_sta_psram.cfg $sdk_sub_dir/scripts/smart_sta.cfg fi fi ####################### APP = 3 END ########################## ####################### APP = 12 DEMO LWIP app START ########################## if [ "$app" == "12" ]; then sdk_sub_dir="$sdk_folder/examples/iot_demo_lwip_app" cp -rf $cmake_folder/iot_demo_lwip_app $sdk_folder/examples mkdir -p $sdk_sub_dir/bin mkdir -p $sdk_sub_dir/build_release_cco mkdir -p $sdk_sub_dir/build_release_sta mkdir -p $sdk_sub_dir/iot_demo_lwip_app/demo_lwip/ cp -rf $Mainline_folder/app/demo_lwip $sdk_sub_dir cp -rf $Mainline_folder/import/lwip $sdk_sub_dir/iot_demo_lwip_app/demo_lwip/ cp -rf $Mainline_folder/app/demo $sdk_folder/inc #delete *.c find $sdk_sub_dir/iot_demo_lwip_app/demo_lwip/lwip/ports -name '*.c' |xargs rm -rf fi ####################### APP = 12 END ########################## #########################change psram######################### sed -i "s/-DIOT_PSRAM_ENABLE=[0-9]/-DIOT_PSRAM_ENABLE=$psram_sta/g" $sdk_sub_dir/scripts/build-sta.sh sed -i "s/-DIOT_PSRAM_ENABLE=[0-9]/-DIOT_PSRAM_ENABLE=$psram_cco/g" $sdk_sub_dir/scripts/build-cco.sh ######################end change psram########################