Начало работы с STM32F103 под Linux

VK3TY
Пт 07 октября 2016 г. 3:26 утра
Это было интересное путешествие - попытаться заставить мой STM32 поговорить с моим J -Link. После бесконечных дней “Гуглинг” и сегменты этого форума - я не мудрее. На фоне;-
Аппаратное обеспечение:
  • HP Elitebook 8440p
    • Архитектура: x86_64
    • ОППИ (ы) ЦП: 32-битный, 64-битный
    • Байт -заказ: маленький эндиан
    • ЦП (ы): 4
    • Список (ы) в режиме онлайн: 0-3
    • Тема (ы) на ядро: 2
    • Ядро (ы) на гнездо: 2
    • Сокет (ы): 1
    • Узел (ы) Numa 1
    • Идентификатор поставщика: подлинная индивидуальная
    • Семья процессоров: 6
    • Модель: 37
    • Ступенька: 2
    • ЦП MHZ: 2534.000
    • Богомипс: 5054.20
    • Виртуализация: VT-X
    • Кэш L1D: 32K
    • Кэш L1I: 32K
    • Кэш L2: 256K
    • Кэш L3: 3072K
    • ЦП NODE NODE0: 0-3
    STM32F103:
Программное обеспечение:
  • ОС: Linuxmint 17.3
  • Arduino Ver 1.6.10
    • STM32 lib (ex github)
    • Arduino_stm32-master.молния
Одно утешение, которое у меня есть, это то, что когда я составляю список USB;-
  • $ lsusb
    Шина 002 Устройство 003: ID 046D: C52F Logitech, Inc. Объединяющий приемник
    Шина 002 Устройство 008: ID 12F7: 1D23 Memorex Products, Inc.
    Шина 002 Устройство 006: ID 1366: 0101 Segger J-Link Plus
    Шина 002 Устройство 002: ID 8087: 0020 Intel Corp. Интегрированный центр соответствующего тарифа
    Шина 002 Устройство 001: ID 1D6B: 0002 Linux Foundation 2.0 корневой центр
    Шина 001 Устройство 005: ID 04F2: B15E Chicony Electronics Co., ООО
    Шина 001 Устройство 004: ID 138A: 0007 Validity Sensors, Inc. VFS451 Reader отпечатка пальцев
    Устройство шины 001 003: ID 03F0: 231D Hewlett-Packard Broadcom 2070 Bluetooth Combo
    Шина 001 Устройство 002: ID 8087: 0020 Intel Corp. Интегрированный центр соответствующего тарифа
    Шина 001 Устройство 001: ID 1D6B: 0002 Linux Foundation 2.0 корневой центр
    $
Итак, почему, когда устройство можно увидеть с помощью lsusb, Arduino не видит его?

Итак, вернемся к моей проблеме. Хотя я смог загрузить библиотеки STM32, но я не могу поговорить с J-Link с моей доской Mini-STM32 через Arduino IDE?

Есть много способов, чтобы кожить кошка. Я предполагаю, что есть много способов запрограммировать SMT32, используя среду Arduino IDE на платформе Linuxmint.

Так же, как скиннинг кошки (самый простой способ - убедиться, что кошка мертва). Аналогия с кошкой состоит в том, чтобы предположить, что должны быть подготовительные действия, которые необходимо выполнить для обеспечения успеха.

Конечно, существует сценарий или задокументированная последовательность задач, которые будут выполнены, чтобы позволить мне запрограммировать STM32 на платформе Linux.

Последний пункт: когда я составляю что -то вроде вездесущего «мигания» наброска, я получаю следующее сообщение;-
  • Не удалось открыть последовательное устройство.
    DFU-UTIL: недействительный суффикс DFU
    DFU-UTIL: действующий суффикс DFU потребуется в будущем выпуске DFU-UTIL!!!
    DFU-UTIL: USB-устройство, способное USB, не имеется
    Произошла ошибка при загрузке эскиза

    DFU-UTIL 0.8

    Copyright 2005-2009 Weston Schmidt, Harald Welte и OpenMoko Inc.
    Copyright 2010-2014 Тормод Волден и Стефан Шмидт
    Эта программа является бесплатным программным обеспечением и не имеет абсолютно никакой гарантии
    Пожалуйста, сообщите об ошибках dfu-util@списки.гнумонки.орг

    Выделение версии DFU DEVE
Может ли это быть простым вопросом неправильной настройки DFU-UTIL? Если так, как это настроить в Linux?

Есть ли участники, которые достигли этой цели. Большинство ссылок, которые я обнаружил, основаны на платформах Windows или Mac.

У кого -нибудь, что у меня есть и те же проблемы?

С уважением,
Ник

Rogerclark
Пт, 07 октября 2016 г., 6:41
Ник

Я использую клон Jlink с другим ядром Arduino (для NRF51822), но он в Windows

Есть ли у вашего jlink командная строка для загрузки файла ? Я так предполагаю

Теоретически вы можете просто перенести мой код Windows здесь

https: // github.com/rogerclarkmelbourne/ ... загрузить.летучая мышь

Чтобы сделать файл скрипта jlink_upload и поместить его в папку Linux Tools Linux.

(В основном все, что он делает, это писать временный командный файл с командами Jlink в нем (во временной папке сборки, которую создает Arduino IDE), а затем вызывает командную строку Jlink, проходя в пути к сценарию и т. Д

Вам также нужно внести еще 2 изменения

Во -первых, платформа смены.TXT включает загрузку jlink

Смотрите нижнюю часть этого файла https: // github.com/rogerclarkmelbourne/ ... атмосфера.текст
stephen@i71:~$ dfu-util dfu-util 0.8 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2014 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to [email protected] You need to specify one of -D or -U Usage: dfu-util [options] ... -h --help Print this help message -V --version Print the version number -v --verbose Print verbose debug statements -l --list List currently attached DFU capable devices -e --detach Detach currently attached DFU capable devices -E --detach-delay seconds Time to wait before reopening a device after detach -d --device :[,:] Specify Vendor/Product ID(s) of DFU device -p --path Specify path to DFU device -c --cfg Specify the Configuration of DFU device -i --intf Specify the DFU Interface number -S --serial [,] Specify Serial String of DFU device -a --alt Specify the Altsetting of the DFU Interface by name or by number -t --transfer-size Specify the number of bytes per USB Transfer -U --upload Read firmware from device into -Z --upload-size Specify the expected upload size in bytes -D --download Write firmware from into device -R --reset Issue USB Reset signalling once we're finished -s --dfuse-address
ST DfuSe mode, specify target address for raw file download or upload. Not applicable for DfuSe file (.dfu) downloads

Mrburnette
Пт, 07 октября 2016 г., 13:28
Я запускаю Linux 17.3 на старом зацеле без проблем. Вы дали себе права на серийный порт?
Я не использую jlink, однако ... Просто сериал даже на синей таблетке.


Луча

Rogerclark
Пт, 07 октября 2016 г., 19:58
Я также пришел в голову, чтобы просто использовать jlink, чтобы пропустить загрузчик на эту плату, тогда вам больше не нужно использовать jlink.

я.E, поскольку вы просто используете его для загрузки, загрузчик выполняет ту же задачу.

VK3TY
Сб 8 октября 2016 г. 11:36 утра
Роджер,

Спасибо за ответ. Как и я, я вижу, что ты полагаешься на клоны ;) .

К сожалению, окна .Файлы летучей мыши не работают на Linux. Не уверен, что я могу просто "Так. Все, что вам нужно сделать, это переносить мои окна.Файл летучей мыши"

Проблемы, которые преодолеваются благодаря использованию пакетного файла (как я вижу);-
  • Преодоление неверных ударов (идиосинкразия Windows).
    Создание файла сценария командира из Arduino для TMP .Файл бин (не уверен в необходимости сценария командира - выражено в моем собственном невежестве).
Вы сделали конкретную ссылку на использование универсального NRF51822 в качестве типа устройства, а не STM32F103C8 в качестве типа устройства. Как это было бы связано с Arduino IDE?

Мне удалось загрузить программу на сайте Segger, который настроен на платформу Linux. Jlinkexe, кажется, имеет много функций/опций.

Программы, которые я установил для Segger, являются;-
  • ~/jlink/usr/bin $ ll
    Всего 8
    DRWXR-XR-X 2 Ник Ник 4096 73:10 ./
    DRWXR-XR-X 3 Ник Ник 4096 7 октября 07:13 ../
    lrwxrwxrwx 1 Ник Ник 36 октября 7 07:13 jflashspi_cl -> /opt/segger/jlink_v610d/jflashspi_cl*
    lrwxrwxrwx 1 Ник Ник 32 октября 7 07:13 Jlinkexe -> /opt/segger/jlink_v610d/jlinkexe*
    lrwxrwxrwx 1 Ник Ник 38 октября 7 07:13 Jlinkgdbserver -> /opt/segger/jlink_v610d/jlinkgdbserver*
    lrwxrwxrwx 1 Ник Ник 43 октября 7 07:13 jlinklicensemanager -> /opt/segger/jlink_v610d/jlinklicensemanager*
    lrwxrwxrwx 1 Ник Ник 41 октября 7 07:13 -> /opt/segger/jlink_v610d/jlinkregistration*
    lrwxrwxrwx 1 Ник Ник 41 октября 7 07:13 jlinkRemoteserver -> /opt/segger/jlink_v610d/jlinkremoteserver*
    lrwxrwxrwx 1 Ник Ник 38 октября 7 07:13 jlinkrttclient -> /opt/segger/jlink_v610d/jlinkrttclient*
    lrwxrwxrwx 1 Ник Ник 38 октября 7 07:13 Jlinkrttlogger -> /opt/segger/jlink_v610d/jlinkrttlogger*
    lrwxrwxrwx 1 Ник Ник 34 октября 7 07:13 Jlinkstm32 -> /opt/segger/jlink_v610d/jlinkstm32*
    lrwxrwxrwx 1 Ник Ник 38 октября 7 07:13 Jlinkswoviewer -> /opt/segger/jlink_v610d/jlinkswoviewer*
    ~/jlink/usr/bin $
Самая полезная программа (пока я не могу найти больше информации) - это Jlinkexe. Это дает мне различные команды, которые позволят мне загрузить предлагаемые файлы.

В настоящее время я пытаюсь найти окончательную статью в (правильном) использовании Jlinkexe.

Я мог бы добавить это, на этом этапе я не нашел

С уважением,
Ник

VK3TY
Сб 8 октября 2016 г. 12:13
Луча,

Спасибо за быстрый ответ. Mrburnette написал:Я запускаю Linux 17.3 на старом зацеле без проблем. Вы дали себе права на серийный порт?
Я не использую jlink, однако ... Просто сериал даже на синей таблетке.
Луча

VK3TY
Сб 8 октября 2016 г. 12:17
Роджер, Rogerclark написал:Я также пришел в голову, чтобы просто использовать jlink, чтобы пропустить загрузчик на эту плату, тогда вам больше не нужно использовать jlink.

я.E, поскольку вы просто используете его для загрузки, загрузчик выполняет ту же задачу.

Mrburnette
Сб 8 октября 2016 г. 13:58
в этом посте
ViewTopic.PHP?F = 45&t = 1441
Я использую очень похожую на вашу синюю доску таблеток.
Я использую китайский серийный адаптер клона за 1 доллар США с Vout, установленным 3.3В

A9 и A10 - серийные булавки. Тогда просто следуйте инструкциям вики... https: // github.com/rogerclarkmelbourne/ ... /Загрузка

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

Луча

Rogerclark
Сб 8 октября 2016 г., 19:58
Луча

Я не знаю, что вы имеете в виду, не возвращаясь к сериалу.

Единственное, о чем я могу догадаться, это то, что на Maple Mini Boot1 плавает (это ошибка дизайна), так как иногда он предотвращает рабочие загрузки серийных загрузок.

Если вы нажмите на Boot1 Low и используете кнопку, чтобы вытащить Boot0 High, вы все равно сможете загрузить через сериал.

Загрузите через SDW после запуска эскиза загрузчика, может быть, что вы думаете.
Выводы SWD переназначены как GPIO, поэтому вам нужно вытащить Boot0 High, либо вам нужно использовать Connect в соответствии с сбросом, чтобы снова получить доступ через SWD.

Но вы никогда не потеряете возможность загрузки через SWD или внутренний серийный загрузчик

Rogerclark
Сб 8 октября 2016 г., 19:59
Ник

Проверьте мои видео на YouTube

Я сделал один на загрузке через сериал, и есть другие люди, которые делали лучше, объясняя, как прошивать загрузчик, используя USB в сериал

VK3TY
Солнце 16 октября 2016 г. 13:28
Близкие,
  • Я думаю, что мы можем закрывать этот, как я перевел его в «генерал». Не совсем «решено», но переехал в более описательный предмет.

    Большинство из моих знаний (до сих пор) было получено за счет настойчивости и довольно крутой кривой обучения в понимании нюансов использования J-Link в среде Linux.
С уважением,
Ник

VK3TY
Ср. 02 ноября 2016 г. 1:21
Решен

Близкие,
  • Роджер опубликовал новый Master Arduino_stm32 на GitHub - я предлагаю загрузить последние и заменить все файлы.

    Я могу подтвердить, что это было тестирование и работает.
С уважением,
Ник

VK3TY
Ср. 02 ноября 2016 г. 1:26
: D : D : D : D : D . . . Сказать, что субъект был разрешен. Спасибо всем, что прочитали и ответили.