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
|