diff --git a/mkapp/app/script/update_goggle.sh b/mkapp/app/script/update_goggle.sh index 196a2833..38909cf4 100755 --- a/mkapp/app/script/update_goggle.sh +++ b/mkapp/app/script/update_goggle.sh @@ -3,6 +3,13 @@ GOGGLE_BIN="$1" TMP_DIR=/tmp/goggle_update +VAbin=${TMP_DIR}/HDZGOGGLE_VA.bin +VAcount=1 +VAwrites=0 +RXbin=${TMP_DIR}/HDZGOGGLE_RX.bin +RXcount=2 +RXwrites=0 + function gpio_export() { if [ ! -f /sys/class/gpio/gpio224/direction ] @@ -27,31 +34,35 @@ function gpio_export() echo "out">/sys/class/gpio/gpio131/direction } +function beep() +{ + if [ ! -z "$1" ];then + delay=$1 + else + delay=1 + fi + echo "1">/sys/class/gpio/gpio131/value + sleep $delay + echo "0">/sys/class/gpio/gpio131/value +} + function beep_success() { - echo "1">/sys/class/gpio/gpio131/value - sleep 0.1 - echo "0">/sys/class/gpio/gpio131/value - sleep 0.5 - echo "1">/sys/class/gpio/gpio131/value - sleep 0.05 - echo "0">/sys/class/gpio/gpio131/value + beep 0.1 + sleep 0.5 + beep 0.05 + sleep 1 } function beep_failure() { - echo "1">/sys/class/gpio/gpio131/value - sleep 1 - echo "0">/sys/class/gpio/gpio131/value - sleep 0.5 - echo "1">/sys/class/gpio/gpio131/value - sleep 1 - echo "0">/sys/class/gpio/gpio131/value - sleep 0.5 - echo "1">/sys/class/gpio/gpio131/value - sleep 0.05 - echo "0">/sys/class/gpio/gpio131/value + beep 1 + sleep 0.5 + beep 1 + sleep 0.5 + beep 0.05 + sleep 1 } @@ -67,12 +78,6 @@ function gpio_clear_reset() echo "0">/sys/class/gpio/gpio228/value } -function gpio_set_send() -{ - echo "1">/sys/class/gpio/gpio224/value - echo "0">/sys/class/gpio/gpio228/value -} - function disconnect_fpga_flash() { echo "1">/sys/class/gpio/gpio258/value @@ -83,6 +88,46 @@ function connect_fpga_flash() echo "0">/sys/class/gpio/gpio258/value } +function gpio_set_reset() +{ + echo "0">/sys/class/gpio/gpio224/value + echo "1">/sys/class/gpio/gpio228/value +} + +function gpio_clear_reset() +{ + echo "1">/sys/class/gpio/gpio224/value + echo "0">/sys/class/gpio/gpio228/value +} + +# eg: check_mtd_write /dev/mtdX required-size bin-file +function check_mtd_write() +{ + filesize=`ls -l $3 | awk '{print $5}'` + mtd_info=`mtd_debug info $1` + echo "$mtd_info" + mtdsize=`echo "$mtd_info" | grep mtd.size | grep "($2)"` + if [ ! -z "$mtdsize" ];then + echo "$1 size is ($2)" + mtdsizeB=`echo "$mtdsize" |cut -d " " -f 3` + echo mtd_debug erase $1 0 $mtdsizeB + mtd_debug erase $1 0 $mtdsizeB + echo mtd_debug write $1 0 $filesize $3 + mtd_debug write $1 0 $filesize $3 + if [ $? == 0 ]; then +# beep_success + if [ "$3" == "$VAbin" ]; then + VAwrites=$((VAwrites + 1)) + fi + if [ "$3" == "$RXbin" ]; then + RXwrites=$((RXwrites + 1)) + fi + fi + else + echo "$1 size is NOT ($2) !" + beep_failure + fi +} function untar_file() { FILE_TARGET="$1" @@ -96,41 +141,20 @@ function untar_file() fi tar xf ${FILE_TARGET} -C ${TMP_DIR} 2>&1 > /dev/null - mv ${TMP_DIR}/HDZGOGGLE_RX*.bin ${TMP_DIR}/HDZGOGGLE_RX.bin - mv ${TMP_DIR}/HDZGOGGLE_VA*.bin ${TMP_DIR}/HDZGOGGLE_VA.bin + mv ${TMP_DIR}/HDZGOGGLE_RX*.bin $RXbin + mv ${TMP_DIR}/HDZGOGGLE_VA*.bin $VAbin } -# eg: check_mtd_write /dev/mtdX check-size erase-size file-size bin-file -function check_mtd_write() -{ - mtd_info=`mtd_debug info $1` - echo "$mtd_info" - value=`echo "$mtd_info" | grep mtd.size | grep "($2)"` - if [ ! -z "$value" ];then - echo "$1 size is ($2)" - mtd_debug erase $1 0 $3 - mtd_debug write $1 0 $4 $5 - beep_success - else - echo "$1 size is NOT ($2) !" - beep_failure - fi -} function update_rx() { echo "find RX update file, start update" - filesize=`ls -l ${TMP_DIR}/HDZGOGGLE_RX*.bin| awk '{print $5}'` gpio_export gpio_set_reset insmod /mnt/app/ko/w25q128.ko - check_mtd_write /dev/mtd8 1M 65536 $filesize ${TMP_DIR}/HDZGOGGLE_RX.bin - echo "5" - echo "5" > /tmp/progress_goggle + check_mtd_write /dev/mtd8 1M $RXbin sleep 1 - check_mtd_write /dev/mtd9 1M 65536 $filesize ${TMP_DIR}/HDZGOGGLE_RX.bin - echo "10" - echo "10" > /tmp/progress_goggle + check_mtd_write /dev/mtd9 1M $RXbin echo "update finish RX, running" gpio_clear_reset sleep 1 @@ -140,14 +164,11 @@ function update_rx() function update_fpga() { echo "find VA update file, start update" - filesize2=`ls -l ${TMP_DIR}/HDZGOGGLE_VA*.bin| awk '{print $5}'` gpio_export gpio_set_reset disconnect_fpga_flash insmod /mnt/app/ko/w25q128.ko - check_mtd_write /dev/mtd10 16M 16777216 $filesize2 ${TMP_DIR}/HDZGOGGLE_VA.bin - echo "45" - echo "45" > /tmp/progress_goggle + check_mtd_write /dev/mtd10 16M $VAbin echo "update finish VA, running" gpio_clear_reset sleep 1 @@ -172,17 +193,18 @@ then cp -f /mnt/app/setting.ini /mnt/UDISK/ #disable it66021 i2cset -y 3 0x49 0x10 0xff - update_rx + echo "1" + echo "1" > /tmp/progress_goggle + update_rx + echo "6" + echo "6" > /tmp/progress_goggle update_fpga + echo "45" + echo "45" > /tmp/progress_goggle hdz_upgrade_app.sh echo "100" echo "100" > /tmp/progress_goggle echo "all done" else - if [ `ls /mnt/extsd/HDZERO_GOGGLE*.bin | grep bin | wc -l` -eq 0 ] - then - echo "skip" - else - echo "repeat" - fi + echo "skip" fi diff --git a/mkapp/app/script/write_flashes.sh b/mkapp/app/script/write_flashes.sh index da4d41ef..eaabbc7b 100755 --- a/mkapp/app/script/write_flashes.sh +++ b/mkapp/app/script/write_flashes.sh @@ -31,51 +31,37 @@ function gpio_export() echo "out">/sys/class/gpio/gpio131/direction } -function beep_on() -{ - echo "1">/sys/class/gpio/gpio131/value -} - -function beep_off() -{ - echo "0">/sys/class/gpio/gpio131/value -} - function beep() { - echo "1">/sys/class/gpio/gpio131/value - sleep 1 + if [ ! -z "$1" ];then + delay=$1 + else + delay=1 + fi + echo "1">/sys/class/gpio/gpio131/value + sleep $delay echo "0">/sys/class/gpio/gpio131/value } function beep_success() { - echo "1">/sys/class/gpio/gpio131/value - sleep 0.1 - echo "0">/sys/class/gpio/gpio131/value - sleep 0.5 - echo "1">/sys/class/gpio/gpio131/value - sleep 0.05 - echo "0">/sys/class/gpio/gpio131/value + beep 0.1 + sleep 0.5 + beep 0.05 + sleep 1 } function beep_failure() { - echo "1">/sys/class/gpio/gpio131/value - sleep 1 - echo "0">/sys/class/gpio/gpio131/value - sleep 0.5 - echo "1">/sys/class/gpio/gpio131/value - sleep 1 - echo "0">/sys/class/gpio/gpio131/value - sleep 0.5 - echo "1">/sys/class/gpio/gpio131/value - sleep 0.05 - echo "0">/sys/class/gpio/gpio131/value + beep 1 + sleep 0.5 + beep 1 + sleep 0.5 + beep 0.05 + sleep 1 } - function disconnect_fpga_flash() { echo "1">/sys/class/gpio/gpio258/value @@ -86,7 +72,6 @@ function connect_fpga_flash() echo "0">/sys/class/gpio/gpio258/value } - function gpio_set_reset() { echo "0">/sys/class/gpio/gpio224/value @@ -99,28 +84,26 @@ function gpio_clear_reset() echo "0">/sys/class/gpio/gpio228/value } -function gpio_set_send() -{ - echo "1">/sys/class/gpio/gpio224/value - echo "0">/sys/class/gpio/gpio228/value -} - -# eg: check_mtd_write /dev/mtdX check-size erase-size file-size bin-file +# eg: check_mtd_write /dev/mtdX required-size bin-file function check_mtd_write() { + filesize=`ls -l $3 | awk '{print $5}'` mtd_info=`mtd_debug info $1` echo "$mtd_info" - value=`echo "$mtd_info" | grep mtd.size | grep "($2)"` - if [ ! -z "$value" ];then + mtdsize=`echo "$mtd_info" | grep mtd.size | grep "($2)"` + if [ ! -z "$mtdsize" ];then echo "$1 size is ($2)" - mtd_debug erase $1 0 $3 - mtd_debug write $1 0 $4 $5 + mtdsizeB=`echo "$mtdsize" |cut -d " " -f 3` + echo mtd_debug erase $1 0 $mtdsizeB + mtd_debug erase $1 0 $mtdsizeB + echo mtd_debug write $1 0 $filesize $3 + mtd_debug write $1 0 $filesize $3 if [ $? == 0 ]; then beep_success - if [ "$5" == "$VAbin" ]; then + if [ "$3" == "$VAbin" ]; then VAwrites=$((VAwrites + 1)) fi - if [ "$5" == "$RXbin" ]; then + if [ "$3" == "$RXbin" ]; then RXwrites=$((RXwrites + 1)) fi fi @@ -131,26 +114,26 @@ function check_mtd_write() } - - echo "<<<<-------------------------------------------------------------------->>>>" +if [ -e $VAbin ] | [ -e $RXbin ]; then + gpio_export + beep 1 +fi + if [ -e $VAbin ] then echo "find VA update file, start update" - filesize2=`ls -l $VAbin| awk '{print $5}'` - gpio_export gpio_set_reset disconnect_fpga_flash sleep 1 insmod /mnt/app/ko/w25q128.ko - touch /tmp/update.ing # normally the VA is mounted at /dev/mtd10 - # check_mtd_write /dev/mtd8 16M 16777216 $filesize2 $VAbin - # check_mtd_write /dev/mtd9 16M 16777216 $filesize2 $VAbin - check_mtd_write /dev/mtd10 16M 16777216 $filesize2 $VAbin + # check_mtd_write /dev/mtd8 16M $VAbin + # check_mtd_write /dev/mtd9 16M $VAbin + check_mtd_write /dev/mtd10 16M $VAbin rm /tmp/update.ing -rf if [ "$VAwrites" == "$VAcount" ]; then @@ -172,15 +155,13 @@ fi if [ -e $RXbin ] then echo "find RX update file, start update" - filesize=`ls -l $RXbin| awk '{print $5}'` - gpio_export gpio_set_reset sleep 1 insmod /mnt/app/ko/w25q128.ko - # normally the RX modules are mounted at /dev/mtd8 and /dev/mtd9 - check_mtd_write /dev/mtd8 1M 65536 $filesize $RXbin - check_mtd_write /dev/mtd9 1M 65536 $filesize $RXbin - # check_mtd_write /dev/mtd10 1M 65536 $filesize $RXbin + # normally rx1 is /dev/mtd8 and rx0 is /dev/mtd9 + check_mtd_write /dev/mtd8 1M $RXbin + check_mtd_write /dev/mtd9 1M $RXbin + # check_mtd_write /dev/mtd10 1M $RXbin if [ "$RXwrites" == "$RXcount" ]; then if [ ! -f /mnt/extsd/DONOTREMOVE.txt ] @@ -194,7 +175,7 @@ then sleep 1 rmmod /mnt/app/ko/w25q128.ko - beep + beep 2 else echo "no RX update file,skip" fi diff --git a/src/ui/page_version.c b/src/ui/page_version.c index 4549092c..82940b82 100644 --- a/src/ui/page_version.c +++ b/src/ui/page_version.c @@ -312,7 +312,8 @@ static void flash_goggle() { int generate_current_version(sys_version_t *sys_ver) { sys_ver->va = I2C_Read(ADDR_FPGA, 0xff); - sys_ver->rx = rx_status[0].rx_ver; + sys_ver->rx0 = rx_status[0].rx_ver; + sys_ver->rx1 = rx_status[1].rx_ver; memset(sys_ver->commit, 0, sizeof(sys_ver->commit)); FILE *fp = fopen("/mnt/app/version", "r"); @@ -329,31 +330,31 @@ int generate_current_version(sys_version_t *sys_ver) { fclose(fp); if (strlen(sys_ver->commit)) { - LOGI("app: %hhu.%hhu.%hhu-%s rx: %u va: %u", + LOGI("app: %hhu.%hhu.%hhu-%s rx0: %u rx1: %u va: %u", sys_ver->app_major, sys_ver->app_minor, sys_ver->app_patch, sys_ver->commit, - sys_ver->rx, sys_ver->va); + sys_ver->rx0, sys_ver->rx1, sys_ver->va); - snprintf(sys_ver->current, CURRENT_VER_MAX, "app: %hhu.%hhu.%hhu-%s rx: %u va: %u", + snprintf(sys_ver->current, CURRENT_VER_MAX, "app: %hhu.%hhu.%hhu-%s rx0: %u rx1: %u va: %u", sys_ver->app_major, sys_ver->app_minor, sys_ver->app_patch, sys_ver->commit, - sys_ver->rx, sys_ver->va); + sys_ver->rx0, sys_ver->rx1, sys_ver->va); } else { - LOGI("app: %hhu.%hhu.%hhu rx: %u va: %u", + LOGI("app: %hhu.%hhu.%hhu rx0: %u rx1: %u va: %u", sys_ver->app_major, sys_ver->app_minor, sys_ver->app_patch, - sys_ver->rx, sys_ver->va); + sys_ver->rx0, sys_ver->rx1, sys_ver->va); - snprintf(sys_ver->current, CURRENT_VER_MAX, "app: %hhu.%hhu.%hhu rx: %u va: %u", + snprintf(sys_ver->current, CURRENT_VER_MAX, "app: %hhu.%hhu.%hhu rx0: %u rx1: %u va: %u", sys_ver->app_major, sys_ver->app_minor, sys_ver->app_patch, - sys_ver->rx, sys_ver->va); + sys_ver->rx0, sys_ver->rx1, sys_ver->va); } return 0; diff --git a/src/ui/page_version.h b/src/ui/page_version.h index 1d763901..1627044b 100644 --- a/src/ui/page_version.h +++ b/src/ui/page_version.h @@ -12,7 +12,8 @@ extern "C" { #define COMMIT_VER_MAX (10) typedef struct { - uint8_t rx; + uint8_t rx0; + uint8_t rx1; uint8_t va; uint8_t app_major; uint8_t app_minor;