Из .sre в .bin
Что делать, если у вас прошивка в формате .sre, а вам нужный чистый бинарный код, т.е. bin?
Если вас интересует как преобразовать .sre в .bin, то перелистнете на конец страницы. Информация под чертой содержит пояснение где может пригодиться данное преобразование.
Когда может пригодиться чистый бинарный код?
Я сталкивался на своем опыте с двумя ситуациями:
- Программатор «глупый» и не умеет работать с sre, он требует чистый бинарный файл, без всяких оболочек, как sre
- И ситуация когда мы не можем прошить ПЗУ, решение данной проблемы «идти в обход», т.е. записать код напрямую в оперативную память (с помощью утилит программатора), а далее из ОЗУ в ПЗУ (с помощью утилит программатора или команд процессора заранее загруженный в ОЗУ). В таком случае если у вас прошивка в формате sre вам необходимо её переформатировать в чистый бинарный код (т.е. в bin) для записи в ОЗУ.
Для конвертирования из .sre в .bin я использовал утилиту SREC2BIN (скачать можно здесь, для того, чтобы скачать srec2bin для Windows перейди по ссылке с именем Executable).
Приведу пример как конвертировать из sre в bin, с помощью SREC2BIN:
Открываем командную строку (cmd) и далее вводим
1 |
srec2bin.exe name_file.bin -B 15000 -s name_file.sre |
Где
- name_file.bin — имя результирующего bin файла
- name_file.sre — имя sre файла донора
- -B — параметр указывающий что размер итого bin файла будет равен 15 килобайт)
У вас должен возникнуть вопрос, откуда я знаю размер bin файла? Да, знать вы его не можете, от вас требуется указать лишь примерное значение, возьмите как пример — размер sre файла донора из которого вы хотите получить свой бинарник.
Как только вы нажмете Enter, srec2bin переконвертирует sre и создаст бинарный файл с именем name_file.bin. Но результирующий бинарник нужно еще почистить от пустых мест (0xFF), помните вы указывали размер? Так вот, srec2bin чистый бинарный код прижал к концу файла, а все что выше заполнил 0xFF-ами. Дальше открываете в любом HEX редакторе этот бинарный файл и очищаете от ненужных 0xFF-ов, все что и требовалось…
P.S. Если в вашем sre файле бинарный код идет с разрывами (адреса «перескакивают», то вам придется резать результирующий bin файл на те же блоки и сохранять каждый в отдельный bin файл, иначе вы загрузите все одним неправильным монолитным куском). Узнать есть ли «разрывы» в sre файле, вы можете с помощью утилиты sre_info (информация ниже).
Стоит обратить внимание на следующую программу:
- SRecord — авторская программа для работы с файлами sre.
Скачать утилиту можно здесь (для скачивания перейдите в раздел Download, далее выберите ОС, если вам нужна версия под Windows, то спускаетесь до конца страницы (абзац «Pre-compiled Windows Executables») и переходите по ссылке «SourceForge.net download mirrors», далее выбираете версию и качаете). SRecord это пакет из трех консольных программ:
srec_cat -для просмотра и конвертирования sre,
srec_cmp — для сравнение sre,
srec_info — информация о sre.Утилита sre_info поможет вам оценить как идет бинарный код в файле, сплошной ли он или имеет разрывы.
Вам будет интересно:
Буду признателен если вы поделитесь данным постом