Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Контрольная сумма в hex файле
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
AlexMad
Проскакивала тема, в которой про это писалось (правда там только упоминалось, что человек сумму прописывает, а как - не описывалось). Поиском тоже что-то не нашел, может, не то искал.




Суть вопроса: до недавнего времени отлаживал LPC2388 через segger-овский gdb-server на виртуальной машине. Решил разобраться с openOCD и заставить работать MT-link напрямую (в линуксе).

Так вот, если открыть hex-файл в SEGGER J-Flash, то он ругается, что нужно добавить контрольную сумму. Если отказаться и не добавлять, то прошивка не стартует. Попробовал сохранить измененный файл (с внесенной контрольной суммой). Если использовать его, то он нормально запускается и через openOCD.

То есть, надо как-то на стадии сборки проекта внести эту контрольную сумму. Вот и вопрос: как и где.




З.Ы. Использую makefile, который шел в проекте FreeRTOS. компилятор gcc version 3.4.3.
zltigo
Согласно User Manual на чип. Можно руками в startup
AlexMad
Цитата(zltigo @ Dec 7 2009, 18:15) *
Согласно User Manual на чип. Можно руками в startup

Спасибо за подсказку. До этого думал, что это где-то в скрипте линкера надо указывать, потому и искал в совершенно другом направлении.

Правда остается открытым вопрос: можно ли как-то автоматизировать подсчет этой суммы. Ведь, как я понимаю, при изменении векторов в стартапе ее придется заново пересчитывать. Или автоматизм только в средах с галочками (IAR, Keil)?
aaarrr
Цитата(AlexMad @ Dec 8 2009, 01:51) *
Правда остается открытым вопрос: можно ли как-то автоматизировать подсчет этой суммы. Ведь, как я понимаю, при изменении векторов в стартапе ее придется заново пересчитывать. Или автоматизм только в средах с галочками (IAR, Keil)?

Проще сами вектора зафиксировать - заменить бренчи на LDR PC, [PC, #<offset>], тогда меняться ничего и не будет.
Или автоматизировать самостоятельно, окучивая бинарник маленькой консольной программкой.
esaulenka
дошли руки до экспериментов
Код
srec_cat ^
    input.bin -binary -crop 0x00 0x14 0x18 0x20 -LECN 0x14 4 4 ^
    input.bin -binary -crop 0x20 -max input.bin -binary ^
    -o out.bin -binary


вторая строка - отрезаем от файла всё, кроме 7 векторов, считаем по ней контрольную сумму
третья строка - приклеиваем остаток файла

синтаксис виндового cmd.exe
утилиту брать тут: http://srecord.sourceforge.net/, мануал к ней - в гугле

материалы по теме wink.gif
google: srec_cat site:electronix.ru

aaarrr, идея вписать контрольную сумму в стартап замечательна, спасибо.


PS а кейл контрольную сумму в hex не вписывает, несмотря на то, что он - с галочками smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.