173 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			173 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/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
							 |