реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> STM32 - смена прошивки пользователем через USB
esaulenka
сообщение Apr 28 2015, 13:22
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(A. Fig Lee @ Apr 28 2015, 16:07) *
У всех STM32? И которые не connectivity line, STM32F103, например?

У топикстартера - может, о чём написано в первом же сообщении темы. Учитесь читать.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
ArtDenis
сообщение Apr 28 2015, 13:43
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



Цитата(A. Fig Lee @ Apr 28 2015, 18:07) *
У всех STM32? И которые не connectivity line, STM32F103, например?

Ну ёлки-палки. В первом же сообщении я написал, что собираюсь прошивать его через USB-DFU. Значит я выбрал такой МК, который его поддерживает.

Вопрос в другом. Какие ещё способы, существуют для прошивки через родной USB?

Тут мне посоветовали писать самому загрузчик. Этот вариант хорош тем, что можно передавать пользователю зашифрованную прошивку, а при передаче уже в самом устройстве расшифровывать и прошивать. Так можно защитится от того, чтобы китайцы не скопировали прошивку с такой же лёгкость как два пальца wink.gif Но меня этот аспект не особо волнует. Я не думаю, что мой девайс заинтересует китайцев. Да и писать самому загрузчик не охота.

С другой стороны, если загрузчик выглядит как съёмный диск, на который можно заливать прошивку, то это большой плюс, т.к. избавляет меня, как разработчика, от того, чтобы поставлять с прошивкой дрова для подключения к устройству для прошивки. И для пользователя процесс заливки прошивки очень наглядный. Это плюс данного подхода. Но если прошивка пошла неудачно, то скорее всего у пользователя будет кирпич, который можно будет восстановить только при помощи заливки прошивки другими способами.

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

Сообщение отредактировал ArtDenis - Apr 28 2015, 13:44


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Apr 28 2015, 14:32
Сообщение #18


Знающий
****

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



USB mass storage это слишком сложно для пользователя, а COM порта нет. Так что других вариантов нет.


Цитата(esaulenka @ Apr 28 2015, 09:22) *
У топикстартера - может, о чём написано в первом же сообщении темы. Учитесь читать.


Ну вы тоже учитесь читать. У топик стартера семь пятниц на неделе, много чего сказано и все ему не подходит.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 28 2015, 14:36
Сообщение #19


фанат дивана
******

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



Цитата(ArtDenis @ Apr 28 2015, 18:43) *
С другой стороны, если загрузчик выглядит как съёмный диск, на который можно заливать прошивку, то это большой плюс, т.к. избавляет меня, как разработчика, от того, чтобы поставлять с прошивкой дрова для подключения к устройству для прошивки. И для пользователя процесс заливки прошивки очень наглядный.

У новых отладочных плат STM-NUCLEO такой способ прошивки. При его подключении в системе появляется съёмный диск, при записи на этот диск прошивки она заливается в целевой контроллер. Действительно, очень удобно.
Цитата(ArtDenis @ Apr 28 2015, 18:43) *
Но если прошивка пошла неудачно, то скорее всего у пользователя будет кирпич, который можно будет восстановить только при помощи заливки прошивки другими способами.

Вовсе нет. Загрузчик-то никуда не денется. Так что пользователь просто повторит попытку, и всё.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 28 2015, 14:36
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ArtDenis @ Apr 28 2015, 16:43) *
С другой стороны, если загрузчик выглядит как съёмный диск, на который можно заливать прошивку, то это большой плюс, т.к. избавляет меня, как разработчика, от того, чтобы поставлять с прошивкой дрова для подключения к устройству для прошивки. И для пользователя процесс заливки прошивки очень наглядный. Это плюс данного подхода. Но если прошивка пошла неудачно, то скорее всего у пользователя будет кирпич, который можно будет восстановить только при помощи заливки прошивки другими способами.

Тут есть еще может возникнуть проблема в совместимости эмулируемого диска. Скажем, у NXP есть такой загрузчик на LPC1343. Так вот, под Win он работает нормально, а под Linux'ом требуются некоторые телодвижения со стороны пользователя.

P.S. По мне, способ весьма неудобный. На LPC повсеместно отказался от него в пользу UART.
Go to the top of the page
 
+Quote Post
ArtDenis
сообщение Apr 28 2015, 14:40
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 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


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 28 2015, 14:55
Сообщение #22


фанат дивана
******

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



Цитата(ArtDenis @ Apr 28 2015, 19:40) *
А в NUCLEO съёмный диск разве эмулируется самим МК?

У NUCLEO загрузчик отдельный, да. Но сам принцип смены прошивки, имхо, удобный - никаких драйверов, никакого софта на ПК.
Недостатки, естественно, тоже имеются. В частности, такой загрузчик может отъесть приличный кусок FLASH-памяти контроллера.
Цитата(ArtDenis @ Apr 28 2015, 19:40) *
Да. Но только если загрузчик сам себя не перезаписывает при прошивке. Хотя можно сделать так, чтобы не перезаписывал )

Не можно, а нужно! sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Apr 28 2015, 15:18
Сообщение #23


Знающий
****

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



Цитата(ArtDenis @ Apr 28 2015, 10:40) *
Почему?


see post #4 от ArtDenis.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
ArtDenis
сообщение Apr 28 2015, 15:22
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 10-11-12
Пользователь №: 74 318



Цитата(A. Fig Lee @ Apr 28 2015, 20:18) *
see post #4 от ArtDenis.

Я там писал про прошивку через COM-порт


--------------------
http://ufa-darts.ru/ - собираем дартс-лигу в Уфе
Go to the top of the page
 
+Quote Post
kovigor
сообщение Apr 28 2015, 16:45
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(aaarrr @ Apr 28 2015, 17:36) *
Скажем, у NXP есть такой загрузчик на LPC1343. Так вот, под Win он работает нормально, а под Linux'ом требуются некоторые телодвижения со стороны пользователя.

Я все писал сам и лично проверял под Windows и под Linux. Все работало, как полагается. Кстати, как раз на LPC2148 ...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 28 2015, 17:28
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(kovigor @ Apr 28 2015, 19:45) *
Я все писал сам и лично проверял под Windows и под Linux. Все работало, как полагается. Кстати, как раз на LPC2148 ...

Ну, а у товарищей из NXP вот не вышло. Там есть еще один крайне неприятный баг, из-за которого устройство часто определяется с дикой задержкой. В общем, содержимое ROM LPC1343 разочаровывает в плане USB.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Apr 29 2015, 08:02
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Apr 28 2015, 20:28) *
Ну, а у товарищей из NXP вот не вышло. Там есть еще один крайне неприятный баг, из-за которого устройство часто определяется с дикой задержкой. В общем, содержимое ROM LPC1343 разочаровывает в плане USB.

OFF
не могли бы обрисовать проблему? решил как раз заложиться на этот камень
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 29 2015, 08:12
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(toweroff @ Apr 29 2015, 11:02) *
OFF
не могли бы обрисовать проблему? решил как раз заложиться на этот камень

Проблема изложена в еррате: какая-то из переменных у них не обнуляется. Но это касается только встроенного загрузчика.

Если работать с USB напрямую, то все почти в порядке. Неприятных моментов два:
- Громоздкая "ручная" синхронизация при работе с регистрами USB
- Частоту ядра нельзя опускать ниже 24MHz
Go to the top of the page
 
+Quote Post
toweroff
сообщение Apr 29 2015, 08:27
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Apr 29 2015, 11:12) *
Проблема изложена в еррате: какая-то из переменных у них не обнуляется. Но это касается только встроенного загрузчика.

Если работать с USB напрямую, то все почти в порядке. Неприятных моментов два:
- Громоздкая "ручная" синхронизация при работе с регистрами USB
- Частоту ядра нельзя опускать ниже 24MHz

спасибо, посмотрю еще раз на документы
минимальная частота в моем случае роли не играет - питание внешнее и некритичное к току
Go to the top of the page
 
+Quote Post
NikF
сообщение Apr 29 2015, 18:20
Сообщение #30


Участник
*

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



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

А он (встроенный загрузчик) разве не защищен от записи/стирания?
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01493 секунд с 7
ELECTRONIX ©2004-2016