ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
1356865 Топик полностью
vpv.vpv (02.10.2023 08:44, просмотров: 111) ответил AlexG на Фича то работает. Проблема в том, что у меня прошивка содержит переменную часть, и правильная CRC разная при каждой попытке прошивки. Альтернатива - выносить изменяемую часть в непопадающую под CRC область.
Прошивка чем грузится - программатором или бутлоадером? Я делал так: бутлоадер (фиксированный) с фиксированной своей CRC, при каждом сбросе вначале проверяет сам себя. Далее, читает длину и CRC рабочей программы из EEPROM, подсчитывает CRC, и если совпало - передаёт управление. Если выбран режим обновления, то Бутлоадер (по СОМ-порту) вначале из шапки прошивки читает её длину и CRC, затем прошивает МК, подсчитывая CRC. Если в конце CRC совпали, то новая длина и новая CRC 

переписываются в EEPROM поверх старых значений. Если нет, то после сброса Бутлоадер определит несовпадение и начнет ругаться, что рабочая программа повреждена.