From 2baea5037cdac14df9ad77a044b4dc99a3ed1d8b Mon Sep 17 00:00:00 2001 From: forth32 Date: Sat, 6 May 2017 07:01:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BA=D0=BE=D0=B4=D1=8B=20=D0=B7=D0=B0=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D1=8B:=200=20-=20=D0=9E=D0=9A=20?= =?UTF-8?q?-1=20-=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20=D0=B2=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=BD=D0=BE=D0=B9=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BA=D0=B5=20=D0=B8=D0=BB=D0=B8=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D0=B5=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2=20-2=20-=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B8,=20=D0=B2=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=89=D0=B0?= =?UTF-8?q?=D0=B5=D0=BC=D1=8B=D0=B5=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BC=D0=BE?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- balong_flash.c | 22 +++++++++++----------- build | 2 +- flasher.c | 6 +++--- signver.c | 7 ++++--- util.c | 8 ++++---- 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/balong_flash.c b/balong_flash.c index f6042f2..f751d41 100644 --- a/balong_flash.c +++ b/balong_flash.c @@ -39,7 +39,7 @@ int npart=0; // число разделов в таблице //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -void main(int argc, char* argv[]) { +int main(int argc, char* argv[]) { unsigned int opt; int res; @@ -70,7 +70,7 @@ printf("\n Утилита предназначена для прошивки м -r - принудительно перезагрузить модем без прошивки разделов\n\ -f - прошить даже при наличии ошибок CRC в исходном файле\n\ \n",argv[0]); - return; + return 0; case 'p': strcpy(devname,optarg); @@ -110,7 +110,7 @@ printf("\n Утилита предназначена для прошивки м case '?': case ':': - return; + return -1; } } printf("\n Программа для прошивки устройств на Balong-чипсете, V3.0.%i, (c) forth32, 2015, GNU GPLv3",BUILDNO); @@ -121,17 +121,17 @@ printf("\n---------------------------------------------------------------------- if (eflag&sflag) { printf("\n Ключи -s и -e несовместимы\n"); - return; + return -1; } if (kflag&rflag) { printf("\n Ключи -k и -r несовместимы\n"); - return; + return -1; } if (nflag&(eflag|sflag|mflag)) { printf("\n Ключ -n несовместим с ключами -s, -m и -e\n"); - return; + return -1; } @@ -147,7 +147,7 @@ if (optind>=argc) { printf("\n - Не указан каталог с файлами\n"); else printf("\n - Не указано имя файла для загрузки, используйте ключ -h для подсказки\n"); - return; + return -1; } if (nflag) @@ -158,7 +158,7 @@ else { in=fopen(argv[optind],"rb"); if (in == 0) { printf("\n Ошибка открытия %s",argv[optind]); - return; + return -1; } } @@ -178,14 +178,14 @@ if (mflag) show_file_map(); // выход по ошибкам CRC if (!fflag && errflag) { printf("\n\n! Входной файл содержит ошибки - завершаем работу\n"); - return; + return -1; } //------- Режим разрезания файла прошивки if (eflag|sflag) { fwsplit(sflag); printf("\n"); - return; + return 0; } sio: @@ -198,7 +198,7 @@ open_port(devname); // Определяем режим порта и версию dload-протокола res=dloadversion(); -if (res == -1) return; +if (res == -1) return -2; if (res == 0) { printf("\n Модем уже находится в HDLC-режиме"); goto hdlc; diff --git a/build b/build index 188ccfe..f414671 100644 --- a/build +++ b/build @@ -1 +1 @@ -225 +226 diff --git a/flasher.c b/flasher.c index 2f0defc..a8bdec2 100644 --- a/flasher.c +++ b/flasher.c @@ -200,7 +200,7 @@ printf("\n"); if (!dload_start(ptable[part].hd.code,ptable[part].hd.psize)) { printf("\r! Отвергнут заголовок раздела %i (%s)",part,ptable[part].pname); printerr(); - return; + exit(-2); } maxblock=(ptable[part].hd.psize+(fblock-1))/fblock; // число блоков в разделе @@ -213,7 +213,7 @@ printf("\n"); if (!dload_block(part,blk,ptable[part].pimage)) { printf("\n! Отвергнут блок %i раздела %i (%s)",blk,part,ptable[part].pname); printerr(); - return; + exit(-2); } } @@ -221,7 +221,7 @@ printf("\n"); if (!dload_end(ptable[part].hd.code,ptable[part].hd.psize)) { printf("\n! Ошибка закрытия раздела %i (%s)",part,ptable[part].pname); printerr(); - return; + exit(-2); } } // конец цикла по разделам } diff --git a/signver.c b/signver.c index 071f512..4ceb335 100644 --- a/signver.c +++ b/signver.c @@ -109,7 +109,7 @@ uint32_t signlen; // длина подписи if (gflag != 0) { printf("\n Дублирующийся ключ -g\n\n"); - exit(0); + exit(-1); } strcpy(parm,sparm); // локальная копия параметров @@ -132,7 +132,7 @@ if (strncmp(parm,"*,",2) == 0) { signtype=atoi(sptr+1); if (fw_description(signtype) == 0) { printf("\n Ключ -g: неизвестный тип прошивки - %i\n",signtype); - exit(0); + exit(-1); } } else { @@ -150,7 +150,7 @@ return; perror: printf("\n Ошибка в параметрах ключа -g\n"); - exit(0); + exit(-1); } @@ -167,5 +167,6 @@ uint8_t replybuf[200]; res=atcmd(signver,replybuf); if ( (res