"Кастомные" бутлоадеры

Alex4362
Offline
Зарегистрирован: 31.07.2019

Ребят, подскажите бутлоадеры с фичами которых нет в официальном и оптибуте

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

У обоих исходник входит в состав ИДЕ. Пиши хоть с блэкджеком и "пианистками".

VladimirTsibrov
Offline
Зарегистрирован: 05.03.2019

Сначала Вы скажите, какие фичи хотите найти. 

Alex4362 пишет:

...в официальном и оптибуте

Оптибут является официальным для платы Уно с ее рождения, если не ошибаюсь. И не так давно стал официальным для других плат на базе atmega328.

Alex4362
Offline
Зарегистрирован: 31.07.2019

Например "переключение" между несколькими программами

sadman41
Offline
Зарегистрирован: 19.10.2016

Как в виндовс? 

Или надо grub тудыть портировать?

Alex4362
Offline
Зарегистрирован: 31.07.2019

sadman41 пишет:

Или надо grub тудыть портировать?

Почти что. Если на ножке 0 - грузим первую программу, 1 - вторую

VladimirTsibrov
Offline
Зарегистрирован: 05.03.2019

Alex4362 пишет:

Например "переключение" между несколькими программами

Такой загрузчик Вы точно не найдете. Они не для этого.

 

Alex4362 пишет:

Если на ножке 0 - грузим первую программу, 1 - вторую

А почему бы не разрулить это в рамках одной программы?

-NMi-
Offline
Зарегистрирован: 20.08.2018

Alex4362 пишет:

Почти что. Если на ножке 0 - грузим первую программу, 1 - вторую

Это как? Программы ФИЗИЧЕСКИ разнесены во Flash-е и у них (у первой и у второй) различные адреса для старта? Или как-то по другому?

PS: Теоретически это возможно и на уровне одной (целой) программы, что писали выше. Возможно и по разным адресам запуска, возможно даже из бутлоадера путём добавления "своих собственных" команд в бутлоадер. И, совсем совсем невозможное --- можно даже сам бутлоадер переписать самим бутлоадером. Отт как )))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Alex4362 пишет:

sadman41 пишет:

Или надо grub тудыть портировать?

Почти что. Если на ножке 0 - грузим первую программу, 1 - вторую

Правильно указано выше, что если есть доступ к исходному коду, то в 100500 раз проще написать суммарную программу с выбором при старте.

АВР контроллер имеет только две таблицы векторов прерываний, одна для бутлоадера и одна для работающего кода. Поэтому нельзя сразу разместить две рабочие прошивки.

НО!!! Можно разместить две-три-четыре... маленькие прошивки (сколько влезет) и, при старте бутлоадера, переписывать в зону исполнения нужную прошивку. По времени это единицы миллисекунд. Но все равно каждую прошивку нужно компилировать с учетом меньшей доступной памяти, то есть все равно нужен доступ к исходному... хотя бы объектному... коду.

Только совершенно непонятно - за каким хреном такое надо? Написать-то можно - заказывай в "Ищу исполнителя", если никто другой не возмется - может и я напишу.

-NMi-
Offline
Зарегистрирован: 20.08.2018

wdrakula пишет:

АВР контроллер имеет только две таблицы векторов прерываний, одна для бутлоадера и одна для работающего кода. Поэтому нельзя сразу разместить две рабочие прошивки.

Можно. Парсер в векторах запросто решает эту задачу. 

РаздЭзЪ чонить коммерческое и шибко-сильно дорогое из проектов - увидишь МНОГО интересного!!!

-NMi-
Offline
Зарегистрирован: 20.08.2018

Alex4362 пишет:

Например "переключение" между несколькими программами

На таком принципе строилась защита AVR проектов... Сначала заливаем одну часть прошивки, генерим сессионный ключ и прошиваем вторую часть, и там "чтото-секретное" и сами себя ещё раз прошиваем уже внутри кристалла ----- и вот вам новая программа во flash. Кстати, весьма эффективная была для AVR защита, пока STM не ввёл серийник на каждый проц ))) AVR теперь "курит" )))))))))))))))))))))