Загрузчик для общего STM32?

Zoomx
Пн 27 апреля 2015 г., 14:35
Я прочитал на форуме Arduino, что загрузчик Maple Bootloader не работает на общих платах STM32 из -за небольшой разницы в оборудовании.

Интересно, можно ли реализовать загрузчику, подобный тому, что в маленьком дигисперке.

Rogerclark
Пн 27 апреля 2015 г., 21:35
Я не уверен, что Digispark использует для загрузчика.

На сайте Leaflabs есть интересная страница о загрузчике о том, почему им потребовалось специальное оборудование.
http: // Leaflabs.com/docs/bootloader.HTML

Однако я согласен с тем, что если мы сможем сделать загрузчик, который не нуждается в дополнительном оборудовании, это откроет вещи.

Я отмечаю, что существует «серийная» ветвь оригинального загрузчика Maple, но я не знаю, что это делает или что это сработало.

В любом случае, загрузчик Digispark стоит посмотреть

Редактировать

Я быстро посмотрел на загрузчик Digispark, и в основном это USB -реализация для чипов AVR, которые не имеют нативной поддержки USB.

STM32 немного отличается и больше похож на Arduino Leonardo или Promicro

Я знаю, что было много проблем, его загрузчик Leonardo, так как он использовал Windows, чтобы распределить все больше и больше номеров COM -порта по одной и той же плате.

Поэтому я думаю, что есть ловушки с этим методом, которых нужно избежать.

Я не знаю, будет ли это сработать, но, возможно, можно было бы записано загрузчик, который появляется как то же серийное устройство USB, что и эскиз, и реализует сторону процессора протокола Flash STM32.
Потому что мы могли бы затем использовать существующие двоичные двойные разгрузки STM32Flash E.глин. STM32Flash.Exe

Хитрость, однако, заключается в том, когда загрузчик передает USB -серийный код в эскизе, потому что это должно быть сделано таким образом, так как хост не замечает изменения.
Который, возможно, где у леонардо есть проблемы.

Мы могли бы сделать довольно простой проверку оснований этого подхода

В существующем источнике загрузчика измените USB VID и номера PID и т. Д. На последовательное устройство.
Затем просто дайте просто задержать, прежде чем прыгнуть на эскиз, который создан для Maple Mini, который имеет в нем серийный код USB

Однако это может не сработать, поскольку я подозреваю, что код инициирования из USB -сериала в эскизе должен быть удален

Более радикальный подход к удалению USB -последовательного кода из эскиза является еще одним вариантом, и заставить загрузчик всегда обрабатывать весь серийный трафик

Но, должно быть, была причина, по которой Leaflabs не делал этого ?

Возможно, они инвестировали слишком много времени в загрузки DFU или думали, что высокоскоростные загрузки через DFU были важны для линии клена и клена продуктов.

К сожалению, Марти из Leaflabs занята, занимаясь другими делами, и я сомневаюсь, что у него есть время, чтобы объяснить решения, принятые в то время, когда они сначала с учетом разработали загрузчик и доски и либмапл (что должно было быть огромной задачей)

victor_pv
Вт 28 апреля 2015 г., 4:13
Я просто удивляюсь одной вещи.
Если MCU может быть перезагружен с помощью программного обеспечения, зачем им нужно вытащить линию сброса? Почему бы просто не сделать сброс программного обеспечения?
Изменен ли вектор сброса во время выполнения SKETC? Даже тогда последовательная процедура, которая контролирует последовательный порт и поездки по линии сброса, вместо того, чтобы вытащить линию вниз, записать вектор сброса с помощью аппаратного сброса по умолчанию и вызвать сброс.
Нет необходимости в специальном оборудовании...

Rogerclark
Вт 28 апреля 2015 г., 4:17
Виктор

Я не уверен, как код сбрасывает процессор. Я думал, что это было через программное обеспечение, и в этом случае я согласен, что внешняя линия не нужна.

Мне нужно дважды проверить, если это действительно так

Zoomx
Вт 28 апреля 2015 г. 5:56 утра
Я знаю, что у маленького Attiny нет нативного загрузчика.
Digispark Bootloader создает виртуальный последовательный порт, но если он не получает никакой команды через пять секунд, он разрушает виртуальный последовательный порт и запускает загруженный набросок, если один. Недостаток в том, что наброски занимают пять секунд, чтобы начать.

В любом случае, это решение для таких ленивых людей, как я, так как серийный загрузчик работает хорошо, и у меня также есть клон Stlink.

Rogerclark
Вт 28 апреля 2015 г. 6:02
Загрузчик для общих досок был бы отличным. Но это что -то для будущего. Возможно, мне нужно сделать липкий ;-)

У меня еще есть исправление ошибок в "Bootloader 2.0 ", чтобы получить 100% обратную совместимость со старой версией.

В настоящее время загрузки в ОЗУ не работают :-( Ну, он загружается в ОЗУ, но затем не запускает версию ОЗУ. Я думаю, что у меня есть решение для этого, но настройка форума заняла больше времени, чем я понял, что за последние пару дней, так что загрузчик 2.0 пришлось ждать.

Надеюсь, я смогу провести некоторое время на это на выходных.

Mrburnette
Вт 28 апреля 2015 г. 13:04
Zoomx написал:Я знаю, что у маленького Attiny нет нативного загрузчика.
Digispark Bootloader создает виртуальный последовательный порт, но если он не получает никакой команды через пять секунд, он разрушает виртуальный последовательный порт и запускает загруженный набросок, если один. Недостаток в том, что наброски занимают пять секунд, чтобы начать.
В любом случае, это решение для таких ленивых людей, как я, так как серийный загрузчик работает хорошо, и у меня также есть клон Stlink.

Zoomx
Вт 28 апреля 2015 г. 13:31
@Роджер,
Я считаю, что загрузчик 2.0 для Maple имеет приоритет, так как я написал серийную загрузку не так уж и плохо.

@mrburnette
Моя идея состоит не в том, чтобы использовать V-USB, а аппаратный USB, если можно активировать загрузчику в течение пяти секунд или другого трюка. Может быть, это сложно, Maple Team добавила некоторые аппаратные вещи из -за этого?

Rogerclark
Вт 28 апреля 2015 г., 8:44 вечера
Ребята

Код для поддержки USB Serial является частью ядра Libmaple, нам не нужен V-USB, так как существующий код уже работает хорошо

Серийный USB теперь может быть скомпилирован для общих плат с использованием определения -deserial_usb в флагах компилятора, так что после жесткой загрузки общая плата ведет себя как Maple Mini после того, как загрузчик передал управление наброскам

Мне нужно будет написать объявление, чтобы объяснить это более подробно, так как есть некоторые предостережения.



Однако, чтобы сделать серийный загрузчик, последовательный код из Libmaple должен быть скопирован в загрузчик, и в действительности мы скопируем код из Bootloader 2.0 и заменить значительные части на серийный код из ядра. Я подозреваю, что это может оказаться больше, чем текущая версия, поскольку серийный код может быть больше, чем код DFU.

Я постараюсь найти время, чтобы написать, учебник или, возможно, снять видео с захватом экрана о том, как установить Mingw в Windows, чтобы люди могли начать участие в разработке загрузчика

Мадиас
Вт 28 апреля 2015 г., 21:58
Я вообще не нахожу загрузчики сексуальными, почему?
1: задержка загрузки для каждого кода
2. Возиться с кнопками/сбросом
3. Отдельный драйвер (хорошо, меня не беспокоит, я не в Windows, но многие другие люди) это была бы новая ситуация для Windows 10,11,12 Я говорю только «подписанные драйверы»
4. Кнопка «нажимать на правильное время» кнопку «Серийный монитор», потому что я что-то скучаю »-Syndrom: на конвертере USB-TTL, FTDI или ST-Link вы можете легко дать порту Com и не думать об этом.
5. Меньше ОЗУ (ОК, некоторые байты)

Zoomx
Вт 28 апреля 2015 г., 22:17
Zoomx написал:В любом случае, это решение для таких ленивых людей, как я, так как серийный загрузчик работает хорошо, и у меня также есть клон Stlink.

Rogerclark
Ср 29 апреля 2015 г., 3:27
Я посмотрел на ветвь «серийный загрузчик» оригинального загрузчика,

Видеть https: // github.com/jonatanolofsson/mapl ... Эриал-Бут

Существует очень интересное описание того, как будет новый загрузчик для кленовых досок, но неясно, почему они прекратили разработку

Похоже, это может быть хорошей основой для общего загрузчика, так как большая часть кода уже написана (хотя я не знаю, работает ли он вообще)

Я думаю, что мы также должны переместить этот поток в раздел Bootloader, переименовать раздел «загрузчики» и иметь отдельные потоки для текущего загрузчика на основе DFU и, возможно, нового общего загрузчика на основе последовательных / последователей