|
STM32 - смена прошивки пользователем через USB |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 30)
|
Apr 27 2015, 10:46
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(ArtDenis @ Apr 27 2015, 04:32)  kovigor, как-то это всё сложно для обычного пользователя. И com-порта у устройства нету. Как и у большинства современных компьютеров. Поэтому тема называется "смена прошивки пользователем через USB"
smalcom, инструкция с картинками? Я планирую высылать пользователю exe-шник, который будет устанавливать USB-драйвер для DFU-устройства, подключаться к устройству, переводить его в загрузчик и автоматически прошивать. Думаю, в противном случае пользователи просто взбунтуются )) Что сложно? Скопировать присланный файл на диск? 2. Com-порта нет? Вы ничего про преобразователи/переходники FT232 например, не слышали? Как по вашему, сейчас компьютеры подсоединяются к com портам? Мне кажется, у вас ничего не получится.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Apr 27 2015, 12:45
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(ArtDenis @ Apr 27 2015, 07:44)  A. Fig Lee, если пользователю, чтобы перепрошить устройство, нужно покупать переходник USB-COM, то что же в этом хорошего? И зачем это вообще нужно, есть уже есть USB. Да и тема называется "смена прошивки пользователем через USB". Мне интересно, что применяют именно для прошивки через USB максимально простым для пользователя способом. Да никто о покупать вообще речи не ведет. Как можно рассуждать о смене прошивки имея настолько мало знаний? Причем в элементарнейшей области? Даже тыкая вас в решение проблемы, вы его в упор не видите.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Apr 27 2015, 14:17
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318

|
A. Fig Lee, т.е. прошивка пользователем приборе на STM32 через FT232 - это самый надёжный и проверенный метод, я так понимаю, с твоих слов? Или имеется ввиду другое решение проблемы? Если я что-то не понимаю, ткни ещё раз носом  Да, на всякий случай уточню. Имеется ввиду прошивка через встроенный в STM32 USB
--------------------
|
|
|
|
|
Apr 27 2015, 15:08
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(ArtDenis @ Apr 27 2015, 20:17)  Да, на всякий случай уточню. Имеется ввиду прошивка через встроенный в STM32 USB Да, это самый удобный способ, но не самый надежный за счет большей сложности загрузчика, и следовательно повышенной вероятности ошибки в нём. В порядке убывания надежности и увеличения удобности: - самый надежный через JTAG/SWD, но требует программатор/отладчик - менее надежный через RS232-порт, но требует наличия на компьютере RS323-порта(или преобразователь USB-RS232 ) - еще менее надежный через USB, требует на компьютере USB-порт
|
|
|
|
|
Apr 28 2015, 10:14
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(ArtDenis @ Apr 27 2015, 10:17)  A. Fig Lee, т.е. прошивка пользователем приборе на STM32 через FT232 - это самый надёжный и проверенный метод, я так понимаю, с твоих слов? Или имеется ввиду другое решение проблемы? Если я что-то не понимаю, ткни ещё раз носом  Да, на всякий случай уточню. Имеется ввиду прошивка через встроенный в STM32 USB 1. Да. просто потому, что загрузчик РОМ уже там и никуда не денется. Но так ты хочешь УСБ, то это к тебе не относится. 2. Ладно, вот тебе азы по УСБ. УСБ бывает разных классов и твой микроконтроллер, хотя и соединен по УСБ, может прикинутся портом RS232. Для этого тебе не надо ничего покупать кроме шнурка УСБ для подключения. Но он видать и так есть. В общем имплементируй CDC класс USB на своем микроконтроллере. И делай бутлоадер. Или имплементируй другой класс, масс сторадж, тогда при втыкании твоего дивайса появится харддрайв в виндоус, скопируешь туда файл и все.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Apr 28 2015, 10:34
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318

|
Цитата(A. Fig Lee @ Apr 28 2015, 15:14)  1. Да. просто потому, что загрузчик РОМ уже там и никуда не денется. Но так ты хочешь УСБ, то это к тебе не относится. А можно поподробнее про выделенное? Может я чего-то не понимаю?
--------------------
|
|
|
|
|
Apr 28 2015, 10:41
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(ArtDenis @ Apr 28 2015, 06:34)  А можно поподробнее про выделенное? Может я чего-то не понимаю? Да, ошибся. Забыл за эти дни подробности о чем речь. USB и собственный бутлоадер для пользователя удобней чем встроенный РОМ. Но встроенный надежней
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Apr 28 2015, 13:43
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318

|
Цитата(A. Fig Lee @ Apr 28 2015, 18:07)  У всех STM32? И которые не connectivity line, STM32F103, например? Ну ёлки-палки. В первом же сообщении я написал, что собираюсь прошивать его через USB-DFU. Значит я выбрал такой МК, который его поддерживает. Вопрос в другом. Какие ещё способы, существуют для прошивки через родной USB? Тут мне посоветовали писать самому загрузчик. Этот вариант хорош тем, что можно передавать пользователю зашифрованную прошивку, а при передаче уже в самом устройстве расшифровывать и прошивать. Так можно защитится от того, чтобы китайцы не скопировали прошивку с такой же лёгкость как два пальца  Но меня этот аспект не особо волнует. Я не думаю, что мой девайс заинтересует китайцев. Да и писать самому загрузчик не охота. С другой стороны, если загрузчик выглядит как съёмный диск, на который можно заливать прошивку, то это большой плюс, т.к. избавляет меня, как разработчика, от того, чтобы поставлять с прошивкой дрова для подключения к устройству для прошивки. И для пользователя процесс заливки прошивки очень наглядный. Это плюс данного подхода. Но если прошивка пошла неудачно, то скорее всего у пользователя будет кирпич, который можно будет восстановить только при помощи заливки прошивки другими способами. Вот я и спрашиваю совета, как участники форума решают эту проблему. Может есть уже проверенный загрузчик, который можно задействовать в своём проекте?
Сообщение отредактировал ArtDenis - Apr 28 2015, 13:44
--------------------
|
|
|
|
|
Apr 28 2015, 14:32
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
USB mass storage это слишком сложно для пользователя, а COM порта нет. Так что других вариантов нет. Цитата(esaulenka @ Apr 28 2015, 09:22)  У топикстартера - может, о чём написано в первом же сообщении темы. Учитесь читать. Ну вы тоже учитесь читать. У топик стартера семь пятниц на неделе, много чего сказано и все ему не подходит.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Apr 28 2015, 14:36
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(ArtDenis @ Apr 28 2015, 18:43)  С другой стороны, если загрузчик выглядит как съёмный диск, на который можно заливать прошивку, то это большой плюс, т.к. избавляет меня, как разработчика, от того, чтобы поставлять с прошивкой дрова для подключения к устройству для прошивки. И для пользователя процесс заливки прошивки очень наглядный. У новых отладочных плат STM-NUCLEO такой способ прошивки. При его подключении в системе появляется съёмный диск, при записи на этот диск прошивки она заливается в целевой контроллер. Действительно, очень удобно. Цитата(ArtDenis @ Apr 28 2015, 18:43)  Но если прошивка пошла неудачно, то скорее всего у пользователя будет кирпич, который можно будет восстановить только при помощи заливки прошивки другими способами. Вовсе нет. Загрузчик-то никуда не денется. Так что пользователь просто повторит попытку, и всё.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Apr 28 2015, 14:36
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(ArtDenis @ Apr 28 2015, 16:43)  С другой стороны, если загрузчик выглядит как съёмный диск, на который можно заливать прошивку, то это большой плюс, т.к. избавляет меня, как разработчика, от того, чтобы поставлять с прошивкой дрова для подключения к устройству для прошивки. И для пользователя процесс заливки прошивки очень наглядный. Это плюс данного подхода. Но если прошивка пошла неудачно, то скорее всего у пользователя будет кирпич, который можно будет восстановить только при помощи заливки прошивки другими способами. Тут есть еще может возникнуть проблема в совместимости эмулируемого диска. Скажем, у NXP есть такой загрузчик на LPC1343. Так вот, под Win он работает нормально, а под Linux'ом требуются некоторые телодвижения со стороны пользователя. P.S. По мне, способ весьма неудобный. На LPC повсеместно отказался от него в пользу UART.
|
|
|
|
|
Apr 28 2015, 14:40
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318

|
Цитата(A. Fig Lee @ Apr 28 2015, 19:32)  USB mass storage это слишком сложно для пользователя Почему? Цитата(AHTOXA @ Apr 28 2015, 19:36)  У новых отладочных плат STM-NUCLEO такой способ прошивки. При его подключении в системе появляется съёмный диск, при записи на этот диск прошивки она заливается в целевой контроллер. Действительно, очень удобно. А в NUCLEO съёмный диск разве эмулируется самим МК? Цитата(AHTOXA @ Apr 28 2015, 19:36)  Вовсе нет. Загрузчик-то никуда не денется. Так что пользователь просто повторит попытку, и всё. Да. Но только если загрузчик сам себя не перезаписывает при прошивке. Хотя можно сделать так, чтобы не перезаписывал )
Сообщение отредактировал ArtDenis - Apr 28 2015, 14:41
--------------------
|
|
|
|
|
Apr 28 2015, 14:55
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(ArtDenis @ Apr 28 2015, 19:40)  А в NUCLEO съёмный диск разве эмулируется самим МК? У NUCLEO загрузчик отдельный, да. Но сам принцип смены прошивки, имхо, удобный - никаких драйверов, никакого софта на ПК. Недостатки, естественно, тоже имеются. В частности, такой загрузчик может отъесть приличный кусок FLASH-памяти контроллера. Цитата(ArtDenis @ Apr 28 2015, 19:40)  Да. Но только если загрузчик сам себя не перезаписывает при прошивке. Хотя можно сделать так, чтобы не перезаписывал ) Не можно, а нужно!
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Apr 28 2015, 15:22
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318

|
Цитата(A. Fig Lee @ Apr 28 2015, 20:18)  see post #4 от ArtDenis. Я там писал про прошивку через COM-порт
--------------------
|
|
|
|
|
Apr 29 2015, 08:12
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(toweroff @ Apr 29 2015, 11:02)  OFF не могли бы обрисовать проблему? решил как раз заложиться на этот камень Проблема изложена в еррате: какая-то из переменных у них не обнуляется. Но это касается только встроенного загрузчика. Если работать с USB напрямую, то все почти в порядке. Неприятных моментов два: - Громоздкая "ручная" синхронизация при работе с регистрами USB - Частоту ядра нельзя опускать ниже 24MHz
|
|
|
|
|
Apr 29 2015, 18:20
|

Участник

Группа: Участник
Сообщений: 24
Регистрация: 22-12-08
Из: Москва
Пользователь №: 42 670

|
Цитата(ArtDenis @ Apr 28 2015, 18:40)  Да. Но только если загрузчик сам себя не перезаписывает при прошивке. Хотя можно сделать так, чтобы не перезаписывал ) А он (встроенный загрузчик) разве не защищен от записи/стирания?
|
|
|
|
|
Apr 29 2015, 23:38
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(NikF @ Apr 29 2015, 14:20)  А он (встроенный загрузчик) разве не защищен от записи/стирания? Встроенный да. Он в ROM, его стереть нельзя. Самодельный можно
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|