реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32. Keil. Добавить контрольную сумму в ELF файл
Олег Гаврильченк...
сообщение Jul 10 2015, 15:35
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Используется STM32F405RG. Среда разработки Keil 4 или 5
Необходимо расчитать контрольную сумму программы во flash-памяти и записывать ее в конец 10-го сектора flash. (11-й последний сектор, используется под энергонезависимые настройки).
Это контрольная сумма должна пресутсвовать в hex-файле. Это я сделал. Keil генерирует hex, я по нему расчитываю контрольную сумму и пишу в этот hex.
Вопрос: нельзя ли как-то добавлять эту контрольную сумму не в hex, а в ELF файл?
Дело в том, что отладчик Keil обязательно записывает программу из ELF при старте отладки(хотя галочка Update Target before Debug снята, он пишет туда все равно)
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 10 2015, 15:55
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Олег Гаврильченко @ Jul 10 2015, 18:35) *
Дело в том, что отладчик Keil обязательно записывает программу из ELF при старте отладки(хотя галочка Update Target before Debug снята, он пишет туда все равно)

У меня никогда не было такой проблемы. Убираю галку "Load Application at Startup", прицепляю скрипт отладчика debug.ini, в нём пишу "LOAD my_elf_file.axf NOCODE", чтобы в отладчик загрузилась отладочная информация.
Go to the top of the page
 
+Quote Post
x893
сообщение Jul 10 2015, 23:36
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Конечно можно и в ELF - пропишите уникальную константу вместо суммы.
после расчета меняйте в elf константу на сумму.
Go to the top of the page
 
+Quote Post
Олег Гаврильченк...
сообщение Jul 13 2015, 07:56
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Цитата(x893 @ Jul 11 2015, 02:36) *
Конечно можно и в ELF - пропишите уникальную константу вместо суммы.
после расчета меняйте в elf константу на сумму.

А как ее менять эту константу в ELF файле? Я ведь делаю расчет КС уже после того, как ELF файл создан?
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jul 13 2015, 09:20
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



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

В KEIL нет встроенной возможности внести контрольную сумму в образ. Это надо делать внешним приложением, модифицируя файл образа. Либо напишите такое сами, либо поищите в сети: может кто на sourceforge.net это уже сделал.
Go to the top of the page
 
+Quote Post
Mihey_K
сообщение Jul 13 2015, 21:53
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747



Ссылка
Еще к примеру для LPC17xx в сети был скрипт для встраивания по нулевым адресам в прошивку CRC.


--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
Go to the top of the page
 
+Quote Post
Олег Гаврильченк...
сообщение Jul 14 2015, 08:26
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052



Цитата(Mihey_K @ Jul 14 2015, 00:53) *
Ссылка
Еще к примеру для LPC17xx в сети был скрипт для встраивания по нулевым адресам в прошивку CRC.

Спасибо за статью. Но в ней CRC не записывается в ELF файла, только в bin.
Go to the top of the page
 
+Quote Post
Mihey_K
сообщение Jul 14 2015, 09:57
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747



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

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


--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01549 секунд с 7
ELECTRONIX ©2004-2016