#!/bin/bash CHIP="" FLASH_SIZE="" PSRAM_SIZE="0m" CUSTOM="" RUN_TYPE="" APP_SEL="" INPUT_CHIP=$1 INPUT_FLASH_SIZE=$2 INPUT_PSRAM_SIZE=$3 INPUT_CUSTOM=$4 INPUT_TYPE=$5 APP_INPUT=$6 CHIP_STRING=("HZ" "WQ") FLASH_SIZE_STRING=("1m" "2m" "4m") CUSTOM_STRING=("htzd" "jsmt" "flx" "wqrd" "gldq" "dmpl" "brmt" "stamp_22p" "htr") IMG_TYPE=("sta" "iic" "3ps") PSRAM_SIZE_STRING=("2m" "4m" "8m") RUN_TYPE_STRING=("flash" "psram" "upgrade") APP_ID_STRING=(0 5 6) HTZD_ENV_ID=0 JSMT_ENV_ID=0 FLX_ENV_ID=0 WQRD_ENV_ID=0 GLDQ_ENV_ID=0 DMPL_ENV_ID=0 STAMP_ENV_ID=0 CHIP_ID_ENV="export HW_CHIP_ID=" VER_ID_ENV="export hw_board_id=" SRC_ENV_FILE="env_flash_sta.sh" SRC_ENV_PSRAM_FILE="env_psram_sta.sh" PSRAM_SIZE_ENV="export psram_size=" FLASH_SIZE_ENV="export flash_size=" # BUILD_FLAGS: # 0 --> error # 1 --> set default chip_id=wq, and pack all customers bin # 2 --> set chip=arg1, and pack all customers bin # 3 --> set chip=arg1, custom=arg2, and pack one customer bin # 4 --> genarate specified version # 5 --> set chip=arg1, flash_size=arg2, and pack all customers bin err_out(){ # param error echo "build script parameters error" echo "[Usage]" echo "$0 [chip name] [flash size] [psram size] [custom name] [type name] [app select] [psram]" echo "[chip name] (${CHIP_STRING[@]})" echo "[flash size] (${FLASH_SIZE_STRING[@]})" echo "[psram size] (0m ${PSRAM_SIZE_STRING[@]})" echo "[custom name] (${CUSTOM_STRING[@]})" echo "[type name] flash/psram" echo "[app select] (${APP_ID_STRING[@]}), 0:sg-app(default), 5:sg-ext-app, 6:smart-meter-app" echo "[psram] 'psram':with psram, null:without psram" exit 1 } if [ "$INPUT_CHIP" == "" ]; then BUILD_FLAGS=1 else for STR in ${CHIP_STRING[@]}; do if [ "$INPUT_CHIP" == "$STR" ]; then BUILD_FLAGS=2 CHIP=$STR fi done if [ "$CHIP" == "" ];then err_out fi fi if [ "$INPUT_FLASH_SIZE" != "" ]; then for STR in ${FLASH_SIZE_STRING[@]}; do if [ "$INPUT_FLASH_SIZE" == "$STR" ]; then BUILD_FLAGS=5 FLASH_SIZE=$STR fi done if [ "$FLASH_SIZE" == "" ];then err_out fi fi if [ "$INPUT_PSRAM_SIZE" != "" ];then for STR in ${PSRAM_SIZE_STRING[@]}; do if [ "$INPUT_PSRAM_SIZE" == "$STR" ]; then PSRAM_SIZE=$STR fi done fi if [ "$INPUT_CUSTOM" != "" ]; then for STR in ${CUSTOM_STRING[@]}; do if [ "$INPUT_CUSTOM" == "$STR" ]; then BUILD_FLAGS=3 CUSTOM=$STR fi done fi if [ "$INPUT_TYPE" != "" ]; then for STR in ${RUN_TYPE_STRING[@]}; do if [ "$INPUT_TYPE" == "$STR" ]; then RUN_TYPE=$STR fi done fi if [ "$APP_INPUT" != "" ]; then for STR in ${APP_ID_STRING[@]}; do if [ "$APP_INPUT" == "$STR" ]; then BUILD_FLAGS=4 APP_SEL=$STR fi done fi #check input parameters. if [ "5" == "$BUILD_FLAGS" ]; then if [ "$CHIP" != "" ] && [ "$FLASH_SIZE" != "" ] && [ "$PSRAM_SIZE" != "" ] && [ "$CUSTOM" == "" ] && [ $# -le 4 ]; then APP_SEL=0 else err_out fi elif [ "2" == "$BUILD_FLAGS" ]; then if [ "$CHIP" == "" ]; then err_out fi elif [ "3" == "$BUILD_FLAGS" ]; then if [ "$CHIP" == "" ] || [ "$FLASH_SIZE" == "" ] || [ "$PSRAM_SIZE" == "" ] || [ "$CUSTOM" == "" ]; then err_out fi elif [ "4" == "$BUILD_FLAGS" ]; then if [ "$CHIP" == "" ] || [ "$FLASH_SIZE" == "" ] || [ "$PSRAM_SIZE" == "" ] || [ "$CUSTOM" == "" ] || [ "$RUN_TYPE" == "" ] || [ "$APP_SEL" == "" ]; then err_out fi if [ "$INPUT_TYPE" == "psram" ] && [ "$PSRAM_SIZE" == "0m" ]; then err_out fi if [ "$INPUT_TYPE" == "flash" ] && [ "$PSRAM_SIZE" != "0m" ]; then err_out fi else err_out fi FLASH_SIZE_nM=${FLASH_SIZE/m/} PSRAM_SIZE_nM=${PSRAM_SIZE/m/} for input_char in $@; do if [ "$input_char" == "psram" ]; then unset RUN_TYPE_STRING[0] RUN_TYPE="psram" if [ "$PSRAM_SIZE" == "0m" ]; then PSRAM_SIZE="2m" PSRAM_SIZE_nM=2 fi cp $SRC_ENV_PSRAM_FILE env_tmp.sh ENV_STRING=${PSRAM_SIZE_ENV}${PSRAM_SIZE_nM} echo $ENV_STRING >> env_tmp.sh fi done if [ "$RUN_TYPE" != "psram" ]; then if [ "$PSRAM_SIZE" != "0m" ]; then err_out fi PSRAM_SIZE_nM=0 unset RUN_TYPE_STRING[1] cp $SRC_ENV_FILE env_tmp.sh fi if [ $PSRAM_SIZE_nM -eq 0 ]; then if [ $FLASH_SIZE_nM -eq 1 ]; then export layout_index=0 elif [ $FLASH_SIZE_nM -eq 2 ]; then export layout_index=1 elif [ $FLASH_SIZE_nM -eq 4 ]; then export layout_index=3 fi else if [ $FLASH_SIZE_nM -eq 1 ]; then export layout_index=0 elif [ $FLASH_SIZE_nM -eq 2 ]; then export layout_index=2 elif [ $FLASH_SIZE_nM -eq 4 ]; then export layout_index=4 fi fi if [ "x${APP_SEL}" == "x0" ]; then APP_NAME="sg" elif [ "x${APP_SEL}" == "x5" ]; then APP_NAME="sg_ext" elif [ "x${APP_SEL}" == "x6" ]; then APP_NAME="sg_meter" fi # clear bin file [ "$CLR_BIN_FILE" == "1" ] && echo "clr bin file.." && cd ../tools/gen_img && rm -rf customer && cd - rm -f ../Makefile ln -s ./build/Makefile ../Makefile set -o errexit if [ $BUILD_FLAGS == 1 ]; then # set default chip_id=wq, and pack all customers bin echo "BUILD FLAGS: "${BUILD_FLAGS} CHIP=${CHIP_STRING[0]} ENV_STRING=${CHIP_ID_ENV}${CHIP} echo $ENV_STRING >> env_tmp.sh cat env_tmp.sh . env_tmp.sh && make -j APP=$APP_SEL -C .. clobber && make -j PLATFORM=CHIP APP=$APP_SEL -C .. rm env_tmp.sh for STR in ${CUSTOM_STRING[@]}; do cd ../tools/gen_img for IMG in ${IMG_TYPE[@]}; do for RUN_TYPE in ${RUN_TYPE_STRING[@]}; do if [ "$STR" == "brmt" ] && [ "$IMG" != "sta" ]; then continue fi if [ "$IMG" == "3ps" ]; then if [ "$STR" == "htzd" ] || [ "$STR" == "jsmt" ] || [ "$STR" == "flx" ]; then # 1M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} # 2M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 2m -a ${APP_NAME} -p ${PSRAM_SIZE_nM} # 4M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 4m -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else # 1M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} # 2M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 2m -a ${APP_NAME} -p ${PSRAM_SIZE_nM} # 4M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 4m -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi done done cd - done elif [ $BUILD_FLAGS == 2 ]; then # set chip=arg1, and pack all customers bin echo "BUILD FLAGS: "${BUILD_FLAGS} ENV_STRING=${CHIP_ID_ENV}${CHIP} echo $ENV_STRING >> env_tmp.sh cat env_tmp.sh . env_tmp.sh && make -j APP=$APP_SEL -C .. clobber && make -j PLATFORM=CHIP APP=$APP_SEL -C .. rm env_tmp.sh for STR in ${CUSTOM_STRING[@]}; do cd ../tools/gen_img for IMG in ${IMG_TYPE[@]}; do for RUN_TYPE in ${RUN_TYPE_STRING[@]}; do if [ "$STR" == "brmt" ] && [ "$IMG" != "sta" ]; then continue fi if [ "$IMG" == "3ps" ]; then if [ "$STR" == "htzd" ] || [ "$STR" == "jsmt" ] || [ "$STR" == "flx" ]; then # 1M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} # 2M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 2m -a ${APP_NAME} -p ${PSRAM_SIZE_nM} # 4M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 4m -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else # 1M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} # 2M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 2m -a ${APP_NAME} -p ${PSRAM_SIZE_nM} # 4M flash image ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s 4m -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi done done cd - done elif [ $BUILD_FLAGS == 3 ]; then # set chip=arg1, custom=arg2, and pack one customers bin echo "BUILD FLAGS: "${BUILD_FLAGS} if [ "$CUSTOM" == "htzd" ]; then ENV_STRING=${VER_ID_ENV}${HTZD_ENV_ID} elif [ "$CUSTOM" == "jsmt" ]; then ENV_STRING=${VER_ID_ENV}${JSMT_ENV_ID} elif [ "$CUSTOM" == "flx" ]; then ENV_STRING=${VER_ID_ENV}${FLX_ENV_ID} elif [ "$CUSTOM" == "wqrd" ]; then ENV_STRING=${VER_ID_ENV}${WQRD_ENV_ID} elif [ "$CUSTOM" == "gldq" ]; then ENV_STRING=${VER_ID_ENV}${GLDQ_ENV_ID} elif [ "$CUSTOM" == "dmpl" ]; then ENV_STRING=${VER_ID_ENV}${DMPL_ENV_ID} elif [ "$CUSTOM" == "stamp_22p" ]; then ENV_STRING=${VER_ID_ENV}${STAMP_ENV_ID} else echo "build script parameters error" echo "[Usage]" echo "$0 [custom name]" exit 1 fi echo $ENV_STRING >> env_tmp.sh ENV_STRING=${CHIP_ID_ENV}${CHIP} echo $ENV_STRING >> env_tmp.sh ENV_STRING=${FLASH_SIZE_ENV}${FLASH_SIZE_nM} echo $ENV_STRING >> env_tmp.sh cat env_tmp.sh . env_tmp.sh && make -j APP=$APP_SEL -C .. clobber && make -j PLATFORM=CHIP FLASH_SIZE=$FLASH_SIZE_nM APP=$APP_SEL -C .. rm env_tmp.sh cd ../tools/gen_img for IMG in ${IMG_TYPE[@]}; do for RUN_TYPE in ${RUN_TYPE_STRING[@]}; do if [ "$FLASH_SIZE" == "1m" ]; then if [ "$IMG" == "3ps" ]; then if [ "$CUSTOM" == "htzd" ] || [ "$CUSTOM" == "jsmt" ] || [ "$CUSTOM" == "flx" ]; then ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else if [ "$IMG" == "3ps" ]; then if [ "$CUSTOM" == "htzd" ] || [ "$CUSTOM" == "jsmt" ] || [ "$CUSTOM" == "flx" ]; then ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -m lzma -s ${FLASH_SIZE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -m lzma -s ${FLASH_SIZE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi fi done done cd - elif [ $BUILD_FLAGS == 4 ]; then #build specified image echo "BUILD FLAGS: "${BUILD_FLAGS} ENV_STRING=${FLASH_SIZE_ENV}${FLASH_SIZE_nM} echo $ENV_STRING >> env_tmp.sh ENV_STRING=${CHIP_ID_ENV}${CHIP} echo $ENV_STRING >> env_tmp.sh cat env_tmp.sh . env_tmp.sh && make -j APP=$APP_SEL -C .. clobber && make -j PLATFORM=CHIP FLASH_SIZE=$FLASH_SIZE_nM APP=$APP_SEL -C .. rm env_tmp.sh cd ../tools/gen_img for IMG in ${IMG_TYPE[@]}; do if [ "$FLASH_SIZE" == "1m" ]; then if [ "$IMG" == "3ps" ]; then if [ "$CUSTOM" == "htzd" ] || [ "$CUSTOM" == "jsmt" ] || [ "$CUSTOM" == "flx" ]; then ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r upgrade -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r upgrade -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else if [ "$IMG" == "3ps" ]; then if [ "$CUSTOM" == "htzd" ] || [ "$CUSTOM" == "jsmt" ] || [ "$CUSTOM" == "flx" ]; then ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -m lzma -s ${FLASH_SIZE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r upgrade -m lzma -s ${FLASH_SIZE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r ${RUN_TYPE} -m lzma -s ${FLASH_SIZE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} ./gen_img.sh -d ${CHIP} -c ${CUSTOM} -i ${IMG} -r upgrade -m lzma -s ${FLASH_SIZE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi fi done cd - elif [ $BUILD_FLAGS == 5 ]; then #build 2m flash image echo "BUILD FLAGS: "${BUILD_FLAGS} ENV_STRING=${FLASH_SIZE_ENV}${FLASH_SIZE_nM} echo $ENV_STRING >> env_tmp.sh ENV_STRING=${CHIP_ID_ENV}${CHIP} echo $ENV_STRING >> env_tmp.sh cat env_tmp.sh . env_tmp.sh && make -j APP=$APP_SEL -C .. clobber && make -j PLATFORM=CHIP FLASH_SIZE=$FLASH_SIZE_nM APP=$APP_SEL -C .. rm env_tmp.sh for STR in ${CUSTOM_STRING[@]}; do cd ../tools/gen_img for IMG in ${IMG_TYPE[@]}; do for RUN_TYPE in ${RUN_TYPE_STRING[@]}; do if [ "$STR" == "brmt" ] && [ "$IMG" != "sta" ]; then continue fi # 2M flash image if [ "$FLASH_SIZE" == "1m" ]; then if [ "$IMG" == "3ps" ]; then if [ "$STR" == "htzd" ] || [ "$STR" == "jsmt" ] || [ "$STR" == "flx" ]; then ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else if [ "$IMG" == "3ps" ]; then if [ "$STR" == "htzd" ] || [ "$STR" == "jsmt" ] || [ "$STR" == "flx" ]; then ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s ${FLASH_SIZE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi else ./gen_img.sh -d ${CHIP} -c ${STR} -i ${IMG} -r ${RUN_TYPE} -m lzma -s ${FLASH_SIZE} -a ${APP_NAME} -p ${PSRAM_SIZE_nM} fi fi done done cd - done fi cd ../tools/gen_img mkdir -p ../../bin && cp -rf customer ../../bin