[Решено] STM32F103C Blue Pill - Can Compile и загрузка только один раз.

Kd5byb
Солнце 07 января 2018 г. 15:41
Доброе утро все,

Решение: переустановлен Arduino IDE с нуля, и теперь все работает нормально. :)

Имея небольшую проблему с использованием GTM32duino и GUI Arduino (v 1.8.5) Загрузить в общую STM32F103C Blue Pill.

Некоторый фон - около шести месяцев назад я купил синие таблетки, пропустил их с помощью инструмента ST Flash Flash, используя Generic_boot20_pc13.бин. Я немного поиграл с ними, в основном не делая ничего, кроме как вспыхивать PC13 с различными ценами, а затем отвлекался с другими проектами. Я не помню, чтобы у меня были какие -либо проблемы с компиляцией или загрузкой через порт miniusb на синей таблетке.

Сегодня я решил начать новый проект, используя синюю таблетку. Я решил, что должен убедиться, что моя настройка работает должным образом, поэтому я открыл пример светодиодного кода мигания и приступил к изменению скорости вспышки, чтобы убедиться, что я могу загрузить код без ошибки. Запомнив, что мне нужно нажать кнопку сброса сразу после ее завершения, у меня не было проблем с загрузкой кода в первый раз. Однако, когда я меняю свой код и пытаюсь скомпилировать и загружать снова, я получаю ошибку. Это кажется очень странным!

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

Первый...Вот вывод компилятора, когда все работает. Я удалил большую часть компиляции основных сообщений, иначе этот пост был бы слишком долго!
int LEDPIN=PC13; void setup() { Serial.begin(115200); pinMode(LEDPIN,OUTPUT); } void loop() { static int ledState=0; delay(1000); Serial.println("holaq"); digitalWrite(LEDPIN, ledState); ledState = 1 - ledState; // toggle ledState }

Kd5byb
Солнце 07 января 2018, 16:42
Доброе утро все,

Так...Я решил просто удалить Arduino IDE и начать все сначала. Это исправило проблему! Теперь я могу собрать столько раз, сколько мне нравится.

Как отметить ветку как решенную?

Большое спасибо,
Бен

ZMEMW16
Солнце 07 января 2018 17:36
Измените заголовок вашего первого поста в этой ветке
Добавьте текст в верхней части тела, чтобы суммировать исправление
SRP

Kd5byb
Солнце 07 января 2018 г., 17:57
Отлично, большое спасибо! Помечен как решенные и добавленные в тексте, описывающий исправление.

Mrburnette
Солнце 07 января 2018 г., 19:50
[Kd5byb - Солнце 07 января 2018 16:42] - Доброе утро все,

Так...Я решил просто удалить Arduino IDE и начать все сначала. Это исправило проблему! Теперь я могу собрать столько раз, сколько мне нравится.

Как отметить ветку как решенную?

Большое спасибо,
Бен
Почти всегда это происходит из -за того, что файлы кэша ардуиоида не управляются должным образом в папке /TMP. Если вы смогли решить с помощью удаления/установки, то это, вероятно, проблема с разрешениями.


Луча

Kd5byb
Солнце 07 января 2018 21:10
[Mrburnette - Солнце 07 января 2018 г., 19:50] - Почти всегда это происходит из -за того, что файлы кэша ардуиоида не управляются должным образом в папке /TMP. Если вы смогли решить с помощью удаления/установки, то это, вероятно, проблема с разрешениями.
Привет, Рэй,

Большое спасибо за ответ. Это была моя первая мысль. Это коробка Win7, и я бегу как администратор (вероятно, не отличная идея, я знаю, и не думал, что у меня должны быть какие-либо проблемы с разрешениями? В любом случае...Теперь все разобралось, и я с радостью программируюсь на голубой доске таблеток. :) Неопиксели работали и просто выяснили, как поговорить со всеми тремя серийными портами, так что я очень счастлив.

Большое спасибо,
Бен

fpistm
Пн, 08 января 2018 г. 9:18 утра
К вашему сведению
Эта проблема известна.
Это связано с длиной пути ядра.Файл при использовании агрессивно скомпилированной основной функции кэша.
Выпуск, который я открыл в Arduino Github:
https: // github.com/arduino/arduino/ansuests/6757

Путь 263 в вашем случае, поэтому он не удался. Serial.begin(115200); Serial1.begin(115200); Serial2.begin(115200); Serial3.begin(115200);

Rogerclark
Вторник 23 января 2018 г. 20:44
Фредерик

Знаете ли вы, если это исправление вызывает более медленное время сборки ?

fpistm
Вторник 23 января 2018 г., 21:40
Я не видел изменения времени сборки. Это просто еще одна переменная, которая идет прямо на правильном пути, вместо того, чтобы слишком глубоко и перемотать :ржу не могу:
Вместо /* BlinkNcount for Maple Mini by m. ray burnette. Compiled on LInux Mint 18.3 w/ Arduino IDE 1.8.5 Sketch uses 9620 bytes (14%) of program storage space. Maximum is 65536 bytes. Global variables use 1984 bytes (9%) of dynamic memory, leaving 18496 bytes for local variables. Maximum is 20480 bytes. Turns on an LED on for one second, then off for one second, repeatedly. Counts and displays the count on the attached serial monitor Blue Pill example to send test to all serial ports */ int n = 0; void setup() { // initialize the digital pin as an output. pinMode(LED_BUILTIN, OUTPUT); // Initialize virtual COM over USB on Maple Mini Serial.begin(9600); // BAUD has no effect on USB serial: placeholder for physical UART Serial1.begin(9600); Serial2.begin(9600); // wait for serial monitor to be connected. while (!Serial) { digitalWrite(LED_BUILTIN,!digitalRead(LED_BUILTIN)); // Turn the LED from off to on, or on to off delay(100); // fast blink } Serial.println("Blink LED & count Demo"); } void loop() { digitalWrite(LED_BUILTIN, HIGH); // set the LED on delay(500); // wait for a second digitalWrite(LED_BUILTIN, LOW); // set the LED off // Serial.print("Loop #: "); n++; Serial.print("Serial: ") ; Serial.println(n); Serial1.print("Serial1: ") ; Serial1.println(n); Serial2.print("Serial2: ") ; Serial2.println(n); delay(500); // wait }

Rogerclark
Вторник 23 января 2018 г. 22:09
ХОРОШО

Укорочение пути - это здорово ;-)

Я был просто обеспокоен, так как это изменилось

fpistm
Вторник 23 января 2018 г. 22:12
Правильно, если вы отключите опцию агрессивно кэшированного ядра в диалоговом окне «Предпочтение», у вас не будет проблемы.
Обратите внимание, что это Мартино Факцин из Ардуино, который дал мне этот намек.
Я также сокращаю несколько вариантов, так как все параметры сборки используются в имени ядра кэша.
Видеть: https: // github.com/stm32duino/arduino_c ... 2/pull/109
С этими изменениями я уменьшил около 70 ;)

Rogerclark
Ср 24 января 2018 г. 5:35 утра
[fpistm - Вторник 23 января 2018 г. 22:12] -
С этими изменениями я уменьшил около 70 ;)
Ух ты...

Спасибо

Я попробую, когда я получу свободное время. (Набор PR еще для обработки)

Функция Shiftout