Вступить в клуб →
сложнаявопросПрошивка: память, загрузчик и надёжность

Загрузчик отвергает каждую новую прошивку с ошибкой CRC

Сборочный скрипт считает CRC32 по файлу firmware.bin (93 412 байт) и дописывает её в заголовок. Загрузчик проверяет образ так:

uint32_t crc = crc32((uint8_t *)APP_START, APP_SLOT_SIZE);   /* 128 КБ */
if (crc != hdr->crc) reject_image();

Образ во flash записан верно — побайтное сравнение с файлом совпадает. Но загрузчик отвергает любую прошивку. Что исправить?

  • Хранить в заголовке длину и считать CRC по ней
  • Считать CRC32 загрузчиком в обратном порядке
  • Стирать слот нулями, а не значением 0xFF
  • Округлить размер образа до страницы flash

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела