Alexies писал(а):
О, поздравляю!
Да, stack pointer аналогично нужно сохранять и подменять. Потому что мало ли какую прошивку люди напишут)
Логика работы моего загрузчика такая:
1) Прошиваемся, запоминаем хэш от прошивки
2) Если на карте есть образ прошивки, то сверяем его хэш с запомненным. Если не совпадает - перепрошиваемся. Иначе - нормальная загрузка.
Проверка целостности по этому же хэшу происходит. Рядом должен быть файл с правильным хэшом.
Таким образом, содержимое sd-карты не меняется (ничего не переименовывается) - это удобно при отладке, не надо перетыкать карту, чтобы ещё раз протестировать загрузчик.
Вместо hex-фалов я использую бинарный образ. Поддержку hex может приделаю, проблем нет, но это не даст абсолютно никаких плюсов. Построчные контрольные суммы, которые предполагает hex, не гарантируют того, что файл, скажем, не обрезан на середине, или что несколько строк не выкинуты. Поэтому использовать эти суммы для проверки целостности бессмысленно, всё равно нужен хеш.
Спасибо!
А какой бинарик?
Это gcc генерит?
Я видел бинарики в папке сборки проекта, но не знаю его структуру.
Ну мне перетыкать то карту не надо.
И шью прямо hex, а могу и зашифрованный hex прошить.
И вроде хвосты подчистил.
Раньше - если бутлоадер и прошивка на разной частоте работали, то в прошивке звука не было.
Сейчас вроде всё норм!
В общем - загрузчик у меня (у нас
) есть.
Теперь надо таг собирать, да думать над распределением ролей между повязкой и тагом.
P.S. А как хеш прошивки получить?