|
|
|
@ -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;
|
|
|
|
|