|
|
  |
STM32 - смена прошивки пользователем через 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)  Да. Но только если загрузчик сам себя не перезаписывает при прошивке. Хотя можно сделать так, чтобы не перезаписывал ) А он (встроенный загрузчик) разве не защищен от записи/стирания?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|