Как позволить конечным пользователям перепрограммировать MCU без IDE

nicolas_soundforce
Солнце 15 апреля 2018 г., 17:23
Привет, ребята,

Это немного сон, и мне интересно, будет ли это возможно, а также как начать.
Я использую это фантастическое ядро ​​Arduino для программы STM32F103 в некоторых продуктах, которые я делаю. Все MCU запрограммированы с помощью загрузчика.

Представьте, что я хотел бы разработать приложение для пользователей для перепрограммирования MCU "в этой области". Я бы доставил их с файлом скомпилированной программы.

Я хотел бы сделать простую программу, где они могут загрузить .корзин в MCU для обновления/обновления прошивки. Но я также узнал о драйвере STM32, который позволяет пользователю перепрограммировать MCU с SD -карты.

Как бы я начал делать что -то подобное ? Я готов потратить время на это и сделать его доступным.

Цель состоит в том, чтобы избежать необходимости просить пользователей использовать внешние программы или установить IDE и т. Д...

заранее спасибо,
Николас.

Стивестронг
Солнце 15 апреля 2018 г. 8:04 вечера
Может быть, это может быть интересно: ViewTopic.PHP?F = 19&t = 3003.

Или это: ViewTopic.PHP?f = 2&t = 3493

nicolas_soundforce
Пн, 16 апреля 2018 г., 6:08
Спасибо, Стивен.

Вчера я нашел устройство, которое использует STM32 и рекламировала возможность обновления прошивки с помощью SD -карты.
После Googling я нашел этот документ STM32:
http: // www.ул.com/content/ccc/resource/ ... 282546.PDF

Стивестронг
Пн, 16 апреля 2018 г., 9:02
Но вы знаете, что он оставляет 45 КБ только для загрузчика IAP...

Эдогальдо
Пн, 16 апреля 2018 г., 20:58
Привет, Николас, может быть, я упускаю суть, но, похоже, вы хотите разработать новый инструмент для загрузки, верно?
Если да, мой вопрос: поскольку существует уже несколько (по крайней мере, по одному для каждого метода загрузки), почему разработка нового? Что не так с существующими?

Лучший, e.

Rogerclark
Пн, 16 апреля 2018 г., 21:14
IDE просто запускает файлы Bat или JAR в папке Tools

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

Все, что вам нужно сделать, это отправить команду Magic Reset через сериал, а затем запустить DFU util

Однако оба серийных драйверов, которые должны быть установлены


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

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

nicolas_soundforce
Ср 18 апреля 2018 г. 15:33
[Стивестронг - Пн, 16 апреля 2018 г. 9:02] - Но вы знаете, что он оставляет 45 КБ только для загрузчика IAP...
Я не знал... Спасибо, что указали на это. Я думаю, это просто жизнеспособность для самых больших чипов, F4 и тому подобного.

nicolas_soundforce
Ср 18 апреля 2018 г. 15:36
[Rogerclark - Пн, 16 апреля 2018 г., 21:14] - IDE просто запускает файлы Bat или JAR в папке Tools

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

Все, что вам нужно сделать, это отправить команду Magic Reset через сериал, а затем запустить DFU util

Однако оба серийных драйверов, которые должны быть установлены


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

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

РЕДАКТИРОВАТЬ: Выглядит великолепно, но нужно получить доступ к перемычкам... Я хотел бы иметь возможность перепрограммировать без доступа к печатной плате. USB -загрузчик работает для этого на данный момент.

nicolas_soundforce
Ср 18 апреля 2018 г. 15:36
[Эдогальдо - Пн, 16 апреля 2018 г. 20:58] - Привет, Николас, может быть, я упускаю суть, но, похоже, вы хотите разработать новый инструмент для загрузки, верно?
Если да, мой вопрос: поскольку существует уже несколько (по крайней мере, по одному для каждого метода загрузки), почему разработка нового? Что не так с существующими?

Лучший, e.
Я просто хочу сделать небольшое приложение для загрузки .Файл программы BIN в чип, без необходимости попросить пользователя ISNALL IDE/Drivers/Libraries...

Rogerclark
Ср 18 апреля 2018 г., 21:20
Загрузчик HID будет работать, если вы измените его, чтобы использовать тайм -аут, как существующие загрузчики

nicolas_soundforce
Пн 23 июля 2018 г. 18:48
Я работаю над этим, и я достиг некоторых успехов с помощью метода серийной загрузки.
Я использовал электрон: https: // electronjs.орг/ Поскольку я не хотел изучать слишком много кроссплатформенных конкретных вещей и хотел получить что-то простое.

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

Скрипт:
#!/bin/bash cd "$(dirname "$0")" ./serial_upload cu.SLAB_USBtoUART {upload.altID} {upload.usbID} ./firmware.bin

Zoomx
Пт 27 июля 2018 г. 14:49
Я считаю, что вы можете использовать ту же утилиту, которая использовалась IDE.

nicolas_soundforce
Ср 19 декабря 2018 г. 13:19
Итак, я наконец получил удовлетворительные результаты. Я потратил довольно много времени на разработку приложения, которое запускает сценарий с помощью электрона. Все сработало, пока я не попытался распространять приложение, а потом все началось ошибаться, все это время написание кода за что -то...

Итак, я принял гораздо более простой подход:

На Mac:


- Я сначала прошу своих пользователей установить Homebrew, а затем Libusb
- Я сделал «приложение» с использованием Platypus, которое позволяет мне внедрить скрипт и необходимые файлы (как найдено при ARDUINO_STM32-MASTER/TOOLS/MACOSX) в стандартные приложения MAC.

Приложение, сгенерированное утконосом, запускает этот сценарий (аналогично тому, что делает Arduino IDE):
./maple_upload cu.Slab_usbtouart 2 1eaf: 0003 ./my_firmware_file.бин

Все сценарии и файл прошивки находятся в корне и могут быть доступны приложением. Я даже могу установить изображение для значка.
Приложение отображает выходные сообщения из сценария. Таким образом, пользователь может знать, была ли загрузка успешной или нет.


В окнах:


- Сначала я прошу моего пользователя установить драйверы (как найдено в Arduino_stm32-Master/Drivers/Win) для загрузки DFU и Java
- Затем я прошу их запустить сценарий ниже, который открывает консоль в Windows:

maple_upload cu.SLAB_USBTOUART 2 1EAF: 0003 SFC_1_V1.0.Ино.бин

В той же папке я включил "Maple_upload", "Maple_Loader" и т. Д... как найдено при arduino_stm32-master/tools/win

Это не стильно, но работает. Я посмотрел на Киви на Python, но у меня нет ресурсов, чтобы начать изучать новую платформу с нуля.

I2C примеры