#!/bin/bash DEF_APP=20 DEF_IMAGE_TYPE="" DEF_FLASH_SIZE="2m" DEF_PSRAM_SIZE="0m" DEF_CHIP_ID="WQ" DEF_REL="release" DEF_NOT_CLEAN="0" GROUP_IMAGE_TYPE=("cco" "sta") GROUP_CUSTOM=("solr" "htzd") GROUP_FLASH_SIZE=("1m" "2m" "4m") GROUP_PSRAM_SIZE=("0m" "2m" "4m") GROUP_RUN_TYPE=("flash" "psram" "upgrade") GROUP_REL=("debug" "release") INPUT_IMG_TYPE=$(echo $1 | tr '[A-Z]' '[a-z]') INPUT_FLASH_SIZE=$(echo $2 | tr '[A-Z]' '[a-z]') INPUT_PSRAM_SIZE=$(echo $3 | tr '[A-Z]' '[a-z]') usage() { echo "$0 [IMAGE_TYPE] [FLASH_SIZE] [PSRAM_SIZE] [BUILD_TYPE] [NOT_CLEAN]" echo "* [IMAGE_TYPE] -- Necessary, cco or sta." echo "* [FLASH_SIZE] -- Optional, 1m/2m/4m, default is 2m." echo "* [PSRAM_SIZE] -- Optional, 0m/2m/4m, default cco:4m, sta:0m." echo "* [BUILD_TYPE] -- Optional, release or debug." echo "* [NOT_CLEAN] -- Optional, input 'not_clean' means increment compile." exit 1 } if [ "?" == "$1" ] || [ "" == "$1" ] ; then usage fi #DEF_NOT_CLEAN for k in $@; do if [ "$k" == "not_clean" ]; then DEF_NOT_CLEAN="1" break fi done #DEF_REL for k in $@; do for arg in ${GROUP_REL[@]}; do if [ "$k" == "${arg}" ]; then DEF_REL="$k" break fi done done #DEF_IMAGE_TYPE for arg in ${GROUP_IMAGE_TYPE[@]}; do if [ "${INPUT_IMG_TYPE}" == "${arg}" ]; then DEF_IMAGE_TYPE="${INPUT_IMG_TYPE}" break fi done if [ "$DEF_IMAGE_TYPE" == "cco" ]; then DEF_PSRAM_SIZE="4m" elif [ "$DEF_IMAGE_TYPE" == "sta" ]; then DEF_PSRAM_SIZE="0m" else usage fi #DEF_FLASH_SIZE for arg in ${GROUP_FLASH_SIZE[@]}; do if [ "${INPUT_FLASH_SIZE}" == "$arg" ]; then DEF_FLASH_SIZE="${INPUT_FLASH_SIZE}" break fi done #DEF_PSRAM_SIZE for arg in ${GROUP_PSRAM_SIZE[@]}; do if [ "${INPUT_PSRAM_SIZE}" == "$arg" ]; then DEF_PSRAM_SIZE="${INPUT_PSRAM_SIZE}" break fi done if [ "${DEF_FLASH_SIZE}" == "1m" ]; then FLASH_SIZE_nM=1 FW_KW_STR="O-" elif [ "${DEF_FLASH_SIZE}" == "2m" ]; then FLASH_SIZE_nM=2 FW_KW_STR="T-" else FLASH_SIZE_nM=4 FW_KW_STR="F-" fi if [ "${DEF_PSRAM_SIZE}" == "0m" ]; then export psram_enable=0 PSRAM_SIZE_nM=0 unset GROUP_RUN_TYPE[1] elif [ "${DEF_PSRAM_SIZE}" == "2m" ]; then export psram_enable=1 PSRAM_SIZE_nM=2 unset GROUP_RUN_TYPE[0] else export psram_enable=1 PSRAM_SIZE_nM=4 unset GROUP_RUN_TYPE[0] fi # flash alway 2m if [ "$DEF_RAM" == "psram" ]; then export layout_index=2 else export layout_index=1 fi rm -f ../Makefile ln -s ./build/Makefile ../Makefile set -o errexit CHIP_ID_ENV="export HW_CHIP_ID=" FLASH_SIZE_ENV="export flash_size=" PSRAM_SIZE_ENV="export psram_size=" SRC_ENV_FILE="env_flash_"${DEF_IMAGE_TYPE}".sh" cp $SRC_ENV_FILE env_tmp.sh IMG_TYPE_UPPER=$(echo ${DEF_IMAGE_TYPE} | tr '[a-z]' '[A-Z]') #start building... ENV_STRING=${CHIP_ID_ENV}${DEF_CHIP_ID} echo $ENV_STRING >> env_tmp.sh ENV_STRING=${FLASH_SIZE_ENV}${FLASH_SIZE_nM} echo $ENV_STRING >> env_tmp.sh ENV_STRING=${PSRAM_SIZE_ENV}${PSRAM_SIZE_nM} echo $ENV_STRING >> env_tmp.sh cat env_tmp.sh . env_tmp.sh && [ "${DEF_NOT_CLEAN}" == "0" ] && make APP=$DEF_APP -C .. clobber make PLATFORM=CHIP APP=$DEF_APP FLASH_SIZE=$FLASH_SIZE_nM -C .. rm env_tmp.sh pushd ../tools/gen_img for ARG_RT in ${GROUP_RUN_TYPE[@]}; do for ARG_CUS in ${GROUP_CUSTOM[@]}; do if [ "cco" == "${DEF_IMAGE_TYPE}" ] && [ "solr" == "${ARG_CUS}" ]; then continue fi if [ "1m" == "${DEF_FLASH_SIZE}" ]; then echo "./gen_img.sh -d ${DEF_CHIP_ID} -c ${ARG_CUS} -i ${DEF_IMAGE_TYPE} -r ${ARG_RT} -v ${DEF_REL} -m lzma -a "solr"" ./gen_img.sh -d ${DEF_CHIP_ID} -c ${ARG_CUS} -i ${DEF_IMAGE_TYPE} -r ${ARG_RT} -v ${DEF_REL} -m lzma -a "solr" else echo "./gen_img.sh -d ${DEF_CHIP_ID} -c ${ARG_CUS} -i ${DEF_IMAGE_TYPE} -r ${ARG_RT} -v ${DEF_REL} -m lzma -s ${DEF_FLASH_SIZE} -a "solr"" ./gen_img.sh -d ${DEF_CHIP_ID} -c ${ARG_CUS} -i ${DEF_IMAGE_TYPE} -r ${ARG_RT} -v ${DEF_REL} -m lzma -s ${DEF_FLASH_SIZE} -a "solr" fi #extra work. if [ "htzd" == "${ARG_CUS}" ]; then cd ./customer/${FLASH_SIZE_nM}M/htzd/${DEF_IMAGE_TYPE}/out find -type f ! -name "HTZD${IMG_TYPE_UPPER}01_PIB.bin"|grep "PIB.bin"|xargs rm -f cd - cd ./customer/${FLASH_SIZE_nM}M/htzd/${DEF_IMAGE_TYPE}/bin find -type f ! -name "*HTZD${IMG_TYPE_UPPER}01-${FW_KW_STR}*"|xargs rm -f cd - fi done done popd mkdir -p ../bin && cp -rf ../tools/gen_img/customer ../bin