Синие таблетки причуды

Маврик.Дж
Ср. 11 июля 2018 г., 7:54
Всем привет
Извините, если субъект не на месте, где уже упоминается.

В моем стремлении использовать лучшие из STM32F103, я много читаю и тестируйте.

В проекте, который занимает меня, я встречаю несколько странностей, Пехарпс багги! Особенно на заявлениях, которые не будут использоваться, и других, которые уже обращались на этом форуме (таймер предупреждения в LTO для Exemple)

Итак, STM32F103C8T6 "Синяя таблетка"
Arduino IDE V1.8.5

- Опция «наименьшее (по умолчанию)» дает код больше 4KO, чем опция наименьшего с LTO. это нормально?

- Параметр «Наименьший (по умолчанию)» дает различное предупреждение о наименьшем с опцией LTO

После нескольких тестов выясняется, что с опцией «наименьший (по умолчанию») код, отправленный синей таблетке, утверждая, что у него есть растения 128KO. Код хорошо загружен, но сбои в какой -то части кода (светодиодные мигают).

тот же код, скомпилированный в наименьшем с LTO, работает без проблем.

Таким образом, либо проблема с проблемой, либо STM32C8T6, которые говорят, что 128KO не работают или ошибки памяти!

Что ты думаешь?

PS: извините за мой английский (Google). : oops:

Стивестронг
Ср. 11 июля 2018 г. 8:00 утра
[Маврик.Дж - Ср. 11 июля 2018 г. 7:54] - - Опция «наименьшее (по умолчанию)» дает код больше 4KO, чем опция наименьшего с LTO. это нормально?
Да.
[Маврик.Дж - Ср. 11 июля 2018 г. 7:54] - - Параметр «Наименьший (по умолчанию)» дает различное предупреждение о наименьшем с опцией LTO
Какие предупреждения? Пожалуйста, вставьте их здесь.

Маврик.Дж
Ср. 11 июля 2018 г., 17:04
Спасибо
Для «таймера» я читал, что он был «нормальным», но «spi» я не видел ничего, что могло бы выглядеть хорошо.
Но для определения есть что -то, чего я не понимаю, потому что, глядя в библиотеку, я не вижу ничего ненормального!

Список предупреждения:

Предупреждение для самого маленького с LTO
WARNING: Category 'Device' in library ParPrinter is not valid. Setting to 'Uncategorized' WARNING: Category 'Device' in library Radar is not valid. Setting to 'Uncategorized' C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable] static uint8_t ff = 0XFF; ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:164:15: warning: '_spi1_this' defined but not used [-Wunused-variable] static void (*_spi1_this); ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi2_this' defined but not used [-Wunused-variable] static void (*_spi2_this); ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src\SPI.cpp: In function 'spi_baud_rate determine_baud_rate(spi_dev*, uint32_t)': C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src\SPI.cpp:762:12: warning: enumeration value 'RCC_AHB' not handled in switch [-Wswitch] switch (rcc_dev_clk(dev->clk_id)) ^ In file included from C:\Code Arduino Travail\Code Source Arduino\libraries\SD\src\utility\Sd2Card.cpp:31:0: C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:163:16: warning: 'ff' defined but not used [-Wunused-variable] static uint8_t ff = 0XFF; ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:164:15: warning: '_spi1_this' defined but not used [-Wunused-variable] static void (*_spi1_this); ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:165:15: warning: '_spi2_this' defined but not used [-Wunused-variable] static void (*_spi2_this); ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/include/libmaple/timer.h:150:18: warning: type of 'timer4' does not match original declaration [enabled by default] extern timer_dev timer4; ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\timer.c:67:11: note: previously declared here timer_dev timer4 = GENERAL_TIMER(4); ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/include/libmaple/timer.h:138:18: warning: type of 'timer1' does not match original declaration [enabled by default] extern timer_dev timer1; ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\timer.c:52:11: note: previously declared here timer_dev timer1 = ADVANCED_TIMER(1); ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/include/libmaple/timer.h:146:18: warning: type of 'timer3' does not match original declaration [enabled by default] extern timer_dev timer3; ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\timer.c:62:11: note: previously declared here timer_dev timer3 = GENERAL_TIMER(3); ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/stm32f1/include/series/adc.h:45:16: warning: type of 'adc1' does not match original declaration [enabled by default] extern adc_dev adc1; ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\adc_f1.c:43:9: note: previously declared here adc_dev adc1 = { ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\system/libmaple/include/libmaple/timer.h:142:18: warning: type of 'timer2' does not match original declaration [enabled by default] extern timer_dev timer2; ^ C:\Program Files (x86)\arduino\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\timer.c:57:11: note: previously declared here timer_dev timer2 = GENERAL_TIMER(2); ^

Стивестронг
Ср. 11 июля 2018 г., 17:47
Там нет ничего опасного.
Но мне интересно, почему вы получаете эти сообщения, так как другие пользователи не жалуются.
Какая ОС?

Маврик.Дж
Пт 13 июля 2018 г. 9:12
Хорошо, : oops:
ОС Windows Seven

: ugeek:

fpistm
Пт 13 июля 2018 г. 9:25 утра
Наверное, не рука GCC 4.8.3 но обновленный.

Стивестронг
Пт 13 июля 2018 г. 9:35 утра
Как вы установили ядро ​​Роджера?
Я только что увидел, что вы извлекли файлы в неправильный каталог, он должен был быть под каталогом эскизов Arduino, который обычно
c: \ users \ [user] \ documents \ arduino.
Затем подканалостическое оборудование \.
И какая плата Arduino вы установили дополнительно для GCC?

Маврик.Дж
Пт 13 июля 2018 г. 9:48 утра
Для GCC это версии 4.8.3-2014Q1

Для установки я использую инструкции из вики Roger's Wiki. Но я мог допустить ошибку, несмотря на несколько чеков.

Я установил: AVR, SAM (ARM CORTEX M3), SAMD (M0+)

: Geek:

Стивестронг
Пт 13 июля 2018 г., 11:14
Каталог C:\Program Files (x86)\arduino\hardware\

Маврик.Дж
Пт 13 июля 2018 г. 14:38
Спасибо, но
Если я поместим пакеты в указанное место, они не узнают.

И я попробовал несколько инсталляций.

Установка пакетов SAM и SAMD в C: \ [пользователи ...] \ Appdata \ local \ arduino15 \ packages \ arduino \ harpware

Если я положил туда жесткие воды STM32, они тоже не узнают.

Единственное место, где они загружены, находится в C: \ Program Files (x86) \ arduino \ ardware

То же самое для библиотек.

Когда я говорю тебе странно :? : oops:

Стивестронг
Пт 13 июля 2018 г., 15:19
Последнее предложение:
удалить все существующие папки Arduino (включая ... \ Appdata \ local \ arduino15) и arduino_stm32 тоже.
и сделать новую свежую установку Arduino IDE:
- Скачать и раскачать arduino ide на: [user] \ downloads \ arduino
- Arduino Sketch Polder должна быть: [Пользователь] \ Documents \ Arduino
- Arduino_stm32 должен перейти к: [Пользователь] \ Documents \ Arduino \ Adware
- Любая дополнительная дополнительная библиотека (не дефект STM32) по адресу: [Пользователь] \ Documents \ Arduino \ Libraries.

Затем откройте Arduino IDE, установите платы SAM для Cortex-M3, выберите «Общие варианты платы» платы «Generic STM32F103C», и вы сможете собрать предупреждение о мгновение.

fpistm
Пт 13 июля 2018 г. 15:32
[Стивестронг - Ср. 11 июля 2018 г., 17:47] - Там нет ничего опасного.
Но мне интересно, почему вы получаете эти сообщения, так как другие пользователи не жалуются.
Какая ОС?
Я просто понял, что другие пользователи не жалуются, потому что они, вероятно, не устанавливают предупреждение компилятора на «все» : mrgreen:

У меня те же предупреждения, используя мастер ядра Роджера.

Стивестронг
Пт 13 июля 2018 г., 16:40
Как вы включите все предупреждения в ядре Роджера? По умолчанию он отключен.

Маврик.Дж
Сб 14 июля 2018 г., 7:42 утра
Всем привет,
[Стивестронг - Пт 13 июля 2018 г. 15:19] - Последнее предложение:
удалить все существующие папки Arduino (включая ... \ Appdata \ local \ arduino15) и arduino_stm32 тоже.
....
Я уже пробовал это решение, потому что есть момент, который я пытаюсь понять.
Я даже устанавливаю совершенно новые окна ! Может быть язык или уход в системе?
[fpistm - Пт 13 июля 2018 г. 15:32] -
[Стивестронг - Ср. 11 июля 2018 г., 17:47] - ...
Я просто понял, что другие пользователи не жалуются, потому что они, вероятно, не устанавливают предупреждение компилятора на «все» : mrgreen:

У меня те же предупреждения, используя мастер ядра Роджера.
Фу, я не единственный : D :ржу не могу:
Но я не нахожусь только на «All» варианте «больше» больше :рулон: В «Все» есть более непостижимое предупреждение : o
[Стивестронг - Пт 13 июля 2018 г. 16:40] - Как вы включите все предупреждения в ядре Роджера? По умолчанию он отключен.


Файл / предпочтение / компилятор предупреждение: больше

Я активировал отображение ошибок из -за сбоев STM32, в то время как компиляция была хорошей. и это, добавив или удалив простую линию стиля "int a = 3;" STM32 больше не разбился!


Короче говоря, я посмотрел на библиотеки, и я не понимаю, почему это предупреждение, которых не существует!

: oops:

С уважением

Стивестронг
Сб 14 июля 2018 г. 8:07
Опять же, эти предупреждения не являются критическими, я запускаю несколько программ с этим.
Это должно быть что -то не так с вашим кодом.
Действительно сложно достичь кода 128 КБ. Как вы справились?
Однако более важным является потребление оперативной памяти.
Если вы используете много статической постоянной инициализации в функции, удалите это.
Также попытайтесь избавиться от объявления о новой строковой переменной в рамках функции, потому что это будет потреблять много кучи, что может быть причиной, по которой оно вылетает.

Маврик.Дж
Сб 14 июля 2018 г. 9:19
Да, я понимаю, что это не критическое предупреждение, но не имеет смысла появляться.

Sketch использует 70772 байт (53%) пространства для хранения программы. Максимум составляет 131072 байта.
Глобальные переменные используют 5912 байтов (28%) динамической памяти, оставляя 14568 байтов для локальных переменных. Максимум - 20480 байт.

Я пробую все хитрости, которые я знаю, чтобы уменьшить код и размер памяти.

Проблема, по -видимому, появляется в 54% использования пространства. Я попробую с STM32F103CBT6, чтобы увидеть, есть ли авария.

Спасибо
С уважением

Mrburnette
Сб 14 июля 2018 г., 17:09
Маврик.Дж

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

Теперь, если вы используете пример, другие могут легко повторить тесты.
В противном случае вам нужно предоставить конкретный код & библиотеки в молнии.

У нас может быть несколько пользователей Win 7 на форуме, которые не обновились до Win 10, но много лет назад я использовал Win8.1 и не было проблем с STM32Duino. Я выполнил установку на моем 1 (один одинокий) ПК с Windows 10 без каких -либо проблем. Но я человек Linux и, следовательно, почему есть только 1 выигрыш ... Просто для тестирования. Обратите внимание, что «пользовательская» установка или работа со старым ядром действительно может испортить результаты, которые вы достигли.

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

По вопросу «предупреждения о мягких компиляторах» вы можете найти такие вещи самостоятельно, используя Google.

Луча

Маврик.Дж
Пн 16 июля 2018 г., 13:12
Привет и спасибо за все эти ценные советы

С уважением

Zoomx
Вт 17 июля 2018 г. 8:39 утра
У меня есть один компьютер с семь, но моя установка Arduino находится в «Портативном режиме».
Таким образом, у меня есть папка Arduino, внутри есть Afolder с именем Portable, внутри есть папка с именем SketchBook, внутри есть папка с названием аппаратное обеспечение, внутри есть все ядра, которые я установил вручную, Roger и STM32Generic и ядро ​​ESP32. Остальные были установлены основным менеджером.
Итак, Roger Core здесь: D:\arduino\portable\sketchbook\Hardware\Arduino_STM32

fpistm
Вт 17 июля 2018 г. 8:44
https: // www.Ардуино.cc/en/guide/portableide

Маврик.Дж
Сб 21 июля 2018 г., 17:00
Привет,
Прежде всего, спасибо всем за ваши треки, даже если некоторые уходят от предмета отъезда с версиями «портативные» или так я, кто плохо переводит ;-)

Таким образом, в результате моих расследований и замечаний Mrburnette я снова рассмотрел весь свой код, если оказалось, что сбой, по -видимому, был связан с указателем на тип переменной строки, переданный в параметра функции, размер которого не был хороший!

Я знаю, что вижу, что пуристы говорят: «Строка не очень хорошо», но это проще. :ржу не могу:

И в некоторых случаях значение, возвращаемое в стек, больше не было хорошим, отсюда переполнение стека. :рулон:

Но всегда вопрос: почему с некоторыми вариантами компиляции это работало, а не с другими?

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

Благодарю вас снова
с уважением

Рик Кимбалл
Сб 21 июля 2018 г. 18:09
Легче делать то, что? Если вы имеете в виду печать, есть <Потоковая передача.час> библиотека, которая позволяет вам делать простое объединение, не подчеркивая слишком много

http: // arduiniana.орг/библиотеки/потоковая передача/

Маврик.Дж
Sun 22 июля 2018 г., 7:03
Привет,
Для меня легче, с точки зрения интеграции и управления в коде, который занимает меня, не полагаясь на слишком много сторонней библиотеки.

Но спасибо за взаимосвязанные ссылки.
С уважением