MKdemiurg 1 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 21 minutes ago, Forger said: Ну, так обычно и делают после обновления прошивки - soft reset )) Ну идея в этом и состояла. Просто как я понимаю, если я расположу копирующую функцию в RamFunc существующей секции , то стартап код для нее уже есть. Достаточно прописать атрибут для функции и не "выпрыгивать" из этой функции до полного копирования? или это не будет работать? 14 minutes ago, x893 said: Скопировать не проблема, А вот что делать если у Вас половина запишется и произойдёт сброс ? Получите кирпич. От этой ситации и пляшите. Когда придумаете - всё остальное будет мелочью. Расписывать лень, но сейчас набегут гуру программирования и накидают советов на вентилятор. да сверху уже расписали. резервирование на А и Б загрузчик во флеше. Но тогда нужна ещё и область которая будет валидировать и выбирать нужный. Скорее так и сделаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 40 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 13 minutes ago, MKdemiurg said: Но тогда нужна ещё и область которая будет валидировать и выбирать нужный. Правильно. И которая никогда не изменяется. FSL - First Stage Loader SSL - Secondary Stage Loader APP - Application Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 19 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба Just now, x893 said: Правильно. И которая никогда не изменяется Таким должен быть изначально бут, не убиваемый и надежный, который не надо обновлять. Иначе потребуется бут, который будет перешивать бут, который будет перешивать еще один бут. Так и до клиники недолго )) 4 minutes ago, x893 said: FSL - First Stage Loader У STM такое есть, DFU, жестко зашит во всех МК, его невозможно перешить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 5 minutes ago, Forger said: Таким должен быть изначально бут, не убиваемый и надежный, который не надо обновлять. Иначе потребуется бут, который будет перешивать бут, который будет перешивать еще один бут. Так и до клиники недолго )) У STM такое есть, DFU, жестко зашит во всех МК, его невозможно перешить. У меня китаец. Там бут только на порту UART. + нужна крипта Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 19 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба Just now, MKdemiurg said: + нужна крипта это прекрасно реализуется в вашем буте, ключ шифрования можно сделать доступным для смены через отдельную недокументированную команду, или зашить в бут жестко так же можно сделать что каждая прошивка зашифрована уникально для каждого девайса в зависимости ее его серийника а еще один бут сверху - масло масляное, имхо отладить один раз бут, с поддержкой восстановления кирпича, проэмулировав все нештатные ситуации и не придется перешивать бут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 197 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 1 час назад, MKdemiurg сказал: Достаточно прописать атрибут для функции и не "выпрыгивать" из этой функции до полного копирования? или это не будет работать? Не достаточно. Где гарантия, что у вашей рамфункции не будет общих частей с кодом во флешь? Или с другими рамфункциями? Ведь компилятор/комповщик, когда собирает вашу программу, не знает, что часть кода может отсутствовать при выполнении какой-то функции. Или вы смогли как-то это ему объяснить? Вот взял он и объединил какие-то данные или функции, которые есть в вашей прошивающей функции и в остальном коде. Оптимизатор это часто делает. Вроде IAR для ramfunc-ий не должен объединять данные/код между ramfunc-циями и флешевыми. Но кто его знает. Я бы не рассчитывал. Да и другие ramfunc в программе могут быть - объединит с ними, а вы займёте их место в ОЗУ какими-нить данными. Потому я и говорил, что прошивающий код нужно компилить как отдельную программу. Полностью независимую. Обсуждали это уже ранее на форуме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба On 3/17/2023 at 5:38 PM, jcxz said: Не достаточно. Где гарантия, что у вашей рамфункции не будет общих частей с кодом во флешь? Или с другими рамфункциями? Ведь компилятор/комповщик, когда собирает вашу программу, не знает, что часть кода может отсутствовать при выполнении какой-то функции. Или вы смогли как-то это ему объяснить? ну собственно в этом и проблема. И тут гарантия только в том, чтобы не использовать не RAM функции внутри функции. On 3/17/2023 at 4:53 PM, Forger said: это прекрасно реализуется в вашем буте, ключ шифрования можно сделать доступным для смены через отдельную недокументированную команду, или зашить в бут жестко так же можно сделать что каждая прошивка зашифрована уникально для каждого девайса в зависимости ее его серийника а еще один бут сверху - масло масляное, имхо отладить один раз бут, с поддержкой восстановления кирпича, проэмулировав все нештатные ситуации и не придется перешивать бут Ну это я как раз всё сделал. ECDSA и тд. Перепрошивка Бута - одно из требований. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 19 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 40 minutes ago, MKdemiurg said: Перепрошивка Бута - одно из требований. Тогда как ранее описал - специальная прошивка, которая внутри содержит новый бут и при заливке сама его обновляет. Сам бут не имеет права перешивать себя . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 197 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 3 часа назад, MKdemiurg сказал: И тут гарантия только в том, чтобы не использовать не RAM функции внутри функции. Это не даёт никакой гарантии. Так как оптимизатор может объединить одинаковые участки программ. И положить этот общий код куда-то не туда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 136 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба Я у себя в проектах загрузчиков, где RAM мало, чтобы туда всю программу не копировать, разделил исходники на "only-ROM execution" и "only-RAM execution" с соответственной линковкой по файлам. Соответственно, вся инициализация исполняется из ROM, остальное из RAM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
skripach 5 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба On 3/17/2023 at 2:06 AM, MKdemiurg said: Как правильно перепрошить загрузчик Правильно - не перепрошивать загрузчик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 197 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба Можно и перепрошивать. Если его >=2 копии есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 136 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба Правильно - реализовать то, что написано в ТЗ и получить бабосики. Не более, не менее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 197 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба Чтобы его реализовать, его надо сперва написать. А в наших реалиях пишет его как правило тот же, кто и реализует потом. Надеюсь - Вы согласны? Или у Вас по-другому дела обстоят? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 40 20 марта, 2023 Опубликовано 20 марта, 2023 · Жалоба 35 minutes ago, jcxz said: Чтобы его реализовать, его надо сперва написать. А в наших реалиях пишет его как правило тот же, кто и реализует потом. Надеюсь - Вы согласны? Или у Вас по-другому дела обстоят? https://www.feaser.com/openblt/doku.php Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться