Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32. Keil. Добавить контрольную сумму в ELF файл
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Олег Гаврильченко
Используется STM32F405RG. Среда разработки Keil 4 или 5
Необходимо расчитать контрольную сумму программы во flash-памяти и записывать ее в конец 10-го сектора flash. (11-й последний сектор, используется под энергонезависимые настройки).
Это контрольная сумма должна пресутсвовать в hex-файле. Это я сделал. Keil генерирует hex, я по нему расчитываю контрольную сумму и пишу в этот hex.
Вопрос: нельзя ли как-то добавлять эту контрольную сумму не в hex, а в ELF файл?
Дело в том, что отладчик Keil обязательно записывает программу из ELF при старте отладки(хотя галочка Update Target before Debug снята, он пишет туда все равно)
scifi
Цитата(Олег Гаврильченко @ Jul 10 2015, 18:35) *
Дело в том, что отладчик Keil обязательно записывает программу из ELF при старте отладки(хотя галочка Update Target before Debug снята, он пишет туда все равно)

У меня никогда не было такой проблемы. Убираю галку "Load Application at Startup", прицепляю скрипт отладчика debug.ini, в нём пишу "LOAD my_elf_file.axf NOCODE", чтобы в отладчик загрузилась отладочная информация.
x893
Конечно можно и в ELF - пропишите уникальную константу вместо суммы.
после расчета меняйте в elf константу на сумму.
Олег Гаврильченко
Цитата(x893 @ Jul 11 2015, 02:36) *
Конечно можно и в ELF - пропишите уникальную константу вместо суммы.
после расчета меняйте в elf константу на сумму.

А как ее менять эту константу в ELF файле? Я ведь делаю расчет КС уже после того, как ELF файл создан?
KnightIgor
Цитата(Олег Гаврильченко @ Jul 13 2015, 08:56) *
А как ее менять эту константу в ELF файле? Я ведь делаю расчет КС уже после того, как ELF файл создан?

В KEIL нет встроенной возможности внести контрольную сумму в образ. Это надо делать внешним приложением, модифицируя файл образа. Либо напишите такое сами, либо поищите в сети: может кто на sourceforge.net это уже сделал.
Mihey_K
Ссылка
Еще к примеру для LPC17xx в сети был скрипт для встраивания по нулевым адресам в прошивку CRC.
Олег Гаврильченко
Цитата(Mihey_K @ Jul 14 2015, 00:53) *
Ссылка
Еще к примеру для LPC17xx в сети был скрипт для встраивания по нулевым адресам в прошивку CRC.

Спасибо за статью. Но в ней CRC не записывается в ELF файла, только в bin.
Mihey_K
Цитата
Но в ней CRC не записывается в ELF файла, только в bin

А какая разница, elf это исходный бинарный формат, из него получают bin, отбрасывая ненужные поля. objcopy в примере это и делает. Но это к слову, пример там для make и gcc.
Вам же нужен исходник примера. Поправьте сишник для нужного смещения в файле и соберите в mingw. Останется прикрутить исполнение файла в Keil после сборки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.