Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Утилита SRecord
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
vesago
Прошу прощения, может не совсем в тему, хоть и проект под АРМ в кейле. Пытаюсь к прошивке прикруть загрузчик сабжем http://srecord.sourceforge.net/. Если кто нибудь исползовал как склеить два бинарника?
richie
Еще досовское "copy /b" чем не устраивает для склейки бинарных файлов?
vesago
Спасибо, не знал что она бинарники может. Но хочется разобраться с SRecord. Она мощнее намного.
haker_fox
Цитата(richie @ Mar 12 2009, 20:58) *
Еще досовское "copy /b" чем не устраивает для склейки бинарных файлов?

GNU'шный инструмент может и под nix'ами юзаться) а там этой команды нет(
Это на тот случай, если инструментарий гнутый...

Цитата(vesago @ Mar 12 2009, 21:04) *
Спасибо, не знал что она бинарники может. Но хочется разобраться с SRecord. Она мощнее намного.

Так на нее же прекрасная дока есть) На счет мощности +1!)
vesago
Цитата(haker_fox @ Mar 12 2009, 15:11) *
Так на нее же прекрасная дока есть)

Есть, да как-то не прокатывает - вываливаются ошибки. Может не понимаю чего. Мне бы пример скрипта глянуть.
Вот вроде начало получаться. Она как я понял любит хекс на входе.
Вот так склеил:
srec_cat.exe bootloader.hex --Intel --offset 0x00 skat.hex --Intel --Output skat_app.bin --Binary
Сейчас хочу еще контрольную сумму добавить и длинну встроенного образа бута. Не получается только промежутки FF залить. Ядерная утилита. Сделал скрипт, который к прошивке подшивает бут с контрольной суммой и длинной:
Код
srec_cat.exe bootloader.hex --Intel --offset 0x04 --l-e-crc32 --min bootloader.hex --Intel --Output bootloader_and_crc32.hex --Intel

srec_cat.exe bootloader_and_crc32.hex --Intel --offset 0x04 --b-e-length --min bootloader.hex --Intel --Output bootloader_and_len_and_crc32.hex --Intel

srec_cat.exe bootloader_and_len_and_crc32.hex --Intel --offset 0x0003DFF8 skat.hex --Intel --o skat_app.hex --Intel

srec_cat.exe skat_app.hex --Intel --fill 0xFF 0x0 0x40000 --o skat_app.bin --Binary

pause
Andy Great
Есть еще hexmate from HiTech. Я как-то пробовал, но не прижилось у меня...
HARMHARM
Заливка дырок 0xFF:
Код
srec_cat.exe application.hex --Intel --fill 0xFF -over application.hex --Intel --Output application.hex --Intel

Запись CRC в конец прошивки:
Код
srec_cat.exe application.hex --Intel --l-e-crc32 --max application.hex --Intel --Output temp.hex --Intel

Склейка прошивки с бутом, с заливкой 0xFF и сдвигом прошивки в рабочее место
Код
srec_cat.exe bootloader.hex --Intel --fill 0xFF 0x0 0x18000 application.hex --Intel --Output combined.hex --Intel

Сдвиг прошивки в рабочее место:
Код
srec_cat.exe temp.hex --Intel --offset -0x18000 --Output temp.bin --Binary

С Hexmate начинал, не то...
vesago
Спасибо за примеры. А как считается CRC32 применительно к этой утилите?
HARMHARM
Цитата(vesago @ Mar 13 2009, 12:03) *
Спасибо за примеры. А как считается CRC32 применительно к этой утилите?

Как положено.
Name : "CRC-32"
Width : 32
Poly : 04C11DB7
Init : FFFFFFFF
RefIn : True
RefOut : True
XorOut : FFFFFFFF
Check : CBF43926
В приложении талмуд по CRC вообще.
vesago
Биг сэнкс
AndreyKar
HARMHARM, в строке "--l-e-crc32 --max" параметр --max пишет CRC по махмально возможному адресу. Как потом, в своих прогах, его находите? Он ведь плавает в зависимости от размера кода.
AndreyKar
Сам отвечу)) В Keilе есть внутренний символ Region$$Table$$Limit, адрес этой переменой и есть последний адрес кода (как-то так)).
HARMHARM
Я располагаю в конце памяти сегмент, его адрес и использую. Точнее адрес этого сегмента кладется в константу в известном месте в заголовке приложения.
AndreyKar
Слукавил я по поводу Region$$Table$$Limit. Правильно использовать Load$$LR$$LR_IROM1$$Limit и размер кода Load$$LR$$LR_IROM1$$Length, при условии, что скаттер файл по умолчанию (для STM32).
yagorik
У меня возник вопрос по Srecord
Мне нужно подсчитать СRC16 hex-файла к примеру от нуля до адреса DDFD(включительно) и записать контрольную сумму по адресу DDFE.
Пишу так(как я понял из helpa, я плохо знаю английский crying.gif ):
Код
srec_cat.exe flash.hex --Intel -crop 0 0xDDFD --l-e-crc16 0xDDFE --output flash(crc16).hex --Intel

Может кто-нибудь подскажет как исправить, а то я совсем умаялся?
Буду благодарен за любую оказанную помощь!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.