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