Jump to content

    

Загрузчик, приложение для ПК

Посоветуйте какую-нибудь готовую простенькую програмку для обновления firmware в железке.

Просто кнопка выбора ком порта, кнопка открытия файла (bin, hex), кнопка запуска и прогрессбар, всё.

Так же нужно какое никакое описание протокола, возможно пример внутриконтроллерного загрузчика.

Переход в загрузчик по какой-то спец. команде.

 

Share this post


Link to post
Share on other sites
1 hour ago, skripach said:

осоветуйте какую-нибудь готовую простенькую програмку для обновления firmware в железке.

Любой терминал, например putty.

1 hour ago, skripach said:

прогрессбар, всё.

Вот с этим по памяти не назову. Но думаю, найти можно. Ведь прогрессбар должен отображать процеесс передачи файла.

1 hour ago, skripach said:

Переход в загрузчик по какой-то спец. команде.

Текстовая команда, командная строка.

1 hour ago, skripach said:

возможно пример внутриконтроллерного загрузчика.

Это есть в документации на микроконтроллер.

Рекомендую поискать темы про загрузчики на этом форуме. Они обсуждались тут неоднократно и много раз. Если после их прочтения у вас останутся вопросы, то будет самое время их задать. А сейчас - читать)

Share this post


Link to post
Share on other sites

Для армов загрузчики пока не делаю, а для AVR использовал их стандартную утилиту AVRProg. Где-то на их сайте был пример программы и описание протокола.

Недостатки AVRProg были в невозможности жесткого задания номера порта и в невозможности работы с номером порта >4

Share this post


Link to post
Share on other sites

Я описанным способом обновлял как AVR, так и ARM. Разницы нет. Единственно, нужно написать свой загрузчик, используя возможности самопрограммирования flash-памяти. Вообще, моё мнение, что для обновления ПО лучше использовать что-то стандартное (терминалы, браузеры). Один мой девайсик вообще представлялся ftp-сервером, на него кидался файл прошивки, и запускался процесс обновления ПО. Это экономит время. Нет необходимости разрабатывать велосипед, когда их дюжина даром стоит у входа))))

Впрочем, автору темы можно рассмотреть возможность использовать FlashMagic, если у него серия LPC (NXP). Только в приборе нужно предусмотреть запуск встроенного в МК загрузчика. Для STM есть Flash Demonstrator Loader.

Share this post


Link to post
Share on other sites

Шифрование не предполагается? Тогда протокол X-modem, пожалуй. И любая терминальная программа, способная с ним работать. 

Share this post


Link to post
Share on other sites
6 часов назад, haker_fox сказал:

Любой терминал, например putty.

Вот с этим по памяти не назову. Но думаю, найти можно. Ведь прогрессбар должен отображать процеесс передачи файла.

Ну так в putty и прогресс нарисовать - не проблема.

6 часов назад, haker_fox сказал:

Текстовая команда, командная строка.

...и кнопку сделать - не проблема. :smile:

Share this post


Link to post
Share on other sites
5 minutes ago, jcxz said:

Ну так в putty и прогресс нарисовать - не проблема.

Кстати да, псевдографикой, например.

5 minutes ago, jcxz said:

..и кнопку сделать - не проблема

Точно! Отображается же в ней midnight commander при удалённом подключении, а в нём есть кнопки.

Share this post


Link to post
Share on other sites
8 hours ago, skripach said:

Так же нужно какое никакое описание протокола, возможно пример внутриконтроллерного загрузчика.

Переход в загрузчик по какой-то спец. команде.

Ну так нынче модно делать RNDIS и FTP сервер в дивайсе. 
Тогда не нужно напрягать юзера поиском правильного COM порта.
Втыкаете, жмете в Total Commander  соединиться с FTP сервером и кидаете туда свой файл. Прогресс бар появится автоматически. 
 

Share this post


Link to post
Share on other sites
8 часов назад, skripach сказал:

Посоветуйте какую-нибудь готовую простенькую програмку для обновления firmware в железке.

Если это STM, тогда STM32CubeProgrammer.

Share this post


Link to post
Share on other sites
8 minutes ago, AlexandrY said:

Ну так нынче модно делать RNDIS и FTP сервер в дивайсе.

Неееее)))))) Теперь модно "Интернет вещей". Девайс сам коннектится к серваку через любую среду (радио, первый попавшийся провод) и качает прошиву. А затем фотку в инстаграм))))

Share this post


Link to post
Share on other sites
Just now, Vasily_ said:

Если это STM, тогда STM32CubeProgrammer.

А если Renesas, то надо использовать SSP Flashloader Framework. :wink3:

Just now, haker_fox said:

Неееее)))))) Теперь модно "Интернет вещей". Девайс сам коннектится к серваку через любую среду (радио, первый попавшийся провод) и качает прошиву. А затем фотку в инстаграм))))

Инстаграм за уши притянут, а так все верно. 
Для продвинутых юзеров я рекомендую поверх RNDIS ставить MQTT клиента и получать обновления строго через него от MQTT брокера. 
Решение отлично работает как локально так и глобально, хорошо масштабируется, хорошо защищено, легко достигается анонимность в сети.   

Share this post


Link to post
Share on other sites
17 minutes ago, AlexandrY said:

Инстаграм за уши притянут, а так все верно. 

Ну я же смайлики н езря поставил.

17 minutes ago, AlexandrY said:

хорошо защищено

Опять же. Не будет ли так, что я еду в лифте на 128 этаж, и где-то по-середине система управления лифта решила скачать обновления для себя и все требухи, типа инвертора? В итоге всё встало колом.

Share this post


Link to post
Share on other sites
3 минуты назад, haker_fox сказал:

Опять же. Не будет ли так, что я еду в лифте на 128 этаж, и где-то по-середине система управления лифта решила скачать обновления для себя и все требухи, типа инвертора? В итоге всё встало колом.

Норма.

Тесла уже так делала.

Share this post


Link to post
Share on other sites

"Скрипач не нужен"

На github готовых проектов 100499. Выбрать подходящий, сделать и положить на github.

И будет их там 100500.

Share this post


Link to post
Share on other sites
12 hours ago, skripach said:

Просто кнопка выбора ком порта, кнопка открытия файла (bin, hex), кнопка запуска и прогрессбар, всё.

 

Прогрессбар - непонятен. Что он должен показать? Вы гигабайт будете шить по 115200?

У меня устройства прошиваются фактически в момент нажатия кнопки прошить, винда даже кнопку медленнее отрисовывает.

 

bin, hex - не совсем правильно - так устройство можно в кирпич превратить.

Нужно делать чтоб в железяку А можно было прошить только прошивку для А, а в железяку Б можно было прошить только прошивку для Б

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now