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 |