STM32F4 Загрузить вопросы

Stanimir5f
Пн 28 марта 2016 г. 10:39 утра
Привет, ребята!

У меня мало вопросов о STM32 и Arduino IDE. Прежде чем я хочу извиниться, если мои вопросы глупы, но я просто хочу убедиться, что я понял это правильно или нет.
У меня есть две доски - с STM32F103RB (OLIMEXINO-STM32) с STM32F407ZG (STM32-E407).

Для платы STM32F1 я следую эти инструкции И мне удалось заставить это работать. Я загрузил загрузчик. После этого в Arduino Ide I выбрал плату: «Общая серия STM32F103R»; вариант: "STM32F103RB"; Метод загрузки: "STM32Duino Bootloader". Затем я отключил доску, начал компиляцию и загрузку, затем снова подключил USB, и загрузка началась. Я попробовал это с мигающим светодиодом и сканированием кнопок. Все работает нормально. Все идет нормально.

Но прежде чем я пойду дальше, я решил попробовать то же самое с платой STM32F4. Что, к сожалению, было не так просто. Я немного покраснел вокруг форума и нашел эти темы: Платы STM32F4 - Ограниченная поддержка и Создание загрузчика для общих досок. Где в основном я красный, что делать то же самое, что и с STM32F1, гораздо сложнее (если не невозможно) на этом этапе. А во второй теме я увидел, что Роджер Кларк рекомендовал Stlink для микроконтроллеров STM32F4.

Итак, вот мои вопросы о STM32F4:
1) Я понял это правильно? Действительно ли сложно/невозможно загрузить через USB на этом этапе разработки?
2) Есть ли альтернативный способ загрузки, кроме Stlink? Например, через RX и TX или что -то в этом роде.
3) Если Stlink - единственный способ на данный момент - необходимо ли загрузчик для этого? Что за загрузчик? Где я могу это получить? Как мне загрузить? Может быть, это было упомянуто на одной из этих тем, но я не нашел ее.

С наилучшими пожеланиями!
Стэн

Martinayotte
Пн 28 марта 2016 г. 13:21
Stanimir5f написал: 1) Я понял это правильно? Действительно ли сложно/невозможно загрузить через USB на этом этапе разработки?

Stanimir5f
Вт 29 марта 2016 г., 6:55 утра
Спасибо за ответ, Мартин!

Я совершенно забыл упомянуть об этом. Да, я попытался запустить загрузчик, положив Boot0 на 1 и Boot1 на 0. И да, я вижу устройство DFU в Диспетчер устройств. Но по какой -то причине он отображается в разделе «Universal Serial Bus Controllers» . Я помню, что несколько дней назад я видел это в отдельном разделе «Устройства Libusb-Win32» (или что-то в этом роде), но, возможно, из-за некоторых водителей обновление, я больше не вижу этого. Я не уверен, вообще ли это проблема (тот факт, что он находится в другом разделе диспетчера устройств), но теперь, когда я пытался запустить DFU-UTIL, как вы предложили с опцией «-l», я не вижу Устройства перечислены. А также я использовал этот загрузчик только с «STMFlashLashloger» до сих пор.

Итак, у меня есть еще вопросы.
Можно ли использовать этот загрузчик по умолчанию для загрузки эскизов Arduino?
Должен ли я искать другого драйвера, чтобы устройство было отображаться в отдельном разделе в диспетчере устройств?
Это причина, почему я не вижу этого в списке устройств DFU в DFU-UTIL?

Еще раз, пожалуйста, извините за мои хромые вопросы, но это мои первые шаги, работающие с STM32 в Arduino Ide. До этого я немного поработал с STM в клене и в основном с IAR Excedded Workbench. Что касается Arduino Ide, весь мой опыт работы с процессорами AVR. Так что объединение этих двоих - что -то новое для меня.

Стэн

Rogerclark
Вт 29 марта 2016 г., 9:46 утра
@Stanimir5f

Похоже, у вас нет драйвера, загруженного для устройства DFU.

Звучит так, как будто вы запускаете Windows, но вы, кажется, не сказали, какую ОС вы работаете.

В любом случае. Предполагая, что вы используете Windows, если вы запускаете dfu-util.exe -l из папки arduino_stm32 \ tools \ win должна перечислить все доступные устройства DFU

(Убедитесь, что ваш F4 находится в режиме DFU, когда вы это делаете)

Stanimir5f
Вторник 29 марта 2016 г., 13:01
Привет, Роджер!

Действительно я забыл упомянуть ОС, которую я использую. Это Windows 7.

Вы подтвердили мои подозрения по поводу установки неправильного драйвера. Поэтому я удалил его и начал оглядываться. Я нашел программу Zadig 2.2 и я установил "Libusb-Win32 (v1.2.6.0) ". Теперь устройство отображается в отдельном разделе Меню диспетчера устройств - «Устройства Libusb -Win32», и когда я перечисляю устройства в командной строке, я вижу это:
C:\Arduino\hardware\Arduino_STM32\tools\win>dfu-util -l dfu-util - (C) 2007-2008 by OpenMoko Inc. This program is Free Software and has ABSOLUTELY NO WARRANTY Found DFU: [0x0483:0xdf11] devnum=1, cfg=0, intf=0, alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg" Found DFU: [0x0483:0xdf11] devnum=1, cfg=0, intf=0, alt=1, name="@Option Bytes/0x1FFFC000/01*016 e" Found DFU: [0x0483:0xdf11] devnum=1, cfg=0, intf=0, alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e" Found DFU: [0x0483:0xdf11] devnum=1, cfg=0, intf=0, alt=3, name="@Device Feature/0xFFFF0000/01*004 e"

ZMEMW16
Вторник 29 марта 2016 г. 13:14
Для меня на Debian Jessie, используя инструменты/linux/dfu-util;
dfu -util -h дает варианты

Это для чтения областей памяти устройства, это -a использует номер в выходе -l stephen@i7:~/sketchbook/hardware/Arduino_STM32/tools/linux/dfu-util$ dfu-util -R -a 1 -U xyz -R is a reset -a nn -U filename -- read dev alternate nn region to file

Rogerclark
Вторник 29 марта 2016 г., 21:16
Проблема может быть dfu-util.Exe.

У нас нет источника для этого, и я смутно помню, что это может быть специальная версия, которая была создана / модифицирована Leaflabs для работы с кодом загрузчика DFU.

Вы можете попробовать найти оригинальный DFU-UTIL и посмотреть, работает ли это.

Примечание. Я думаю, что Мартин использует Linux, поэтому он будет использовать стандартную версию DFU-UTIL, а не индивидуальную версию

Martinayotte
Вторник 29 марта 2016 г., 22:40
Да, я работаю над Linux, и никогда не испытывал проблем с DFU-UTIL, кроме как с V0.8 Когда «dfuse_addr» не было предоставлено. Но это было зафиксировано несколько месяцев назад в пластинке.TXT и сценарий Maple-Upload.

Для упомянутой выше ошибки я действительно не знаю !
Может быть, неисправный драйвер Windows, может быть, неисправный кабель...

Stanimir5f
Ср 30 марта 2016 г., 13:52
Спасибо всем за ваши ответы!
Я ценю это!

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

Я думал о том, чтобы попробовать разные устройства, которые я вижу при запуске DFU-UTIL с опцией «-l». Тогда я увидел, что у них другой адрес (кажется логичным). Затем я решил, что, возможно, проблема в том, что я пытаюсь загрузить бинарку в адрес, который запрещен (или, по крайней мере, защищен для чего -то еще). Поэтому я попытался загрузить по конкретному адресу. Я проверил в Интернете, какой вариант. Здесь Я видел, что это '-s'.

Но, к сожалению, этот DFU-UTIL не поддерживает вариант «-s». Я использую тот, который предоставлен из GitHub. Это "DFU-UTIL версия 0.1+svn "(на основе командной строки журнала). Я не уверен, что именно это "+svn". Но я решил следовать предложению Роджера и осмотреть еще одну (может быть, новая) версия, надеясь, что она поддержат выбор адреса.

Когда я погуглил об этом, я нашел эти инструкции. Верхний 1.1 и 1.0 ссылок были нарушены, поэтому я отказался от них и продолжил поиск. Следующая ссылка, которую я нашел, была выпускает папку . Но когда я извлекал файлы в архив, я не нашел исполняемый файл (или, по крайней мере, в 0.9 Архив). В любом случае я продолжал искать и нашел 0.8. Опция «-s» поддерживается здесь, и я попытался загрузить по адресу, показанный при перечислении устройств (0x08000000). Но без успеха до сих пор. :(

Я даже не знаю, может ли эта (проблема адреса) вызвать все проблемы. Но это была моя единственная идея.

Также я попытался изменить драйвер с программного обеспечения Zadig. Вместо "Libusb-Win32 (v1.2.6.0) «Я решаю загрузить» Libusbk (v3.0.7.0) ". Это тоже не помогает.

Я начинаю бояться, что мне не хватает "слона на картинке". Что -то действительно очевидное и хромочное. Но все же я понятия не имею, как продолжить.

В любом случае еще раз спасибо за ваши ответы. Если у вас есть идеи, я попробую все, что вы мне предложите. :)

Стэн

Martinayotte
Ср 30 марта 2016 г., 15:44
Ой ! Тот факт, что более новая версия 0.9 вышел может быть интересным (я попробую это под Linux).

За ваши проблемы, которые все еще присутствуют, у меня все еще нет идей ... :-(

В то же время, когда мы выясним это, есть ли у вас доступ к машине Linux ?
(Потому что это может быть обходным путем, чтобы загрузить ваш первый эскиз)

Stanimir5f
Чт 31 марта 2016 г. 8:31 утра
Спасибо всем вам! Я думаю, мне удалось сделать это загрузить!
Спасибо Мартину за то, что предложил мне dfu-util. Я знал о загрузчике, но не как его использовать правильно!
Спасибо Стивену за то, что рассказали мне о варианте Altsetting. Я бы никогда не подумал об этом.
Спасибо Роджеру за совет по поиску другой версии DFU-UTIL и выпуска драйвера.
Вы все мне очень помогли!

Проблемы были двумя вещами.
Сначала версия DFU-UTIL. Тот в этот Не поддерживает опцию DFUSE (указать адрес). DFU-UTIL 0.8 Поддержите его. Я думаю, с более новой версией будет работать тоже.
Другое дело было водителем. С "libusb-win32 (v1.2.6.0) "и" libusbk (v3.0.7.0) «Выгрузка не удалась. Но с "winusb (v6.1.7600.16385) »(также установлен через Задиг) это так!

Итак, теперь, когда я запускаю DFU-UTIL с этой линией параметров: C:\Arduino\hardware\Arduino_STM32\tools\win>dfu-util -a 0 -s 0x08000000 -D "C:\Blink_STM32F4.cpp.bin"

Rogerclark
Чт 31 марта 2016 г., 9:27 утра
Стэн

@Ddrown сделал версию пакета Manager Package (я думаю о F103). Если вы посмотрите на то, что он сделал, вы сможете понять, что вам нужно сделать, чтобы заставить F4 работать с 1.6.8

На самом деле, вы, вероятно, можете изменить ядро ​​без использования менеджера совета директоров,

Посмотрите на платформу.TXT -файл, я думаю, это то, что нужно изменить, чтобы он работал с 1.6.8

Примечание. Причина, по которой я не обновил ядро ​​для работы с 1.6.8 в том, что я не думаю, что можно сделать версию, которая работает с 1.6.5 (и старше), а также с 1.6.8 И я не хотел заставлять всех обновлять свою копию IDE, с 1.6.5 работает нормально.

Re: Загрузка с IDE

Если вы посмотрите на платформу.TXT (внизу), вы увидите, как он в настоящее время выполняет загрузку (определены различные типы загрузок)

Извините, я не могу быть больше помощи, но у меня есть только время указать вам в правильном направлении ;-)

Stanimir5f
Чт 31 марта 2016 г. 9:53 утра
Спасибо за советы, Роджер!
Я попробую их. На этот момент их более чем достаточно.

И тебе не нужно извиняться. В конце концов, это моя работа, чтобы сделать не твою. Так что я должен приложить усилия, чтобы заставить его работать. :)

Стэн

Martinayotte
Чт 31 марта 2016 г. 13:51
Stanimir5f написал: Поскольку я хочу облегчить загрузку (просто нажав на кнопку «Загрузка»), я знаю, что должен добавить описание платы в плату.TXT, а также я должен добавить набор файлов в папку варианта. Но я думаю, что я должен сделать то же самое с платформой.TXT, чтобы запустить загрузку через DFU-UTIL. Я прав? Или это сложнее, чем это?

Rogerclark
Чт 31 марта 2016 г., 8:45 вечера
Ребята

Поскольку инструменты используются между вариантами процессора, новый DFU-UTIL необходимо протестировать с помощью загрузчика (как старых, так и новых версий) на F103

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

Спасибо

Stanimir5f
Пт 01 апреля 2016 г., 11:13
Я следовал за твоими советами, но я не работал. Я видел о загрузке клена, определенной на платформе.текст. Поэтому я заменил начальный метод Stlink на загрузку клена. Также идентификаторы. Но, может быть, я что -то скучаю в доске.Файл TXT, который также должен быть изменен.

Раздел загрузки Discovery_f407 теперь выглядит так: discovery_f407.upload.tool=maple_upload discovery_f407.upload.protocol=maple_upload #discovery_f407.upload.use_1200bps_touch=false discovery_f407.upload.file_type=bin discovery_f407.upload.ram.maximum_size=17000 discovery_f407.upload.flash.maximum_size=1048576 discovery_f407.upload.maximum_size=1048576 discovery_f407.upload.usbID=0483:df11 discovery_f407.upload.altID=0 discovery_f407.upload.auto_reset=true discovery_f407.upload.dfuse_addr=0x8000000

Martinayotte
Пт 01 апреля 2016 12:28
Эта «неверная подпись» - это ошибка, показанная, когда не предоставлен DFU_ADDRESS, она пытается загрузить *.DFU вместо *.бин.
Вы включили слово ?
Глядя на версию Windows Maple_upload.Сценарий летучей мыши, он выглядит совершенно иначе, чем на Linux, он использует Maple_upload.банка, которая мне совершенно неизвестна. Проблема, может быть, есть ...
Обходной путь состоит в том, чтобы написать новый Maple_upload.летучая мышь, которая будет работать одинаково от Linux без какого -либо *.банка вовлечена.

Stanimir5f
Вт 05 апреля 2016 г., 6:33
Мартин, ты прав. Это было из -за содержания "maple_upload.Файл летучей мыши.
Итак, я заменяю линию: java -jar maple_loader.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

Martinayotte
Вт 05 апреля 2016 г. 13:11
Вы сравнивали с скриптом Maple_upload of Linux ?
На самом деле он получает название проекта в качестве аргумента, поэтому вы можете добавить эхо, чтобы выяснить, но, согласно версии Linux, Bin Project находится в %4, в то время как DFU-Address находится в Argemt %5.
if [ $# -lt 4 ]; then echo "Usage: $0 $# " >&2 exit 1 fi dummy_port="$1"; altID="$2"; usbID="$3"; binfile="$4"; dummy_port_fullpath="/dev/$1" if [ $# -eq 5 ]; then dfuse_addr="--dfuse-address $5" else dfuse_addr="" fi

Stanimir5f
Пт 08 апреля 2016 г., 10:39
Еще раз спасибо!
Я последовал за твоим предложением и сделал это!
С этим я думаю, что закончил первую часть! :)