Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/132: Рейтинг темы: голосов - 132, средняя оценка - 4.83
Moks455

USB загрузчик stm32f4. Кто делал?

20.10.2013, 14:39. Показов 25591. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу сделать возможность прошивки устройства через USB (mass storage).
Видел есть программа для генерации usb загрузчика для stm32f1.
Пробовал прикрутить несколько примеров USB mass storage. Безрезультатно(
Может кто-то делал подобное, и может поделиться проектом?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2013, 14:39
Ответы с готовыми решениями:

USB Audio + USB CDC на одной STM32F4
Итак, есть ЦАП с входом I2S, есть FMприёмник с выходом I2S, есть STM32F405 с двумя I2S. Задача сделать USB аудиокарту/FMприёмник в одном...

Свой загрузчик в STM32F4
здравствуйте задача организовать удалённую перепрошивку устройств соединение модемное так что перепрошивка будет сводиться к тому что...

А делал ли кто-нибудь частотомер на MSP430?
Если кто-нибудь делал, поделитесь исходным кодом.

27
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
20.10.2013, 15:11
Цитата Сообщение от Moks455
Хочу сделать возможность прошивки устройства через USB (mass storage).
Встроенный (ROM boottooder) USB-загрузчик через DFU не подходит? Он есть в STM32F4xx.
0
Moks455
20.10.2013, 16:27
Сильно сложно для конечного пользователя. Проще как во флешку залить, и не ставить никаких лишних программ.
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
20.10.2013, 20:26
Цитата Сообщение от Moks455
Сильно сложно для конечного пользователя. Проще как во флешку залить, и не ставить никаких лишних программ.
А вы точно уверены, что знаете, что вам OtyxPM предложил ? :))))))))))))))
0
Moks455
20.10.2013, 21:47
http://vg.ucoz.ru/publ/programmyrovanie ... b/9-1-0-22
Насколько понимаю, так.
Sorok
21.10.2013, 13:22
А можно сделать так, чтобы прошивать через usb, но не изменяя напряжения на boot0 и без собственного встроенного загрузчика?
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
21.10.2013, 13:35
Цитата Сообщение от Sorok
А можно сделать так, чтобы прошивать через usb, но не изменяя напряжения на boot0 и без собственного встроенного загрузчика?
IAP никто не отменял. Можно шить хоть через интерфейс видеокамеры, вообще через любой выкрутас, на какой только фантазии хватит.
Только загрузчик придётся полностью писать самому и в отдельном секторе Ftosh его хранить.
0
Moks455
21.10.2013, 13:48
Успех есть. Взял пример USB карт-ридера, переписал функции записи/чтения. Подсунул на чтение загрузочную область диска. Определяется как носитель. Читаю файл который подсунул. С записью пока туговато. Отказывается кушать файлы больше 512 байт. Разбираюсь, правлю загрузочную область, пытаюсь обмануть систему.
И да, действительно, загрузчик будет лежать в первой странице флеша.
Sorok
21.10.2013, 14:11
Цитата Сообщение от OtyxPM
Цитата Сообщение от Sorok
А можно сделать так, чтобы прошивать через usb, но не изменяя напряжения на boot0 и без собственного встроенного загрузчика?
IAP никто не отменял. Можно шить хоть через интерфейс видеокамеры, вообще через любой выкрутас, на какой только фантазии хватит.
Только загрузчик придётся полностью писать самому и в отдельном секторе Ftosh его хранить.
но чтобы прошить загрузчик нужно один раз будет изменить на ножке boot0, а если у меня флешка на stm32 уже в корпусе
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
21.10.2013, 14:13
Цитата Сообщение от Moks455
Успех есть. Взял пример USB карт-ридера, переписал функции записи/чтения.
Пример USB карт-ридера на F4, насколько я помню, использует STM32 как USB-девайс, а не USB-хост. Но если прошивать не с USB-флэшки (для этого нужно быть хостом), а с карточки - то зачем вообще USB? Можно сделать проще: STM32F4xx + SD-карта на SPI или SDIO, читаете файлы и пишете во Ftosh МК. На запись во Ftosh, кстати, тоже пример у ST есть.
0
Moks455
21.10.2013, 14:14
Цитата Сообщение от Sorok
Цитата Сообщение от OtyxPM
Цитата Сообщение от Sorok
А можно сделать так, чтобы прошивать через usb, но не изменяя напряжения на boot0 и без собственного встроенного загрузчика?
IAP никто не отменял. Можно шить хоть через интерфейс видеокамеры, вообще через любой выкрутас, на какой только фантазии хватит.
Только загрузчик придётся полностью писать самому и в отдельном секторе Ftosh его хранить.
но чтобы прошить загрузчик нужно один раз будет изменить на ножке boot0, а если у меня флешка на stm32 уже в корпусе

Загрузчик нужен не для первой прошивки. Например если вышла новая версия программы, а устройство у пользователя. Подключил юсб, кинул файл и прошил.
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
21.10.2013, 14:15
Цитата Сообщение от Sorok
но чтобы прошить загрузчик нужно один раз будет изменить на ножке boot0, а если у меня флешка на stm32 уже в корпусе
Любой контент в STM32 можно прошить через SWD. Ножки BOOT при этом дёргать не требуется.
0
Moks455
21.10.2013, 14:16
Цитата Сообщение от OtyxPM
Цитата Сообщение от Moks455
Успех есть. Взял пример USB карт-ридера, переписал функции записи/чтения.
Пример USB карт-ридера на F4, насколько я помню, использует STM32 как USB-девайс, а не USB-хост. Но если прошивать не с USB-флэшки (для этого нужно быть хостом), а с карточки - то зачем вообще USB? Можно сделать проще: STM32F4xx + SD-карта на SPI или SDIO, читаете файлы и пишете во Ftosh МК. На запись во Ftosh, кстати, тоже пример у ST есть.

Вы неправильно поняли. В устройстве нет карточки. Пример я взял карт-ридера, но вместо того чтоб писать на карточку, я пишу во флеш микроконтроллера. При копировании файла на "сьемный носитель" будет прошиваться прибор.
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
21.10.2013, 14:27
Цитата Сообщение от Moks455
В устройстве нет карточки. Пример я взял карт-ридера, но вместо того чтоб писать на карточку, я пишу во флеш микроконтроллера. При копировании файла на "сьемный носитель" будет прошиваться прибор.
А, то есть сама плата с МК будет "USB-флэшкой". И для прошивки обязателен компьютер.
Теперь понятно :-)

У NXP в их Кортексах так сделано, только они это в Boot ROM засунули. Про подсоединении платы LPCXpresso к компьютеру по USB появляется "диск" с firmware на нём. Причём и на чтение, и на запись.
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 208
21.10.2013, 16:15
Цитата Сообщение от Moks455
Загрузчик нужен не для первой прошивки. Например если вышла новая версия программы, а устройство у пользователя. Подключил юсб, кинул файл и прошил.
AN4023. STM32 secure firmware upgrade (SFU) overview
это не то что нужно?
у ST даже где-то пример видел по SFU
0
Moks455
22.10.2013, 00:42
Все-же застрял(((
Не получается скормить большие файлы, точнее нужно делать внутренний RX буфер не меньше принимаемого файла.
И получается что даже если занять всю оперативу, не можно закачать файл больше 100 кб.

Смотрел сниффером, ожидал увидеть заливку файла кусками, да хоть даже кластерами.
А нет, сначала 512 байт переписал каталог, потом 512 таблицу фат, а потом весь файл одной посылкой.
Как тогда пример работал как картридер? Как кормить большие файлы больше мегабайта???
Может кто все-же ковырял mass storage? help...
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
22.10.2013, 00:48
Цитата Сообщение от Moks455
ВСмотрел сниффером, ожидал увидеть заливку файла кусками, да хоть даже кластерами.
А нет, сначала 512 байт переписал каталог, потом 512 таблицу фат, а потом весь файл одной посылкой.
Как тогда пример работал как картридер? Как кормить большие файлы больше мегабайта???
Так Вы прошейте фирменный проект USB Card Reader, ничего не меняя, - и его сниффером пытайте.
На тайминги при записи на SD-карту тоже обратите внимание, когда будете сниффить. Наверняка для записи во Ftosh нужны дополнительные задержки, как и для записи на SD.

P.S. Если у Вас STM32F407, то файлы больше мегабайта не понадобятся.
0
Moks455
22.10.2013, 01:07
я пока никуда не пишу, просто читаю данные выводя некоторые данные в UART. По программе видно что при записи можно задерживать сколь угодно( там стоит while() пока карта занята). При выведении каких-либо данных в юарт при чтении все сваливается конечно - задержки большие.
мне хотя-бы больше 100 кб передать.
Moks455
24.10.2013, 12:38
Сделал. Оказалось UART1 мешал работе ЮСБ но не всегда. Хоть нога PA9 и не настроена на ЮСБ, но отправкой данных в порт при определенных обстоятельствах отваливали ЮСБ.
Маленькие файлы записывались, а при больших пакетах всегда обрывались.

Вся нигия загрузчика в файле usbd_storage_msd.c

[124.8 Кб]
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
24.10.2013, 13:57
Цитата Сообщение от Moks455
Сделал. Оказалось UART1 мешал работе ЮСБ но не всегда. Хоть нога PA9 и не настроена на ЮСБ, но отправкой данных в порт при определенных обстоятельствах отваливали ЮСБ.
Маленькие файлы записывались, а при больших пакетах всегда обрывались.
То есть с первым UARTом этот код оказался несовместимым (я смотрю, у Вас UART везде выкомментирован).

А я правильно понимаю, что загрузчик Вы всё-таки решили не в самый первый сектор класть (чтобы не мешать нормальным проектам жить по адресу 0x08000000), а скомпилировали его для следующего сектора, со смещения 0x08008000?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.10.2013, 13:57
Помогаю со студенческими работами здесь

Кто делал обрезание?
Кто делал сабж? Конечно не себе, а базе :blink: Кто писал обработки для этого на подобии wrap.ert ?

может кто делал?
Здравствуйте!! Есть справочник Номенклатура куда забивается процент НДС , с нового года он стал 20%, оч нужна внешняя обработка по смене...

Кто делал at*e2ipl ?
А то что-то не получается. Условия такие: мегафон, модем gr64. делаю: at+cgdcont=1,"IP","internet" OK at*e2ipa=1,1 ...

Лаба, кто делал?
Задана матрица A(n,n). Зеркально отразить ее относительно главной диагонали. В преобразованной матрице найти строки, элементы которой ...

Кто делал новый подоходный в РБ?
Вопрос не столько по 1С, скорее алгоритмический Может кто-то видел работающие решения Я не могу определиться как проще реализовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru