Не нашел ничего, чем бы мог преобразовать такой Hex формат (файл прилагается) в BIN-арник.
Сам файл это программатором снятый образ HP Smart Array P400 контроллера для серверов от HP.
Пробовал и Hex2Bin и Mot2Bin - ничего его не берет.
По файлу видно, что ве записи размером 3А и если подставлять ASCII в HEX с перестановками соседних байт, то получаем осмысленный текст.
Может кто сталкивался с подобным, подскажите чем его взять можно (конвентировать)
Файл прошивки прилагается (первые 64 кб из 20Мб) для примера.
Из него по идее должен получиться 4 МБ бинарник.
| Вложение | Размер |
|---|---|
| 29lv320_.bin | 64 КБ |
Да, микросхема в которой все это содержится MX29LV320CTTI 90G
Насчет перестановок - см. документацию на флэшку. Вполне возможно, что она умеет работать и в 8-битном, и в 16-битном режиме. При этом скорее всего порядок байтов как раз и изменится.
Касательно что делать с BIN-файлом - а есть какие-нибудь альтернативные варианты сохранения файла образа софтом программатора?
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Да, флешка работает в двух режимах 8-битном, и в 16-битном.
Программатор, к сожалению ничего другого не предлагает, У меня XelteK 3000U.
Посмотрел внимательнее на файл, формат таков -- 58 байт в HEX формате, затем то же самое 19 байт только в ASCII формате и так далее.
pdf1.alldatasheet.com/datasheet-pdf/view/143146/MCNIX/MX29LV320CTTC-90G.html
ссылка на микрухуесли что
Выкладываю мануал на микруху, но там о формате прошивки я ничего нее нашел
var f_in: file of byte; f_out: file; symb, bbyte: byte; i: integer; addr, a_ch, f_pos: longint; buf: array [0..$0F] of byte; label Next, Exit_all; begin assign(f_in,'in.bin'); assign(f_out,'out.bin'); reset(f_in); if IOResult<>0 then goto Exit_all; rewrite(f_out,16); if IOResult<>0 then goto Exit_all; addr:=0; Next: a_ch:=$FFFFFFFF; f_pos:=filepos(f_in); for i:=0 to 7 do begin read(f_in,symb); if IOResult<>0 then goto Exit_all; if ((symb>$2F) and (symb<$3A)) then symb:=symb-$30 else if ((symb>$40) and (symb<$47)) then symb:=symb-$37 else goto Next; a_ch:=(a_ch shl 4) or symb; end; if a_ch<>addr then begin seek(f_in,f_pos+1); goto Next; end; read(f_in,symb); read(f_in,symb); for i:=0 to $0F do begin bbyte:=0; read(f_in,symb); if ((symb>$2F) and (symb<$3A)) then symb:=symb-$30 else if ((symb>$40) and (symb<$47)) then symb:=symb-$37 else goto Exit_all; bbyte:=(bbyte shl 4) or symb; read(f_in,symb); if ((symb>$2F) and (symb<$3A)) then symb:=symb-$30 else if ((symb>$40) and (symb<$47)) then symb:=symb-$37 else goto Exit_all; bbyte:=(bbyte shl 4) or symb; read(f_in,symb); buf[i]:=bbyte; end; blockwrite(f_out,buf,1); addr:=addr+$10; goto Next; Exit_all: close(f_in); close(f_out); end.Пасквиль.
Входной файл - in.bin, выходной файл - out.bin.
А программатору, который сливает в файл такой мусор, нужно было еще во младенчестве засунуть паяльник на 100 Вт поглубже и провернуть
солидарен с maco. Программатор должен давать возможность сохранять в обычный бинарный файл. Идентичному содержимому считываемой микросхемы. Но от Хелтека такой подляны не ожидал. Уверен в стандартном наборе ПО программатора есть возможность конвертации...
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Спасибо, за советы. Попробую на другом программаторе поработать.
То maco, не мог бы слить мне сюда ехе-ник этого дела или на мыло , просто с компилятором щас воевать не охота,
а уж очень хочется по-скорее полученный бинарник поковырять.
Спасибо за советы!!!
Результат желательно проверять глазами, т.к. я мог учесть не все особенности извращенной логики этого программатора
.
Отправить комментарий