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