-
- Вот я помню, что в 8-разрябных ПИКах это было очень надо, а зачем - уже склероз. Вычисляемые переходы, таблицы и проч. - Крок(24.12.2018 08:30)
- так и у меня в 8-битном Z8Encore это везде штатно. Бутлодер в конце памяти. Перед ним - .org %383E. Я туда свободно прыгаю из основной программы, перепрошиваю нужное количество страниц и вуаля. Новая прошивка. - Лагунов(24.12.2018 08:57)
- Тогда проще бут тоже в конце расположить и при прошивке подменять адрес штатного ресета на начало бута. Тогда при старте прыгнет в бут и из него при правильной CRC программы и через пару секунд обратно на программу: правильный адрес ресета можно Andreas(234 знак., 24.12.2018 11:06)
- да мне как раз было бы понятней, если бы человек из меню шагнул в бут. Если там всё есть - прошивка (и перезапуск). Если чего-то не так - возврат. Для того и хочу узнать - как функцию бута разместить гарантировано за пределами возможной прошивки. - Лагунов(24.12.2018 12:15)
- Но при этом уж совсем любой сбой окирпичит девайс. Лучше, когда при сбое процесса прошивки или зашивки не того, можно было девайс к жизни вернуть без вскрытия. - Andreas(24.12.2018 12:35)
- ну как только стер первую страницу уже ты весь подвис. Если сбой - только вскрывать. Это ведь у кого угодно. - Лагунов(24.12.2018 13:20)
- В классическом варианте в первой странице сидит загрузчик и никогда не стирается. Для Кортекса-М0 без переноса регистра начала таблицы векторов это грустно, приходится ее в ОЗУ переправлять и прочим гимором заниматься. Кроме того надо правильно Andreas(276 знак., 24.12.2018 13:45)
- И зачем её стирать? Там должен сидеть нестираемый загрузчик, чтобы никаких кирпичей. - SciFi(24.12.2018 13:24)
- ну как только стер первую страницу уже ты весь подвис. Если сбой - только вскрывать. Это ведь у кого угодно. - Лагунов(24.12.2018 13:20)
- Делаю так же, как s_h_e говорит: сброс и анализ флагов. Из бонусов: МК после сброса в известном состоянии. Но возврата нет. Кстати, "если чего не так" без бута можно проверить. Дублирование кода в загрузчике и в основной прошивке не есть SciFi(16 знак., 24.12.2018 12:19, ссылка)
- При острой необходимости это зло решается переносом функций в загрузчик, и использованием их из приложения с помощью таблицы адресов. - VLLV(24.12.2018 12:53)
- И такое делал. Но Лагунов хвастается избытком памяти, такшта есть хороший повод его использовать :-) - SciFi(24.12.2018 12:54)
- При острой необходимости это зло решается переносом функций в загрузчик, и использованием их из приложения с помощью таблицы адресов. - VLLV(24.12.2018 12:53)
- Но при этом уж совсем любой сбой окирпичит девайс. Лучше, когда при сбое процесса прошивки или зашивки не того, можно было девайс к жизни вернуть без вскрытия. - Andreas(24.12.2018 12:35)
- да мне как раз было бы понятней, если бы человек из меню шагнул в бут. Если там всё есть - прошивка (и перезапуск). Если чего-то не так - возврат. Для того и хочу узнать - как функцию бута разместить гарантировано за пределами возможной прошивки. - Лагунов(24.12.2018 12:15)
- Тогда проще бут тоже в конце расположить и при прошивке подменять адрес штатного ресета на начало бута. Тогда при старте прыгнет в бут и из него при правильной CRC программы и через пару секунд обратно на программу: правильный адрес ресета можно Andreas(234 знак., 24.12.2018 11:06)
- так и у меня в 8-битном Z8Encore это везде штатно. Бутлодер в конце памяти. Перед ним - .org %383E. Я туда свободно прыгаю из основной программы, перепрошиваю нужное количество страниц и вуаля. Новая прошивка. - Лагунов(24.12.2018 08:57)
- Вот я помню, что в 8-разрябных ПИКах это было очень надо, а зачем - уже склероз. Вычисляемые переходы, таблицы и проч. - Крок(24.12.2018 08:30)