MKdemiurg 1 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 9 minutes ago, jcxz said: Что такое "валидирует" и что такое "фиксированный адрес"? Где? В ОЗУ во флешь? Ну в моём случае проверка хэша. Во флешь. Основной загрузчик пишет в сектор в конце флешь новую версию загрузчика, который будет позже переписан при старте субзагрузчиком 9 minutes ago, jcxz said: Две копии - для безопасного обновления, естественно. PS: Сдаётся мне - Вы ничего не поняли в алгоритме безопасного обновления загрузчика..... да не, я понял. Теперь мне кажется избыточным исполнение из ОЗУ. Почему я не могу заниматься копированием их области А в область Б в необновляемом субзагрузчике? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба Субзагрузчик начинает обновлять, выключают питание, занавес... Вы едете в тайгу копать яму до своего девайса, чтобы программатор подключить)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 45 minutes ago, Arlleex said: Субзагрузчик начинает обновлять, выключают питание, занавес... Вы едете в тайгу копать яму до своего девайса, чтобы программатор подключить)) Почему занавес. Ресет. Проверяет основной - а там мусор невалидный. sha256 не совпадает. Проверяет области для временного хранения - там живой рабочий бут. Копирует - взлетает. Получается, что чтобы окирпичить девайс - надо и невалидно бут залить и начать его прошивать когда он невалидный, что можно исключить бизнес-логикой субзагрузчика Вариант окирпичивания - это убить флеш . но ее убить можно только если мы будем постоянно пытаться перелить из временной области в основную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 1 hour ago, Arlleex said: Субзагрузчик начинает обновлять, выключают питание, занавес... Вы едете в тайгу копать яму до своего девайса, чтобы программатор подключить)) Это уже как создатель сделает. Можно и занавес, можно и без него. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 1 час назад, MKdemiurg сказал: Копирует - взлетает. Что значит "копирует"? Если храните что-то во флешь, то просто "скопировать" туда нельзя. Надо "шить". Зачем тогда вам 2 загрузчика если у вас оба шьют и оба получаются сложные, один причём необновляемый? В том алгоритме, о котором писал я и Arlleex, субзагрузчик: это простейший, цикл вычисления контрольной суммы и копирования кода из флешь в ОЗУ. Простейший! Без всяких хешей, функций стирания/программирования флешь и т.п. Когда весь цикл весит несколько десятков байт всего, легко просматриваемый и потому безглючный. А все сложные функции работы с хешами, работы с API прошивки флешь и т.п. - они все находятся в основном обновляемом загрузчике. Который лежит во флешь в 2-х разных местах в двух копиях. И безопасно обновляем. В вашем случае - вы наворотили сложный загрузчик, в котором опять возможны баги. Но который при этом не обновить. Или обновить, но с возможностью образования кирпича. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 13 minutes ago, jcxz said: В том алгоритме, о котором писал я и Arlleex, субзагрузчик: это простейший, цикл вычисления контрольной суммы и копирования кода из флешь в ОЗУ. Простейший! Ну так и в этот будет простейший - вычисление контрольной суммы ( можно и CRC вместо хэша), сравнение версий и копирование уже загруженной копии на рабочее место. Мне кажется использование загрузки из ОЗУ при использовании субзагрузчика тогда избыточно. Только для того , чтобы обойти ограничения привязки к адресу. Но суть вашего предложения ясна. Надо обмозговать. Благодарю. ЗЫ Мы же в любом случае должны писать в субзагрузчике бизнеслогику выбора активного и старого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба А что за МК? В некоторых контроллеры Flash требуют, чтобы код записи во Flash исполнялся из ОЗУ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба 2 hours ago, Arlleex said: А что за МК? В некоторых контроллеры Flash требуют, чтобы код записи во Flash исполнялся из ОЗУ. GD32F Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 17 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба 13 minutes ago, MKdemiurg said: GD32F Какой конкретнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 21 марта, 2023 Опубликовано 21 марта, 2023 · Жалоба Just now, Forger said: Какой конкретнее? GD32F303 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться