Маврик.Дж
Ср. 11 июля 2018 г., 7:54
Всем привет
Извините, если субъект не на месте, где уже упоминается.
В моем стремлении использовать лучшие из STM32F103, я много читаю и тестируйте.
В проекте, который занимает меня, я встречаю несколько странностей, Пехарпс багги! Особенно на заявлениях, которые не будут использоваться, и других, которые уже обращались на этом форуме (таймер предупреждения в LTO для Exemple)
Итак, STM32F103C8T6 "Синяя таблетка"
Arduino IDE V1.8.5
- Опция «наименьшее (по умолчанию)» дает код больше 4KO, чем опция наименьшего с LTO. это нормально?
- Параметр «Наименьший (по умолчанию)» дает различное предупреждение о наименьшем с опцией LTO
После нескольких тестов выясняется, что с опцией «наименьший (по умолчанию») код, отправленный синей таблетке, утверждая, что у него есть растения 128KO. Код хорошо загружен, но сбои в какой -то части кода (светодиодные мигают).
тот же код, скомпилированный в наименьшем с LTO, работает без проблем.
Таким образом, либо проблема с проблемой, либо STM32C8T6, которые говорят, что 128KO не работают или ошибки памяти!
Что ты думаешь?
PS: извините за мой английский (Google).
Извините, если субъект не на месте, где уже упоминается.
В моем стремлении использовать лучшие из STM32F103, я много читаю и тестируйте.
В проекте, который занимает меня, я встречаю несколько странностей, Пехарпс багги! Особенно на заявлениях, которые не будут использоваться, и других, которые уже обращались на этом форуме (таймер предупреждения в LTO для Exemple)
Итак, STM32F103C8T6 "Синяя таблетка"
Arduino IDE V1.8.5
- Опция «наименьшее (по умолчанию)» дает код больше 4KO, чем опция наименьшего с LTO. это нормально?
- Параметр «Наименьший (по умолчанию)» дает различное предупреждение о наименьшем с опцией LTO
После нескольких тестов выясняется, что с опцией «наименьший (по умолчанию») код, отправленный синей таблетке, утверждая, что у него есть растения 128KO. Код хорошо загружен, но сбои в какой -то части кода (светодиодные мигают).
тот же код, скомпилированный в наименьшем с LTO, работает без проблем.
Таким образом, либо проблема с проблемой, либо STM32C8T6, которые говорят, что 128KO не работают или ошибки памяти!
Что ты думаешь?
PS: извините за мой английский (Google).
Стивестронг
Ср. 11 июля 2018 г. 8:00 утра
[Маврик.Дж - Ср. 11 июля 2018 г. 7:54] - - Опция «наименьшее (по умолчанию)» дает код больше 4KO, чем опция наименьшего с LTO. это нормально?Да.
[Маврик.Дж - Ср. 11 июля 2018 г. 7:54] - - Параметр «Наименьший (по умолчанию)» дает различное предупреждение о наименьшем с опцией LTOКакие предупреждения? Пожалуйста, вставьте их здесь.
Маврик.Дж
Ср. 11 июля 2018 г., 17:04
Спасибо
Для «таймера» я читал, что он был «нормальным», но «spi» я не видел ничего, что могло бы выглядеть хорошо.
Но для определения есть что -то, чего я не понимаю, потому что, глядя в библиотеку, я не вижу ничего ненормального!
Список предупреждения:
Предупреждение для самого маленького с LTO
Для «таймера» я читал, что он был «нормальным», но «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
Хорошо,
ОС Windows Seven
ОС Windows Seven
fpistm
Пт 13 июля 2018 г. 9:25 утра
Наверное, не рука GCC 4.8.3 но обновленный.
Стивестронг
Пт 13 июля 2018 г. 9:35 утра
Как вы установили ядро Роджера?
Я только что увидел, что вы извлекли файлы в неправильный каталог, он должен был быть под каталогом эскизов Arduino, который обычно
c: \ users \ [user] \ documents \ arduino.
Затем подканалостическое оборудование \.
И какая плата Arduino вы установили дополнительно для GCC?
Я только что увидел, что вы извлекли файлы в неправильный каталог, он должен был быть под каталогом эскизов 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+)
Для установки я использую инструкции из вики Roger's Wiki. Но я мог допустить ошибку, несмотря на несколько чеков.
Я установил: AVR, SAM (ARM CORTEX M3), SAMD (M0+)
Стивестронг
Пт 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
То же самое для библиотек.
Когда я говорю тебе странно
Если я поместим пакеты в указанное место, они не узнают.
И я попробовал несколько инсталляций.
Установка пакетов SAM и SAMD в C: \ [пользователи ...] \ Appdata \ local \ arduino15 \ packages \ arduino \ harpware
Если я положил туда жесткие воды STM32, они тоже не узнают.
Единственное место, где они загружены, находится в C: \ Program Files (x86) \ arduino \ ardware
То же самое для библиотек.
Когда я говорю тебе странно
Стивестронг
Пт 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», и вы сможете собрать предупреждение о мгновение.
удалить все существующие папки 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] - Там нет ничего опасного.Я просто понял, что другие пользователи не жалуются, потому что они, вероятно, не устанавливают предупреждение компилятора на «все»
Но мне интересно, почему вы получаете эти сообщения, так как другие пользователи не жалуются.
Какая ОС?
У меня те же предупреждения, используя мастер ядра Роджера.
Стивестронг
Пт 13 июля 2018 г., 16:40
Как вы включите все предупреждения в ядре Роджера? По умолчанию он отключен.
Маврик.Дж
Сб 14 июля 2018 г., 7:42 утра
Всем привет,
Я даже устанавливаю совершенно новые окна ! Может быть язык или уход в системе?
Но я не нахожусь только на «All» варианте «больше» больше В «Все» есть более непостижимое предупреждение
Файл / предпочтение / компилятор предупреждение: больше
Я активировал отображение ошибок из -за сбоев STM32, в то время как компиляция была хорошей. и это, добавив или удалив простую линию стиля "int a = 3;" STM32 больше не разбился!
Короче говоря, я посмотрел на библиотеки, и я не понимаю, почему это предупреждение, которых не существует!
С уважением
[Стивестронг - Пт 13 июля 2018 г. 15:19] - Последнее предложение:Я уже пробовал это решение, потому что есть момент, который я пытаюсь понять.
удалить все существующие папки Arduino (включая ... \ Appdata \ local \ arduino15) и arduino_stm32 тоже.
....
Я даже устанавливаю совершенно новые окна ! Может быть язык или уход в системе?
[fpistm - Пт 13 июля 2018 г. 15:32] -Фу, я не единственный[Стивестронг - Ср. 11 июля 2018 г., 17:47] - ...Я просто понял, что другие пользователи не жалуются, потому что они, вероятно, не устанавливают предупреждение компилятора на «все»
У меня те же предупреждения, используя мастер ядра Роджера.
Но я не нахожусь только на «All» варианте «больше» больше В «Все» есть более непостижимое предупреждение
[Стивестронг - Пт 13 июля 2018 г. 16:40] - Как вы включите все предупреждения в ядре Роджера? По умолчанию он отключен.
Файл / предпочтение / компилятор предупреждение: больше
Я активировал отображение ошибок из -за сбоев STM32, в то время как компиляция была хорошей. и это, добавив или удалив простую линию стиля "int a = 3;" STM32 больше не разбился!
Короче говоря, я посмотрел на библиотеки, и я не понимаю, почему это предупреждение, которых не существует!
С уважением
Стивестронг
Сб 14 июля 2018 г. 8:07
Опять же, эти предупреждения не являются критическими, я запускаю несколько программ с этим.
Это должно быть что -то не так с вашим кодом.
Действительно сложно достичь кода 128 КБ. Как вы справились?
Однако более важным является потребление оперативной памяти.
Если вы используете много статической постоянной инициализации в функции, удалите это.
Также попытайтесь избавиться от объявления о новой строковой переменной в рамках функции, потому что это будет потреблять много кучи, что может быть причиной, по которой оно вылетает.
Это должно быть что -то не так с вашим кодом.
Действительно сложно достичь кода 128 КБ. Как вы справились?
Однако более важным является потребление оперативной памяти.
Если вы используете много статической постоянной инициализации в функции, удалите это.
Также попытайтесь избавиться от объявления о новой строковой переменной в рамках функции, потому что это будет потреблять много кучи, что может быть причиной, по которой оно вылетает.
Маврик.Дж
Сб 14 июля 2018 г. 9:19
Да, я понимаю, что это не критическое предупреждение, но не имеет смысла появляться.
Sketch использует 70772 байт (53%) пространства для хранения программы. Максимум составляет 131072 байта.
Глобальные переменные используют 5912 байтов (28%) динамической памяти, оставляя 14568 байтов для локальных переменных. Максимум - 20480 байт.
Я пробую все хитрости, которые я знаю, чтобы уменьшить код и размер памяти.
Проблема, по -видимому, появляется в 54% использования пространства. Я попробую с STM32F103CBT6, чтобы увидеть, есть ли авария.
Спасибо
С уважением
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.
Луча
При задании таких вопросов о соответствии кода, связывание, ошибки &предупреждение и бинарный размер ... По моему мнению, вы должны использовать один из примеров, который загружается с ядром.
Теперь, если вы используете пример, другие могут легко повторить тесты.
В противном случае вам нужно предоставить конкретный код & библиотеки в молнии.
У нас может быть несколько пользователей 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 здесь:
Таким образом, у меня есть папка Arduino, внутри есть Afolder с именем Portable, внутри есть папка с именем SketchBook, внутри есть папка с названием аппаратное обеспечение, внутри есть все ядра, которые я установил вручную, Roger и STM32Generic и ядро ESP32. Остальные были установлены основным менеджером.
Итак, Roger Core здесь:
D:\arduino\portable\sketchbook\Hardware\Arduino_STM32
fpistm
Вт 17 июля 2018 г. 8:44
Маврик.Дж
Сб 21 июля 2018 г., 17:00
Привет,
Прежде всего, спасибо всем за ваши треки, даже если некоторые уходят от предмета отъезда с версиями «портативные» или так я, кто плохо переводит
Таким образом, в результате моих расследований и замечаний Mrburnette я снова рассмотрел весь свой код, если оказалось, что сбой, по -видимому, был связан с указателем на тип переменной строки, переданный в параметра функции, размер которого не был хороший!
Я знаю, что вижу, что пуристы говорят: «Строка не очень хорошо», но это проще.
И в некоторых случаях значение, возвращаемое в стек, больше не было хорошим, отсюда переполнение стека.
Но всегда вопрос: почему с некоторыми вариантами компиляции это работало, а не с другими?
Короче говоря, я добавил в свою корзину stmlink, мы посмотрим, поможет ли это понять это явление.
Благодарю вас снова
с уважением
Прежде всего, спасибо всем за ваши треки, даже если некоторые уходят от предмета отъезда с версиями «портативные» или так я, кто плохо переводит
Таким образом, в результате моих расследований и замечаний Mrburnette я снова рассмотрел весь свой код, если оказалось, что сбой, по -видимому, был связан с указателем на тип переменной строки, переданный в параметра функции, размер которого не был хороший!
Я знаю, что вижу, что пуристы говорят: «Строка не очень хорошо», но это проще.
И в некоторых случаях значение, возвращаемое в стек, больше не было хорошим, отсюда переполнение стека.
Но всегда вопрос: почему с некоторыми вариантами компиляции это работало, а не с другими?
Короче говоря, я добавил в свою корзину stmlink, мы посмотрим, поможет ли это понять это явление.
Благодарю вас снова
с уважением
Рик Кимбалл
Сб 21 июля 2018 г. 18:09
Легче делать то, что? Если вы имеете в виду печать, есть <Потоковая передача.час> библиотека, которая позволяет вам делать простое объединение, не подчеркивая слишком много
http: // arduiniana.орг/библиотеки/потоковая передача/
http: // arduiniana.орг/библиотеки/потоковая передача/
Маврик.Дж
Sun 22 июля 2018 г., 7:03
Привет,
Для меня легче, с точки зрения интеграции и управления в коде, который занимает меня, не полагаясь на слишком много сторонней библиотеки.
Но спасибо за взаимосвязанные ссылки.
С уважением
Для меня легче, с точки зрения интеграции и управления в коде, который занимает меня, не полагаясь на слишком много сторонней библиотеки.
Но спасибо за взаимосвязанные ссылки.
С уважением