#!/bin/bash rm ../Makefile 2>/dev/null IMG_TYPE=$(echo $1 | tr '[A-Z]' '[a-z]') APP_SELECTION=$2 INPUT_FLASH_SIZE=$(echo $3 | tr '[A-Z]' '[a-z]') INPUT_PSRAM_SIZE=$(echo $4 | tr '[A-Z]' '[a-z]') INPUT_CHIP=$(echo $5 | tr '[a-z]' '[A-Z]') DBUG_RELS=$(echo $6 | tr '[A-Z]' '[a-z]') CHIP_VER=$(echo $7 | tr '[A-Z]' '[a-z]') PHASE_OPTION="PLC_SUPPORT_3_PHASE=0" CHIP_STRING1=("HZ" "WQ") CUSTOM_STRING1=("htzd" "ledc" "ledc_3p0" "stamp_22p" "si301x_30p" "goldfinger_17p" "d2d" "cctt" "mppt" "htr") CHIP_STRING2=("NA") CUSTOM_STRING2=("htzd" "wqrd" "cplt") if [ "$1" = "" ] || [ "$1" = "?" ]; then echo "build script parameters error" echo "[Usage]" echo "$0 [role type] [app id] [flash size] [psram_size] [chip type] [fw attr] [chip ver]" echo "[role type]: cco/sta" echo "[app id]: 2:plc_uart:3:demo/4:ge/8:ge_lwip/9:ge_ext/12:demo_lwip/18:cus_at/22:ge_micro/24:sila/25:at_micro/26:iot_dl645" echo "[flash size]: 1m/2m/4m" echo "[psram size]: 0m/4m" echo "[chip type]: hz/wq" echo "[fw attr]: debug/release" echo "[chip ver]: kl1/kl2" echo "example: ./build_flash_smart.sh cco 3 1m 4m hz release kl1" exit 1 fi cd ../tools/gen_img rm -f *.map rm -f *.bin rm -f *.bin.fw rm -f *.out cd - rm -f ../Makefile ln -s ./build/Makefile ../Makefile set -o errexit if [ "$DBUG_RELS" != "release" ]; then DBUG_RELS="debug" fi if [ "$CHIP_VER" != "kl2" ]; then CHIP_VER="kl1" CHIP="${CHIP_STRING1[0]}" for STR in ${CHIP_STRING1[@]}; do if [ "$INPUT_CHIP" == "$STR" ]; then CHIP="$INPUT_CHIP" fi done else CHIP="${CHIP_STRING2[0]}" for STR in ${CHIP_STRING2[@]}; do if [ "$INPUT_CHIP" == "$STR" ]; then CHIP="$INPUT_CHIP" fi done fi CHIP_MAKE="HW_CHIP_ID=$CHIP" CUST_APP="unknown" if [ $APP_SELECTION == 2 ]; then CUST_APP="plc_uart" elif [ $APP_SELECTION == 3 ]; then CUST_APP="demo" elif [ $APP_SELECTION == 4 ]; then CUST_APP="ge" elif [ $APP_SELECTION == 8 ]; then CUST_APP="ge_lwip" elif [ $APP_SELECTION == 9 ]; then CUST_APP="ge_ext" elif [ $APP_SELECTION == 12 ]; then CUST_APP="demo_lwip" elif [ $APP_SELECTION == 18 ]; then CUST_APP="cus_at" elif [ $APP_SELECTION == 22 ]; then CUST_APP="ge_micro" elif [ $APP_SELECTION == 24 ]; then CUST_APP="sila" elif [ $APP_SELECTION == 25 ]; then CUST_APP="at_micro" elif [ $APP_SELECTION == 26 ]; then CUST_APP="iot_dl645" else echo "Unknown APP = $APP_SELECTION!!!" echo "3:demo, 4:ge, 8:ge_lwip, 9:ge_ext, 12:demo_lwip, 18:cus_at, 22:ge_micro, 24:sila, 25:at_micro, 26:iot_dl645" exit 2 fi if [ "$INPUT_FLASH_SIZE" == "4m" ]; then FLASH_SIZE_nM=4 elif [ "$INPUT_FLASH_SIZE" == "2m" ]; then FLASH_SIZE_nM=2 else FLASH_SIZE_nM=1 fi if [ "$INPUT_PSRAM_SIZE" == "0m" ]; then PSRAM_SIZE_nM=0 else #default 4m psram. PSRAM_SIZE_nM=4 fi if [ "$INPUT_PSRAM_SIZE" == "0m" ]; then if [ "$INPUT_FLASH_SIZE" == "1m" ]; then export layout_index=0 elif [ "$INPUT_FLASH_SIZE" == "2m" ]; then export layout_index=1 elif [ "$INPUT_FLASH_SIZE" == "4m" ]; then export layout_index=3 fi else if [ "$INPUT_FLASH_SIZE" == "1m" ]; then export layout_index=0 elif [ "$INPUT_FLASH_SIZE" == "2m" ]; then export layout_index=2 elif [ "$INPUT_FLASH_SIZE" == "4m" ]; then export layout_index=4 fi fi if [ "$IMG_TYPE" == "cco" ]; then # cco : 1 export smart_cco_sta=1 export flash_size=$FLASH_SIZE_nM #run in flash or psram if [ "$INPUT_PSRAM_SIZE" == "0m" ]; then export psram_enable=0 export psram_size=0 RUN_IN="flash" MEMORY_SCALE="small" else export psram_enable=1 export psram_size=$PSRAM_SIZE_nM RUN_IN="psram" MEMORY_SCALE="large" fi if [ "$CHIP_VER" == "kl2" ]; then #always use 4m flash FLASH_SIZE_nM=4 INPUT_FLASH_SIZE="4m" . env_flash_smart_kl2.sh $IMG_TYPE $APP_SELECTION $DBUG_RELS $INPUT_FLASH_SIZE $INPUT_PSRAM_SIZE else . env_flash_smart.sh $IMG_TYPE $APP_SELECTION $DBUG_RELS $INPUT_FLASH_SIZE $INPUT_PSRAM_SIZE fi sdk_bin_dir="../tools/gen_img/lib_sdk_source/${IMG_TYPE}_${APP_SELECTION}_${INPUT_FLASH_SIZE}_${INPUT_PSRAM_SIZE}_${CHIP_VER}_$(echo ${CHIP} | tr '[A-Z]' '[a-z]')_${DBUG_RELS}" mkdir -p $sdk_bin_dir # make 3p cco. make -C .. clobber make ${CHIP_MAKE} PLATFORM=CHIP cco=1 APP=$APP_SELECTION FLASH_SIZE=$FLASH_SIZE_nM -C .. cp ../ap/.output/lib/ht_cco.bin ../tools/gen_img/iot_ht_3p.bin cp ../ap/.output/lib/ht_cco.out ../tools/gen_img/ht_3p.out cp ../export/lib/libht_${IMG_TYPE}.a ${sdk_bin_dir}/libht_${IMG_TYPE}_3p.a # make 1p cco. make -C .. clobber make ${CHIP_MAKE} PLATFORM=CHIP cco=1 APP=$APP_SELECTION FLASH_SIZE=$FLASH_SIZE_nM ${PHASE_OPTION} -C .. if [ "$CHIP_VER" != "kl2" ]; then . clean_env_flash_smart.sh $IMG_TYPE $APP_SELECTION fi cp ../ap/.output/lib/ht_cco.bin ../tools/gen_img/iot_ht_1p.bin cp ../ap/.output/lib/ht_cco.out ../tools/gen_img/ht_1p.out cp ../export/lib/libht_${IMG_TYPE}.a ${sdk_bin_dir}/libht_${IMG_TYPE}_1p.a cp ../export/lib/libapp.a ${sdk_bin_dir}/lib${IMG_TYPE}_app.a cp ../sbl/.output/lib/kunlun_sbl.bin $sdk_bin_dir/sbl.bin cp ../sp/boot/.output/lib/sp_fw.bin $sdk_bin_dir/sp.bin elif [ "$IMG_TYPE" == "sta" ]; then #sta : 2 export smart_cco_sta=2 export flash_size=$FLASH_SIZE_nM #run in flash or psram if [ "$INPUT_PSRAM_SIZE" == "0m" ]; then export psram_enable=0 export psram_size=0 RUN_IN="flash" MEMORY_SCALE="small" else export psram_enable=1 export psram_size=$PSRAM_SIZE_nM RUN_IN="psram" MEMORY_SCALE="large" fi if [ "$CHIP_VER" == "kl2" ]; then #always use 4m flash FLASH_SIZE_nM=4 INPUT_FLASH_SIZE="4m" . env_flash_smart_kl2.sh $IMG_TYPE $APP_SELECTION $DBUG_RELS $INPUT_FLASH_SIZE $INPUT_PSRAM_SIZE else . env_flash_smart.sh $IMG_TYPE $APP_SELECTION $DBUG_RELS $INPUT_FLASH_SIZE $INPUT_PSRAM_SIZE fi make -C .. clobber make ${CHIP_MAKE} PLATFORM=CHIP cco=0 APP=$APP_SELECTION FLASH_SIZE=$FLASH_SIZE_nM -C .. if [ "$CHIP_VER" != "kl2" ]; then . clean_env_flash_smart.sh $IMG_TYPE $APP_SELECTION fi cp ../ap/.output/lib/ht_sta.bin ../tools/gen_img/ht.bin cp ../ap/.output/lib/ht_sta.out ../tools/gen_img/ht.out sdk_bin_dir="../tools/gen_img/lib_sdk_source/${IMG_TYPE}_${APP_SELECTION}_${INPUT_FLASH_SIZE}_${INPUT_PSRAM_SIZE}_${CHIP_VER}_$(echo ${CHIP} | tr '[A-Z]' '[a-z]')_${DBUG_RELS}" mkdir -p $sdk_bin_dir cp ../export/lib/libht_${IMG_TYPE}.a $sdk_bin_dir cp ../export/lib/libapp.a $sdk_bin_dir/lib${IMG_TYPE}_app.a cp ../sbl/.output/lib/kunlun_sbl.bin $sdk_bin_dir/sbl.bin cp ../sp/boot/.output/lib/sp_fw.bin $sdk_bin_dir/sp.bin fi cp ../export/lib/macro_config.ini $sdk_bin_dir sed -i "s/ /\n/g" $sdk_bin_dir/macro_config.ini sed -i "/IOT_APP_SELECTION=.*/d" $sdk_bin_dir/macro_config.ini sed -i "/IOT_SMART_CONFIG=.*/d" $sdk_bin_dir/macro_config.ini sed -i "/PLC_SUPPORT_CCO_ROLE=.*/d" $sdk_bin_dir/macro_config.ini sed -i "/PLC_SUPPORT_3_PHASE=.*/d" $sdk_bin_dir/macro_config.ini if [ $FLASH_SIZE_nM == 4 ]; then if [ "$CHIP_VER" == "kl2" ]; then for STR in ${CUSTOM_STRING2[@]}; do if [ "$STR" == "htzd" ] && [ "$IMG_TYPE" == "cco" ]; then continue fi cd ../tools/gen_img ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG_TYPE} -r ${RUN_IN} -a ${CUST_APP} \ -v ${DBUG_RELS} -m lzma -s 4m -b 2 -p ${PSRAM_SIZE_nM} cd - done else for STR in ${CUSTOM_STRING1[@]}; do if [ "$STR" == "gprs" ] && [ "$IMG_TYPE" == "sta" ]; then continue fi if [ "$STR" == "cctt" ] && [ "$IMG_TYPE" == "sta" ]; then continue fi if [ "$STR" == "mppt" ] && [ "$IMG_TYPE" == "sta" ]; then continue fi cd ../tools/gen_img ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG_TYPE} -r ${RUN_IN} -a ${CUST_APP} \ -v ${DBUG_RELS} -m lzma -s 4m -p ${PSRAM_SIZE_nM} cd - done fi elif [ $FLASH_SIZE_nM == 2 ]; then for STR in ${CUSTOM_STRING1[@]}; do if [ "$STR" == "gprs" ] && [ "$IMG_TYPE" == "sta" ]; then continue fi if [ "$STR" == "cctt" ] && [ "$IMG_TYPE" == "sta" ]; then continue fi cd ../tools/gen_img ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG_TYPE} -r ${RUN_IN} -a ${CUST_APP} \ -v ${DBUG_RELS} -m lzma -s 2m -p ${PSRAM_SIZE_nM} cd - done elif [ $FLASH_SIZE_nM == 1 ]; then for STR in ${CUSTOM_STRING1[@]}; do if [ "$STR" == "gprs" ] && [ "$IMG_TYPE" == "sta" ]; then continue fi if [ "$STR" == "cctt" ] && [ "$IMG_TYPE" == "sta" ]; then continue fi if [ "$STR" == "mppt" ] && [ "$IMG_TYPE" == "sta" ]; then continue fi cd ../tools/gen_img if [ "$MEMORY_SCALE" == "large" ]; then ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG_TYPE} -r ${RUN_IN} -a ${CUST_APP} \ -v ${DBUG_RELS} -m lzma -p ${PSRAM_SIZE_nM} else ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG_TYPE} -r ${RUN_IN} -a ${CUST_APP} \ -v ${DBUG_RELS} -p ${PSRAM_SIZE_nM} fi cd - done fi if [ ! -d ../bin ]; then mkdir -p ../bin fi cp -rf ../tools/gen_img/customer ../bin