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