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

Как при прошивке микроконтроллера через DebugPort вычислять и записывать контрольную сумму ?

Товарищи,

Вот если я записываю прошивку в микроконтроллер через свой бутлоадер, то бутлоадер по окончании записи вычисляет контрольную сумму всего что записано и сохраняет ее во флэш память МК.

А как бы так сделать, чтобы и при прошивке через отладчик, делалось тоже самое ?

Пока, что я додумался до того, что надо в проекте разместить какие-нибудь статические данные где-то в конце флэш памяти МК.

Модифицировать стандартный Keil'овский проект STM32H7xx_2048(который прошивает МК) и в функции  int ProgramPage (unsigned long adr, unsigned long sz, unsigned char *buf)

следить когда будет обращение к этому адресу и тогда можно полагать, что это конец прошивки и можно вычислять и записывать контрольную сумму.

Cреда Keil MDK-ARM,  микроконтроллер STM32H743.

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


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

2 часа назад, TOG сказал:

Вот если я записываю прошивку в микроконтроллер через свой бутлоадер, то бутлоадер по окончании записи вычисляет контрольную сумму всего что записано и сохраняет ее во флэш память МК.

А как бы так сделать, чтобы и при прошивке через отладчик, делалось тоже самое ?

А зачем? Ведь через отладчик обычно отлаживают. Зачем для этого контрольная сумма?

Но если сильно надо, то можно например где-то хранить флажок "присутствует CRC" и при старте прошивки читать его и, если он не установлен, то самой прошивкой и генерить. Или же делать это если CRC=0 (установленная в исходнике).

 

PS: Вообще-то при отладке логично вообще никакую флешь не шить. Даже прошивкой, не то что её CRC. А отлаживаться в ОЗУ. Коего в вашем МК - как у дурака фантиков.

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


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

59 minutes ago, jcxz said:

А зачем? Ведь через отладчик обычно отлаживают. Зачем для этого контрольная сумма?

Чтобы бутлоадер не ругался на отсутствие подписи у приложения.

1 hour ago, jcxz said:

PS: Вообще-то при отладке логично вообще никакую флешь не шить. Даже прошивкой, не то что её CRC. А отлаживаться в ОЗУ. Коего в вашем МК - как у дурака фантиков.

Отлаживать в ОЗУ это имеется ввиду прошивать код программы не во флэш, а в ОЗУ ?  Мне и в голову такое не приходило. Скажите пожалуйста зачем так делать ?

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


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

17 минут назад, TOG сказал:

Чтобы бутлоадер не ругался на отсутствие подписи у приложения.

Не понял... При чём бутлоадер, если речь об отладке? При отладке отлаживаемая программа грузится в память МК отладочным эмулятором. J-Link например. Бутлоадер тут не нужен.

17 минут назад, TOG сказал:

Отлаживать в ОЗУ это имеется ввиду прошивать код программы не во флэш, а в ОЗУ ?  Мне и в голову такое не приходило.

Не "прошивать", а "грузить". 

17 минут назад, TOG сказал:

Скажите пожалуйста зачем так делать ?

Вроде как очевидно: не насиловать лишний раз флешь (ресурс которого не бесконечен), и во-вторых - увеличить скорость работы (так как в ОЗУ грузится часто многократно быстрее).

И кроме того: При компиляции и отладке программы в разных режимах, часто вылазят скрытые баги. Которые иначе не были бы замечены.

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


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

42 minutes ago, jcxz said:

Не понял... При чём бутлоадер, если речь об отладке? При отладке отлаживаемая программа грузится в память МК отладочным эмулятором. J-Link например. Бутлоадер тут не нужен.

Понятно, что грузится программа в память МК Jlink'ом, но весь проект настроен на работу с бутлоадером, поэтому при каждой отладочной сессии сначала стартует бутлоадер.

46 minutes ago, jcxz said:

И кроме того: При компиляции и отладке программы в разных режимах, часто вылазят скрытые баги. Которые иначе не были бы замечены.

Спасибо, попробую !

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


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

А как бы так сделать, чтобы и при прошивке через отладчик, делалось тоже самое ?
Поискать и найти галочку "Verifying", в IAR ARM есть такая: прошивка с проверкой.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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