Files
kunlun/build/build_flash_smart.sh
2024-09-28 14:24:04 +08:00

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