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