277 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			277 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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########################
 |