Работал, теперь остановлен

joeedarock
Чт, 05 апреля 2018 г., 15:04
У меня голубая таблетка. Мне удалось запрограммировать загрузчик STMDuino на плату с помощью STLINK (Genic_BOOT20_PC13.мусорное ведро). Затем я был в состоянии загрузить в нее миганную программу, используя Arduino IDE и выбрать Maple Mini в качестве целевой платы. Я играл с этим, чтобы убедить себя, что компиляция/нагрузка действительно работала, что это было. Затем я загрузил еще один набросок, но он не смог скомпилироваться из -за несовместимости библиотеки. Затем я вернулся к мрачному эскизу и обнаружил, что могу скомпилировать его, но я больше не могу загружать его. Вот ошибка:

Maple_Loader v0.1
Сброс в загрузчик через DTR Pulse
Сброс через USB -сериал! Вы выбрали правильный последовательный порт?
Поиск устройства DFU [1EAF: 0003]...
Предполагая, что плата находится в режиме вечного загрузчика и продолжает пытаться программировать DFU...

dfu-util-(c) 2007-2008 от OpenMoko Inc.
Эта программа является бесплатным программным обеспечением и не имеет абсолютно никакой гарантии
Не удалось найти устройство DFU: [1EAF: 0003]

Кстати, не доступен выбор COM -порта.

Джо

joeedarock
Чт, 05 апреля 2018 г., 15:12
Итак, мне удалось получить его снова, нажав кнопку сброса платы непосредственно перед тем, как компилятор ввел режим загрузки. Теперь у меня есть COM -порт в IDE, и все, кажется, работает неоднократно. Есть ли что -то, что я должен сделать, чтобы не вернуться в этот режим? Кстати, мне не нужно было делать мод резистора, чтобы он работал; Может ли это быть частью проблемы?

Кибермир
Чт, 05 апреля 2018 г., 15:22
Шахты тоже супер -ловкие. Иногда вынужден перепрофировать загрузчик, а я’я сделал мод резистора.

я’М на OSX.

Пито
Чт, 05 апреля 2018 г., 16:56
Есть ли что -то, что я должен сделать, чтобы не вернуться в этот режим? Кстати, мне не нужно было делать мод резистора, чтобы он работал; Может ли это быть частью проблемы? Обычно это работает с резистором 10 тыс.
Это может случиться, это перестает работать время от времени. Не паникуйте -> это моя рекомендация :)

Мадиас
Чт, 05 апреля 2018 г., 18:58
[Кибермир - Чт апреля 05, 2018, 15:22] - Шахты тоже супер -ловкие. Иногда вынужден перепрофировать загрузчик, а я’я сделал мод резистора.

я’М на OSX.
OSX очень ловкий с серийным загрузчиком (даже с каждым *серийным USB -материалом не только STM32). Со времени начала STM32Duino я боролся с OSX. От версии до версии это было лучше, иногда общие аппаратные сбои. Сброс аппаратного обеспечения после загрузки никогда не был действительно функциональным.
Причина - это внутренняя безопасность в OSX, и вы можете отключить только все вещи безопасности на OSX навсегда - плохая идея.
Но есть так много других вариантов загрузки:
ST-Link (даже с доской или этими дешевыми клонами V2) (я предпочитаю ST-Link V2)
Зонд черной магии
и так далее.

Если вам действительно нужен серийный загрузчик и OSX, обязательно узнайте «режим вечного загрузчика»
---> http: // wiki.STM32duino.com/index.PHP?тип ... загрузчик

Эдогальдо
Пт 06 апреля 2018 г., 7:04
[joeedarock - Чт, 05 апреля 2018 г., 15:04] - [...] и выбор Maple Mini в качестве целевой платы. [...]
Вы также проверили, какая версия загрузчика была выбрана в меню загрузчика?

joeedarock
Пт 06 апреля 2018 г., 19:21
Мадиас:
Где вы поняли идею, что я использую OSX? Это Win10.

Эдогадо:
Я попробовал оба доступных загрузчика, и оба ведут себя почти одинаково.

Эдогальдо
Пт 06 апреля 2018 г., 8:50 вечера
Создание вашего эскиза с помощью правильной версии загрузчика очень важно, потому что это определяет базу кода эскиза: если вы создаете неверную опцию загрузчика, то ваши адреса эскиза будут неправильными, и ваш эскиз не будет работать.
Это может объяснить, почему вы не найдете последовательное устройство после загрузки..
Другая возможная причина проблем в автоматической перезагрузке - использование Nano.Спецификация опция линкера: есть старый поток об этом.

Надеюсь, это поможет..

Лучший, e.

joeedarock
Пт 06 апреля 2018 г., 21:44
Ну, это работает 9 раз из 10. Кажется, у него возникают проблемы, только когда я впервые запускаю Arduino IDE. Когда это произойдет, я не получаю COM -порты в поле «Порт». Если я держу кнопку сброса в конце процесса компиляции непосредственно перед входом в загрузчик, она работает и продолжает работать, пока я не перезагружу IDE.

FWIW

Джо

Мадиас
SAT 07 апреля 2018 г., 6:16
[joeedarock - Пт. 06 апреля 2018 г., 19:21] - Мадиас:
Где вы поняли идею, что я использую OSX? Это Win10.

Эдогадо:
Я попробовал оба доступных загрузчика, и оба ведут себя почти одинаково.
OSX принадлежал кибермиреру.
Вы должны рассмотреть возможность использования другого USB-кабеля. В основном такие симптомы были вызваны (почти) неисправными USB-кабелями.
Затем я был в состоянии загрузить в нее миганную программу, используя Arduino IDE и выбрать Maple Mini в качестве целевой платы. Это неправильно для чертежа. Ты должен выбирать:
Generic STM32F103C Series
Если вы загрузите его с настройками "Maple Mini", то может быть, что загрузчик был поврежден, поэтому загрузите загрузчик для Bluepill снова и выберите правильную плату.

joeedarock
SAT 07 апреля 2018 г., 11:00 утра
Я уже пробовал это в начале отладки.

Фрейндер
Пт, 01 июня 2018 г., 8:15 вечера
Я не уверен, связано ли это, но я также боролся с прерывистыми сбоями, заставив меня снова прошить загрузчик, используя сериал. Я обнаружил, что загрузчик перестал работать после того, как загрузил на него эскиз, содержащий этот конкретный код: void setup() { Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only }

Стивестронг
Пт, 01 июня 2018 г., 21:48
Что именно должен делать этот код? Чего вы ожидаете? Что в курсе? Это не должно составлять вообще.

Фрейндер
Пт, 01 июня 2018 г., 22:28
[Стивестронг - Пт, 01 июня 2018 г. 9:48 вечера] - Что именно должен делать этот код? Чего вы ожидаете? Что в курсе? Это не должно составлять вообще.
Приведенный пример кода является лишь частью полного наброска. Например, например, пример Arduino Sketch StringAppendoperator.

Зачем это не компилировать? Это просто пустая петля, ожидая, когда серийный объект вернет True (логический оператор определен в сериале класса).

Фрейндер
Пт, 01 июня 2018 г., 22:47
[Фрейндер - Пт, 01 июня 2018 г. 22:28] - Зачем это не компилировать? Это просто пустая петля, ожидая, когда серийный объект вернет True (логический оператор определен в сериале класса).
Я думаю, вы уже знали, что судить по другим сообщениям на этом форуме, где вы советуете ждать сериала. Итак, вы, вероятно, имели в виду отсутствие} . Я предоставил только частичное применение кода, извините за то, что не прояснился.

Стивестронг
SAT 02 июня 2018 г., 7:20 утра
Я только что проверил этот код, и я мог загрузить его с помощью Arduino IDE 20 раз подряд, используя загрузчик STM32Duino. void setup() { // put your setup code here, to run once: Serial.begin(115200); while (!Serial); // wait for serial port to connect. } void loop() { // put your main code here, to run repeatedly: }

Фрейндер
SAT 02 июня 2018 г., 7:40
[Стивестронг - SAT 02, 2018, 7:20 утра] - Я только что проверил этот код, и я мог загрузить его с помощью Arduino IDE 20 раз подряд, используя загрузчик STM32Duino.
...
Win10 64 -бит.
Спасибо за тестирование. Мне было бы интересно, если бы кто -то тоже мог проверить это в Linux.
Также: USB Hid Bootloader, похоже, не имеет такой же проблемы.

Вассилис
SAT 02 июня 2018 г. 9:36 утра
Я протестировал код на Win10, 64-бит и Ubuntu 17.1, 64-битный на 10 раз. Я мог бы загружать каждый раз.

Проверьте файл hardware/Arduino_STM32/tools/linux/maple_upload

fpistm
SAT 02 июня 2018 12:41
Какое ядро ​​вы использовали ?
Когда вы подняли проблему на arduino_tools, это для STM Core?
STM Core еще не поддерживает загрузку DFU и не смещение вкладки VECT....

Фрейндер
SAT 02 июня 2018 13:33
Я использую ядро ​​Roger Arduino STM32. Это сработало периодически. Вчера я был убежден, что спусковой крючок ждал !Серийный, но больше не сегодня.

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

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

Спасибо за вашу помощь.