From a75eafb19172cd633264d80207aabcc5dd9a45fe Mon Sep 17 00:00:00 2001 From: forth32 Date: Thu, 2 Apr 2015 07:45:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D1=81=D0=B1=D1=80=D0=BE=D1=81=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5?= =?UTF-8?q?=20=D0=B2=D1=8B=D1=85=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- balong_flash.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/balong_flash.c b/balong_flash.c index 2ff816f..e9d8b00 100644 --- a/balong_flash.c +++ b/balong_flash.c @@ -30,16 +30,18 @@ unsigned char buf[4096]; unsigned char devname[50]="/dev/ttyUSB0"; unsigned char replybuf[4096]; unsigned char datamodecmd[]="AT^DATAMODE"; +unsigned char resetcmd[]="AT^RESET"; unsigned char OKrsp[]={0x0d, 0x0a, 0x4f, 0x4b, 0x0d, 0x0a}; unsigned int dpattern=0xa55aaa55; -unsigned int mflag=0,eflag=0; +unsigned int mflag=0,eflag=0,rflag=0; unsigned char filename [100]; unsigned char cmdver[7]={0x0c}; // версия протокола unsigned char cmddone[7]={0x1}; // команда выхода из HDLC -unsigned char cmd_dload_init[15]={0x41}; // команда начала пакета +unsigned char cmd_reset[7]={0xa}; // команда выхода из HDLC +unsigned char cmd_dload_init[15]={0x41}; // команда начала раздела unsigned char cmd_data_packet[11000]={0x42}; // команда начала пакета -unsigned char cmd_dload_end[30]={0x43}; +unsigned char cmd_dload_end[30]={0x43}; // команда конца раздела // Коды типов разделов struct { char name[20]; @@ -62,7 +64,7 @@ struct { }; //-d - попытка переключить модем из режима HDLC в АТ-режим\n\ -while ((opt = getopt(argc, argv, "hp:me")) != -1) { +while ((opt = getopt(argc, argv, "hp:mer")) != -1) { switch (opt) { case 'h': @@ -72,6 +74,7 @@ printf("\n Утилита предназначена для аварийной U -p - последовательный порт для общения с загрузчиком (по умолчанию /dev/ttyUSB0\n\ -m - вывести карту файла прошивки и завершить работу\n\ -e - разобрать файл прошивки на разделы и завершить работу\n\ +-r - перезагрузить модем после прошивки\n\ \n",argv[0]); return; @@ -83,6 +86,10 @@ printf("\n Утилита предназначена для аварийной U mflag=1; break; + case 'r': + rflag=1; + break; + case 'e': eflag=1; break; @@ -188,7 +195,7 @@ send_cmd(cmddone,1,replybuf); // Входим в HDLC-режим printf("\n Входим в режим HDLC..."); -port_timeout(50); +port_timeout(100); write(siofd,datamodecmd,strlen(datamodecmd)); res=read(siofd,replybuf,6); if (res != 6) { @@ -266,6 +273,9 @@ for(part=0;part