Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F4xx bootloader
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
eav1978
Все привет.
Разрабатывал устройство построенное на МК STM32F4xx.
Для устройства требовалась такая фича как обновление ПО в МК, не имея доступа к устройству.
Почитав в инете и на сайте ST, я решил использовать загрузку через UART(RS-232).
Мельком посмотрев схему загрузки на отладке STM3240G-EVAL (там стоит STM32F407), я наваял свою.
После монтажа платы уже выяснилось что я толком не разобрался в схеме, и вообще на отладке реализован не такой принцип загрузки какой нужен мне.
Я предполагал, что RS-232 подтянет ногу BOOT0 к "1" и дернет ножкой ресет переводя МК в режим загрузки из системной памяти(через UART), оказалось что на самом деле пользователь должен переключить ногу BOOT0 в "1" и нажать кнопку ресет.
А программа Flash Loader Demonstrator начнет прошивать МК только после того, как пользователь совершит необходимые манипуляции.

Может кто-нить писал свой прошивальщик, который может дергать ногами МК посредством сигналов DTR и RTS?
Или где-то есть на просторах сети что-то подобное.
IgorKossak
Цитата
Может кто-нить писал свой прошивальщик, который может дергать ногами МК посредством сигналов DTR и RTS?
Или где-то есть на просторах сети что-то подобное.
У ST уже есть такая. Запустите в командной строке STMFlashLoader.exe без параметров.
eav1978
Спасибо за ответ.
Оказалось что при установке Flash Loader Demonstrator, в папку программы накидало много разного чего, в том числе и STMFlashLoader.
Даже какие-то исходники имеются.
Посмотрел UM0462 User manual STM32 and STM8 Flash loader demonstrator в плане использования версии с командной строкой.
Пока что-то ничего не понятно.
eav1978
Уважаемый IgorKossak.
Не могли бы вы пояснить мне неразумному почему DTR и RTS должны меняться при запуске STMFlashLoader.exe без параметров?
Пробовал я и с параметрами, и без, DTR и RTS не меняются.
Кстати я где-то на форуме my.st.com встречал тему где народ тоже говорил что DTR и RTS не меняются, и проверить не возможно, т.к. исходников от STBLLIB.dll нет, а эти функции реализованы именно там
SSerge
Цитата(eav1978 @ Jun 28 2014, 22:22) *
Не могли бы вы пояснить мне неразумному почему DTR и RTS должны меняться при запуске STMFlashLoader.exe без параметров?

Без параметров он только информацию о ключах выведет. Её надо прочитать sm.gif и сочинить примерно такую строку:
>stmflashloader -c --pn 3 -Dtr --Hi -Rts --Hi -Rts --Lo {и прочее по вкусу}
результат:
Нажмите для просмотра прикрепленного файла
осцил подтверждает, DTR и RTS переключаются.
IgorKossak
Цитата(eav1978 @ Jun 28 2014, 18:22) *
Уважаемый IgorKossak.
Не могли бы вы пояснить мне неразумному почему DTR и RTS должны меняться при запуске STMFlashLoader.exe без параметров?

А я этого и не утверждал. При запуске без параметров просто выдаётся справка о программе, как в частности применять DTR и RTS.
Цитата(eav1978 @ Jun 28 2014, 18:22) *
Пробовал я и с параметрами, и без, DTR и RTS не меняются.

Странно, не проверял, во вторник поверю.
Цитата(eav1978 @ Jun 28 2014, 18:22) *
Кстати я где-то на форуме my.st.com встречал тему где народ тоже говорил что DTR и RTS не меняются, и проверить не возможно, т.к. исходников от STBLLIB.dll нет, а эти функции реализованы именно там

У меня исходники этой dll лежат в C:\Program Files\STMicroelectronics\Software\Flash Loader Demonstrator\Src\STBLLIB

PS: на всякий случай приложил архив
eav1978
Цитата(eav1978 @ Jun 28 2014, 19:22) *
Пробовал я и с параметрами, и без, DTR и RTS не меняются.


Я тут сам накосячил, так как у меня 2-х портовая мокса, и я, как оказалось впоследствии, смотрел не на том порту.

Цитата(SSerge @ Jun 28 2014, 20:44) *
и сочинить примерно такую строку:
>stmflashloader -c --pn 3 -Dtr --Hi -Rts --Hi -Rts --Lo {и прочее по вкусу}
результат:

осцил подтверждает, DTR и RTS переключаются.


Я если чесно, не допер что можно повторять команды. Никак не мог понять, как это можно ногой ресет дернуть 2 раза до начала загрузки и еще раз после загрузки всего одной командой. Хотя исходники смотрел, и видел что команды перебираются по порядку.

Сочинил свою командную строку
>STMFlashLoader.exe -c --pn 10 --br 9600 --db 8 --pr even --sb 1 --ec off --to 5000 -Dtr --Lo -Rts --Hi -Dtr --Hi -Rts --Lo -Rts --Hi -i STM32F4_1024K -e --all -d --a address(00000000) --fn c:\123.hex --v --o -Dtr --Lo -Rts --Lo -Rts --Hi

Осцилом наблюдаю отправку 0x7F, и то, что нога DTR переключается, а вот RTS, которая у меня на ресет идет, переключатся не хочет.
На работе попробовал на переходнике с FT2232H, тоже самое, RTS не дергается

Заметил одну странность, если через Ком порт тулкит подключится к переходнику, и дернуть ногу ресет, то по осцилу я вижу реакцию.
Затем запускаю STMFlashLoader.exe с параметрами и также наблюдаю переключение ноги ресет.
После повторного запуска STMFlashLoader.exe с параметрами, ногу ресет уже не дергается. сигнал DTR переключается.
Если опять подключится к переходнику через Ком порт тулкит и дернуть ногу ресет, затем STMFlashLoader.exe с параметрами, нога ресет опять переключается.

Поищу комп с аппаратным COM-портом, попробую на нем


Цитата(IgorKossak @ Jun 29 2014, 15:35) *
А я этого и не утверждал. При запуске без параметров просто выдаётся справка о программе, как в частности применять DTR и RTS.

Странно, не проверял, во вторник поверю.

У меня исходники этой dll лежат в C:\Program Files\STMicroelectronics\Software\Flash Loader Demonstrator\Src\STBLLIB

PS: на всякий случай приложил архив


В этой папке нет исходников dll.
В файлах в этой папке реализуется работа с dll.

Насколько я понял.
Может я и не прав.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.