Перейти к содержанию
    

Контрольная сумма в hex файле

Проскакивала тема, в которой про это писалось (правда там только упоминалось, что человек сумму прописывает, а как - не описывалось). Поиском тоже что-то не нашел, может, не то искал.

 

 

 

 

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

 

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

 

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

 

 

 

 

З.Ы. Использую makefile, который шел в проекте FreeRTOS. компилятор gcc version 3.4.3.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласно User Manual на чип. Можно руками в startup

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

 

Правда остается открытым вопрос: можно ли как-то автоматизировать подсчет этой суммы. Ведь, как я понимаю, при изменении векторов в стартапе ее придется заново пересчитывать. Или автоматизм только в средах с галочками (IAR, Keil)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правда остается открытым вопрос: можно ли как-то автоматизировать подсчет этой суммы. Ведь, как я понимаю, при изменении векторов в стартапе ее придется заново пересчитывать. Или автоматизм только в средах с галочками (IAR, Keil)?

Проще сами вектора зафиксировать - заменить бренчи на LDR PC, [PC, #<offset>], тогда меняться ничего и не будет.

Или автоматизировать самостоятельно, окучивая бинарник маленькой консольной программкой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дошли руки до экспериментов

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/, мануал к ней - в гугле

 

материалы по теме ;)

google: srec_cat site:electronix.ru

 

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

 

 

PS а кейл контрольную сумму в hex не вписывает, несмотря на то, что он - с галочками :)

Изменено пользователем esaulenka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...