Использование Cubemx HAL внутри Arduino IDE

Дэвидб
Ср 14 марта 2018 г. 15:10
Привет,

Я несколько смущен. Я нашел репо в https: // github.com/sheepdoll/halmx_arduino_stm32.

Когда я читаю строку «HALMX - это вариация arduino_stm32» в ReadMe, я изначально сделал вывод о том, что это репо может использоваться в Arduino IDE и использую Cubemx HAL внутри Arduino IDE для программирования разных плат. Я надеюсь, что это правда, потому что это именно то, что я хотел бы сделать...

Если так, как мне на самом деле установить это? Инструкции в документах в «Не очень ясны для меня.

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

Ваше здоровье,

Дэйвид

Mrburnette
Ср 14 марта 2018 г. 16:19
Дэйвид,

STM32Duino был изначально порожденная из большой нити на 176 страниц на Ардуино.скандал ... Первоначальной платформой была клонировая Maple Mini. Первоначальной кодовой базой была публичная открытый исходный код (и заброшенные) Leaflabs.com libmaple и pre-arduino 1.0 основных файлов.

Большое усилие пота породило ардуиноид 1.5+ Совместимое ядро. Libmaple все еще используется в этом смысле. Оригинальная документация можно найти в разделе «Ресурсы» на этой странице: https: // www.Leaflabs.com/maple

До 18 месяцев назад ряд участников хотели бы изменить кодовую базу, используя официальный STM Cubemx/Hal. Последовались различные попытки, и Sheepdoll был одним из передвижных и агрессивных членов. Насколько мне известно, все эти усилия стали устаревшими.

18 месяцев назад STM предложила прийти и построить версию Arduino для своей официальной линии досок в ядрах. Эти усилия были успешными, и у нас есть сотрудник STM, который поддерживает и развивает то же самое. Эта кодовая база поддерживается в нескольких разделах этого форума.
Поэтому вы должны использовать поддерживаемую кодовую базу отсюда: https: // github.com/stm32duino/arduino_core_stm32

Я настоятельно рекомендую вам держаться подальше от других баз кода GitHub, так как вы будете поддерживать себя в этом мероприятии... Если SheepDoll не уйдет (она очень занята и занимается многочисленными проектами) и решит предложить вам несколько лакомых кусочков своего времени.

Луча

Дэвидб
Ср 14 марта 2018 г., 22:02
Это довольно четкий совет. Спасибо. :)

Ваше здоровье,

Дэйвид

ZMEMW16
Чт 15 марта 2018 г., 2:51
Файл под «для расследования», когда вы приобретете плату STM32F4XX, возможно, лучше.
У Стива Стронга есть ядро ​​F4 Libmaple, которое, по -видимому, имеет следующее, есть пара или три базы HAL, при условии низкой скорости обновления, но я приписываю, возможно, меру стабильности.
SRP

Андисимоны
Ср 14 ноября 2018 г. 18:17
Я недавно играл с этим ядром и по сравнению с другими (хотя и не овчаркой). Roger's STM32_arduino все еще хорош для Mapleleaf, но ограниченным за пределами этого. STM32Generic также был основан на HAL, но, похоже, больше не поддерживается. Он создает много предупреждений компилятора, которые мне не нравятся, но он работает, по крайней мере, в отношении теста на мигание.

STM32_Core_arduino, похоже, является наиболее полным на сегодняшний день (у него есть два уровня меню для выбора платы) и «чистый» в том, что он производит несколько предупреждений компилятора. Тот факт, что он, кажется, поддерживается, является основным плюсом! Я надеюсь, что это продолжается. Так что я уже фанат.

Ограничение заключается в том, что он поддерживает только ST STARD, а не китайские клоны, такие как моя Diymroe (да, так написано) STM32F407VGT Poard (см. В другом месте на этом форуме). Один маленький лишний, который я хотел бы, - это возможность выбрать Встроенный чип как вариант (.k.а. голая доска). В настоящее время я работаю с чипом STM32F103C8T на доске прорыва на макете, с моим собственным керамическим резонатором и источником питания, STLINK, сбросом, сбросом, USB и светодиодом для мигания. Существует опция «Generic STM32F101 серии», но единственная подпроката на данный момент-«синяя таблетка», которая не совсем то же самое, что у меня. Мне нужна аналогичная вариант для серии F4. Если не что иное, такой вариант можно использовать в качестве ловушки для всех плат, которые не поддерживаются иным образом. Это просто означало бы, что пользователь должен будет определять такие элементы, как led_builtin.

С уважением,
Энди

Рик Кимбалл
Ср 14 ноября 2018 г., 19:50
[Андисимоны - Ср 14 ноября 2018 г. 18:17] - ... Один маленький лишний, который я хотел бы, - это возможность выбрать Встроенный чип как вариант (.k.а. голая доска). ...
Как будто тестирование текущего ядра на 3 платформах ОС с более чем 10 32 ST -качественные доски разработки недостаточно утомительны.

Большой "-1" от меня.
Andysymons написал: Один маленький лишний...

Mrburnette
Ср 14 ноября 2018 г., 21:21
[Андисимоны - Ср 14 ноября 2018 г. 18:17] - ...
Ограничение заключается в том, что он поддерживает только СВТ, а не китайские клоны ...
...
С уважением,
Энди
Энди,

STM сделал пособия для конечных пользователей, чтобы адаптировать официальное ядро ​​к большинству STM:
https: // github.com/stm32duino/wiki/wiki ... nt- (доска)

Я не ожидаю, что Intel поддержит каждую ноутбук, в котором используется процессор Intel, это не практично. STM создал швейцарский нож для продукта в ядре STM32_arduino Core.

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

Луча

Андисимоны
Чт 15 ноября 2018 г. 13:51
Возможно, я немного запутал свою формулировку, но если вы прочитали то, что я сказал, я не попросил STM поддержать доски, которые они не делают, я просто сказал, что это ограничение.
В целом я говорил в пользу этого ядра!
Что я сделал, так это то, что они предлагают вариант только для чипа самостоятельно, а не на доске вообще. Это явно является продуктом ST и может быть поддержан (как и в STMCUBEMX).

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

Ваше здоровье,
Энди

fpistm
Чт 15 ноября 2018 г. 15:50
[Андисимоны - Ср 14 ноября 2018 г. 18:17] - Ограничением является то, что он поддерживает только доски ST
Это неправильное ограничение. Основная поддержка всех досок на основе STM32 (кроме H7 в настоящее время).
В сердечнике есть несколько не изготовленных плат
Bluepill F103C8 (основная поддержка, нет USB)
Maplemini F103CB (базовая поддержка, нет USB)
Черный F407Vet6
Синий F407Vet6 Mini
Rak811 Lora Tracker (базовая поддержка)
Remram v1

и в следующем выпуске:
Demo Poard STM32F030F4
Вооруженный V1

Sheepdoll
Чт 15 ноября 2018 г. 18:10
Я не совсем прячусь. Просто не было много в последнее время. Я все еще регистрируюсь ежедневно.

Мой git был доказательством концепции, которую другие смогли повысить ценность. Это показало, что можно было вызвать код HAL из Arduino IDE. Как отмечено с выпуском официального ядра, многие из этих ранних усилий упали на обочине. Это хорошая вещь, так как показывает ценность вклада группы в целом.

Когда я отлаживал внутри Eclipse IDE, с OpenOCD, я двигался больше в этом направлении, который находится за пределами области.

Андисимоны
Пт 16 ноября 2018 г. 12:23
1. FPISTM прав, в пакете ARDUINO_CORE_STM32 также есть платы без STM.

2. Ссылка Рэя очень полезна. Есть очень четкие инструкции о том, как добавить другую доску в пакете arduino_core_stm32. Я получил свою работу менее чем за полчаса. Этот метод сохраняет новое определение в существующем ядре, поэтому вам не нужно реализовать свое собственное ядро ​​(как я имел ранее). Тем не менее, это не совсем ясно для меня, что происходит, когда STM выдает обновление через менеджер досок. Могут ли некоторые из изменений потеряны?

Поэтому мы все согласны с тем, что Arduino_core_stm32 теперь является лучшим ядром для большинства целей!

3. Одним из маленьких ниггла является то, что системы на основе HAL, по-видимому, предполагают именование Microsoft; На Mac вы получаете сообщение об ошибке, если вы используете пространство, доллар - или другой специальный символ, который разрешен Mac, но не Microsoft - в любой папке или имени файла в пути к вашему эскизу. Этого не происходит при выборе arduino_stm или стандартной платы Arduino Arduino. Это делает Также случается с STM32Generic (который также основан на HAL).

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

Я проследил проблему до линии в платформа.текст: рецепт.крючки.предварительно.1.шаблон.macosx = bash -c "[-f {build.Опт.Sourcepatath}] || (mkdir -p {build.Путь}/Эскиз && коснуться {сборка.Опт.путь} )" Я не эксперт по сценарию, но я думаю, что решение будет цитировать имя файла; Тем не менее, я не понял, как это сделать здесь, так как цитирование уже используется. Можно ли цитировать быть вложенным? Или я лаю не то дерево в первую очередь?

С уважением,

Энди

fpistm
Пт 16 ноября 2018 г., 5:37 утра
Эта линия представляет. В окнах нет решений, если путь содержит пространство или специальный символ. Может на Mac это можно было исправить. Если у вас есть исправление, не стесняйтесь делиться, но по мере того, как путь обрабатывается Arduino ({Build.Опт.sourcepatath}) Я думаю, это может быть трудно исправить.
У других ядер нет этой проблемы, поскольку они не используют эту функцию.

Подробнее об этом: https: // github.com/stm32duino/wiki/wiki ... uild_opt.час

Mrburnette
Пт 16 ноября 2018 г. 14:51
Оказавшись в альтернативной реальности, я был MCSE. Я оставил окна в 8.1 дня.

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

Вы также можете исследовать субстанция Команда Windows.

Луча

Рик Кимбалл
Пт 16 ноября 2018 г., 16:00
[fpistm - Пт 16 ноября 2018 г., 5:37 утра] - ... Если у вас есть исправление, не стесняйтесь делиться, но по мере того, как путь обрабатывается Arduino ({Build.Опт.sourcepatath}) Я думаю, это может быть трудно исправить.
Я бы добавил команду Bash в инструменты каталогов инструментов:
$ cat tools/linux/touch_opts #!/bin/bash set -x [ -f "$1" ] || (mkdir -p "$2" && touch "$3" )

fpistm
Пт 16 ноября 2018 г. 16:12
Спасибо, Рик, но я бы не добавил сценарий.
Думать об этом, может быть, цитирование должно быть достаточно для Linux и Mac. Я думал о окнах, когда написал свои ответы... :рулон:

Рик Кимбалл
Пт 16 ноября 2018 г. 16:47
Вы должны добавить цитату, она сломана на Linux. Я безуспешно попробовал множество подходов, чтобы исправить это без использования сценария. Я хотел бы посмотреть, как правильно это исправить.

Андисимоны
Сб 17 ноября 2018 г., 23:47
14 ноября, 10:21 Рэй предоставил очень полезную ссылку на инструкции о том, как добавить новые платы или варианты в ST’s arduino_core_stm32: (https: // github.com/stm32duino/wiki/wiki ... 28board%29). Инструкции очень ясны, но они не указывают, что происходит, когда есть обновление. Поэтому я сделал тест сегодня и подтвердил свой страх, что Если вы обновляете arduino_core_stm32 с помощью менеджера плат, старая версия, включая все изготовленные вами пользовательские модификации, стерта.

Есть несколько вариантов, чтобы избежать этого, ни один из которых не является особенно привлекательным:
  • Дон’T. Это’S не автоматически, поэтому, если вы не нажмете кнопку обновления в диспетчере досок, старая версия останется на неопределенном времени.
  • Сохранить резервную копию где-то из индивидуальных файлов, я.эн. доски.txt и добавленные вами папки варианта. После проведения обновления в менеджере по доскам, восстановления или повторных досок.TXT вручную и повторно введите папки варианта.
  • Вместо установки arduino_core_stm32 с использованием менеджера Boards загрузите файлы из https: // github.com/stm32duino/arduino_core_stm32, Разанипируйте их и положите в папку в свой каталог…/Arduino/Adware. Обратите внимание, что доски.TXT должен быть на два уровня вниз от…/arduino/hardware. Это будет изолировать определения от менеджера досок и предотвратить случайное стирание. Конечно, если вы также установите arduino_core_stm32 с помощью менеджера плат, вы получите два набора определений.
  • Установите arduino_core_stm32, используя менеджер плат обычным способом и не редактируйте его; Вы можете использовать автоматическое обновление по желанию. Скопируйте arduino_core_stm32 в новую структуру папки, arduino_mycore_stm32, скажем,. Дайте ему другое имя (на платформе.txt), так что вы можете найти его в меню «Доски». Адаптировать эту копию в соответствии с инструкциями в https: // github.com/stm32duino/wiki/wiki ... 28board%29. Затем удалите все доски и варианты, которые вам не нужны, потому что у вас все еще есть в исходном arduino_core_stm32. Если есть обновление ARDUINO_CORE_STM32, он будет работать для всех досок, кроме ваших специальных предложений. Для них вам придется повторно копировать все файлы в ARDUINO_MYCORE_STM32, кроме досок.текст.
Какой бы из них вы ни использовали, это составляет неловкое ручное объединение нового и старого кода, с риском ошибок или неожиданных проблем совместимости. Что мы могли бы сделать, так это инструкция в области досок.TXT, который включает в себя одно или несколько определений платы/вариантов из отдельных пользовательских плат.Подпрограммы TXT и варианты файлов в отдельной структуре папок, которую Manager Poards не будет стереть. Я не ДОН’не думаю, что ничего подобного уже существует, делает это?
Удачи!
Энди

fpistm
Солнце 18 ноября 2018 г. 9:21 утра
Вот как Arduino обрабатывает обновление, он исключительно удаляет каталог, а затем извлекает новый. Теоретически, пользователь не должен изменять ядро.
Чтобы избежать этого, у вас есть несколько возможностей:
1 - Используйте Git Repo, затем принесите его, чтобы получить последнее обновление, которое позволяет вам также локально совершать свои изменения. В идеале сделать это на вилке.
https: // github.com/stm32duino/wiki/wiki ... репозиторий
2 - Лучше, вы можете предоставить пиар, чтобы объединить свои изменения в репо.
3 - Создайте свой собственный пакет, используя ядро, как Tomvdb do:
Видеть:
https: // github.com/stm32duino/arduino_c ... /проблемы/67
https: // github.com/tomvdb/edubot_arduin ... индекс.json
https: // github.com/tomvdb/edubot_arduin ... дюймовый.TXT#L21

Андисимоны
Солнце 18 ноября 2018 г. 9:18 вечера
Спасибо за эти дополнительные предложения! 1 и 2 предположительно требуют, чтобы изменения были полностью протестированы и либо поддерживались автором (1), либо ST (2). Я еще не совсем на этом этапе 1, либо в тестировании моих изменений, либо в опыте с GitHub. Я не знаю, примет ли St 2, PR, хотя было бы здорово, если бы они сделали! Это действительно было бы лучшим долгосрочным решением. fpistm, это вы, который представляет ST? Если так, возможно, вы сможете указать мне на процедуру PR...
Я думаю, что 3 по сути такая же, как моя последняя пуля.
С уважением, Энди

fpistm
Пн 19 ноября 2018 г., 5:22
Да, я работаю на ST и поддерживаю ядро.
Ядро с открытым исходным кодом, и все взносы приветствуются.
Несколько советов уже были предоставлены участниками.
Если вам не нравится GIT, вы можете создать проблему и предоставить в качестве вложения файл Zip для вас вариант, тогда я создам PR.

Рик Кимбалл
Пн 19 ноября 2018 г., 11:20 вечера
Вариант № 4:

Используйте ядро ​​STM, но создайте свой собственный основной каталог, который ссылается на его. Все, что вам нужно в каталоге, это простые доски.TXT, платформа.TXT и Variant Directory, содержащий различия в вариантах.

Прочитайте раздел «Ссылка на другое ядро» в:
https: // github.com/arduino/arduino/wiki ... зацикция
Ссылка на другое ядро, вариант или инструмент

Внутри досок.TXT Мы можем определить плату, которая использует ядро, предоставленное другим поставщиком/Mantainer, используя Syntax Vendor_id: core_id. Например, если мы хотим определить доску, которая использует ядро ​​«Arduino» от поставщика «Arduino», мы должны написать:

[....]
Myboard.Имя = моя замечательная доска совместимого с Arduino
Myboard.строить.core = arduino: arduino
[....]
Это позволяет вам обновлять ядро ​​ST, не уничтожая свой собственный. Вы получаете лучшее из обоих миров. Вы можете редактировать свою собственную версию в свои сердца, но вы получаете последние исправления и обновления, которые делает ST Core.

fpistm
Вт 20 ноября 2018 г., 5:50 утра
Спасибо, Рик, на самом деле это то, что я бы сказал с вариантом 3, это то, что делает tomvdb😉

Андисимоны
Вт 20 ноября 2018 г., 7:22 утра
Да, спасибо, Рик. Я этого не знал, и это действительно выглядит как лучший способ добавления собственных определений без определения совершенно нового ядра. Как говорит FPISTM, он отличается и лучше, чем мой вариант 3. Возможно, инструкции по GitHub могут быть обновлены, чтобы отразить это?

Я хотел бы поднять еще несколько вопросов о собственных определениях досок, особенно в том, как определяются и используются номера PIN -код. Это подходящее место для этого? Или есть определенная часть этого форума для выпусков arduino_core_stm32? На самом деле мы могли бы сделать с потоком для определений платы, потоком для ядра Arduino и другим для инструментов!

fpistm
Вт 20 ноября 2018 г. 9:52 утра
Я думаю, вы должны открыть новую ветку здесь:
http: // stm32duino.com/viewforum.PHP?F = 48

Рик Кимбалл
Вт 20 ноября 2018 г., 20:35
[fpistm - Вт 20 ноября 2018 г. 5:50 утра] - Спасибо, Рик, на самом деле это то, что я бы сказал с вариантом 3, это то, что делает tomvdb😉
Извините, fpistm, я увидел слова «Создайте свой собственный пакет», и я подумал, что это говорит о создании нового файла JSON, и я действительно не нажимал на ссылку.

Да, tobmvdb делает то же самое, что я предложил. Он гораздо более тщательный и делает его полным выводом. То, что я предлагал, более ограничено. Он предназначен для того, кто просто хочет использовать ваше ядро, но примените свои собственные изменения в личную настройку для их личной настройки. Хотелось бы, чтобы я знал об этом подходе пару лет назад, я бы создал собственное ядро ​​платы Bluepill для кода Роджера. Это спасло бы мне много хлопот.

Андисимоны
Ср 21 ноября 2018 г., 23:18
Я пытаюсь сделать свое собственное определение платы, которое относится к arduino_core_stm32, используя инструкции в https: // github.com/arduino/arduino/wiki ... зацикция Как предложил Рик. К сожалению, инструкции не говорят, где найти vendor_id и core_id для оператора Myboard.строить.core = vendor_id: core_id. Кто -нибудь знает?

Я предполагаю, что core_id - это "arduino", потому что это то, что он есть в оригинале; Но что такое vendor_id?

Я попробовал несколько предположений на основе имен каталогов или имени, данного в платформа.текст Но никто не работает. Когда я выбираю доску из Arduino IDE (после перезапуска его), я получаю сообщение об ошибке типа «Текущая выбранная плата нуждается в основном« STM32: Arduino », который не установлен» Могу я сослаться из доски.текст определение в Arduino/Adware к ядру, которое установлено в виде пакета (/Пользователи/<мое имя>/Библиотека/arduino15/пакеты)? Структура каталогов в пакетах - это другая форма, которая в Arduino/Adware, но инструкции GitHub, кажется, предполагают, что все находится под Arduino/Admarkware?

Рик Кимбалл
Чт 22 ноября 2018 г., 2:33
Vendor_id в этом случае - «STM32», Core - «Arduino». Для моего индивидуального ядра я использовал «kimballsoftware» в $ home/arduino/harpware/kimballsoft/stm32. В этом каталоге я положил доски.TXT, платформа.TXT и Variant Directory. Доски.TXT Ссылки STM32: В нескольких записях.

На Linux с использованием файла STM32Duino JSON и элемента меню менеджера платы для STM32 он устанавливает пакет в $ home/.Arduino15/Packages/STM32

В Windows я действительно не знаю, но я думал, что это где -то в C: \ users \ {user} \ appdata \ local \ arduino15 \

Я не уверен, как что -то использовать под вашим (/пользователи/<мое имя>/Библиотека/arduino15/packages) будет работать? Почему бы просто не использовать файл JSON и позволить менеджеру платы в обычном моде установить?

Вот моя платформа.текст: # CUSTOM STM32 ARM Core and platform. # ------------------------------ # # For more info: # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification name=STM32 Boards (kimballsoftware) version=1.0.0

Андисимоны
Чт 22 ноября 2018 г., 21:07
Рик,
Это было действительно мое первое предположение, и, насколько я могу сказать, я делаю точно так же, как и вы. Это на Mac OSX. Мой путь ~/arduino/hardware/a3_core/stm32core/щиты.текст. Та же папка содержит две папки варианта и платформу.txt file.
Сообщение об ошибке Текущая выбранная плата нуждается в основном «STM32: Arduino», который не установлен. Ядро ясно установлено, потому что я могу выбрать из него платы. Он был установлен менеджером Boards, так же находится в месте ~/библиотека/arduino15/packages/stm32/hardware/stm32/1.4.0.
Я был бы рад поделиться кодом здесь, но еще не выяснил, как вы его вставляете!
Ключевая линия Genf1.строить.Core = STM32: Arduino

Рик Кимбалл
Пт 23 ноября 2018 г., 5:11 утра
[Андисимоны - Чт 22 ноября 2018 г., 21:07] - Путь ~/arduino/hardware/a3_core/stm32core/щиты.текст.
От "Arduino IDE 1.5 Сторонняя спецификация оборудования »:

a3_core - Первый уровень - поставщик/сопровождающий
STM32Core - Второй уровень - поддерживаемая архитектура

У пакета STM32: Arduino есть архитектура STM32. Поскольку вы назвали свою архитектуру «STM32Core», я думаю, что строитель Arduino будет искать пакеты для каталога поставщиков STM32 для каталога под названием «STM32Core» и не найдет его. Попробуйте переименовать свой справочник Arch от «STM32Core» до «STM32»

Редактировать: Я фактически пытался изменить свой рабочий пример с ~/arduino/hardware/kimballsoftware/stm32 на ~/arduino/hardware/kimballsoftware/stm32core. Это сломало сборку. Я получаю то же сообщение, что и вы, когда пытаюсь скомпилировать:

"Текущая выбранная плата нуждается в основном 'STM32: Arduino', который не установлен."

Андисимоны
Пт 23 ноября 2018 г., 19:59
Рик,

Я нахожу это довольно запутанным. Я не читал инструкцию Второй уровень - поддерживаемая архитектура что это каким -либо образом должно было соответствовать каталогу, на который я хочу ссылаться в ядре. Действительно, я выбрал другое имя, потому что я думал, что иначе это может сбить с толку IDE и привести к тому, что оно будет выглядеть не в том месте. Тем не менее, я внес изменения и переписывал его, и это сработало!

Тем не менее, у меня было новое сообщение об ошибке /Пользователи/<Usrename>/Library/arduino15/packages/stm32/hardware/stm32/1.4.0/system/drivers/stm32f1xx_hal_driver/inc/stm32f1xx_hal.H: 46: 32: Фактальная ошибка: STM32F1XX_HAL_CONF.H: нет такого файла или каталога
#include "stm32f1xx_hal_conf.час"
Файл находится в папке варианта, поэтому я пришел к выводу, что что -то не так со ссылкой из ядра на новый внешний вариант.

В духе экспериментов я затем использовал имя папки I.эн. изменил его с STM32 на STM32, так что он точно соответствует этому в ядре. Это также исправило эти проблемы!

Я прибыл туда по экспериментам, но я не полностью понимаю, как работает система. Инструкции должны быть намного яснее.

Спасибо за помощь !

Энди

Рик Кимбалл
Пт 23 ноября 2018 г. 20:14
[Андисимоны - Пт 23 ноября 2018 г., 19:59] - В духе экспериментов я затем использовал имя папки I.эн. изменил его с STM32 на STM32, так что он точно соответствует этому в ядре. Это также исправило эти проблемы!
Я могу представить, что он работает для кого-то, кто запускает Windows, используя чувствительные к случаю файловых систем. Вам повезло и получили ошибку сейчас, вместо того, чтобы пытаться выяснить, почему кто -то еще не работал. Я думаю, что вы идеальный человек, чтобы написать, что, по вашему мнению, инструкция :) Я тоже приехал сюда по пробным и ошибкам. Трудно представить все разные сценарии, которые заставит вас виноваться.

Я постараюсь поставить свой пример индивидуального плане. Тем не менее, я не собираюсь убедиться, что он работает на Windows или OSX.

Редактировать:
Образец сердечника Bluepill здесь: https: // github.com/rickkimball/vendor
и пример AVR https: // github.com/rickkimball/mightohmex это использует что -то другое, кроме ядра Arduino.

Андисимоны
Сб 24 ноября 2018 г. 14:14
Может ли кто -нибудь отредактировать текст GitHub? Или мы должны поставить инструкции на этом форуме?

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

Энди

Рик Кимбалл
Сб 24 ноября 2018 г. 16:05
[Андисимоны - Сб 24 ноября 2018 г., 14:14] - Может ли кто -нибудь отредактировать текст GitHub? Или мы должны поставить инструкции на этом форуме?
Вероятно, лучшее место для этой информации было бы в вики STM32Duino Wiki.
[Андисимоны - Сб 24 ноября 2018 г., 14:14] - .. Я действительно только размышляю о том, как это работает точно ..
Добро пожаловать в наш клуб, это то, что мы все делаем :)

Рик Кимбалл
Сб 24 ноября 2018 г., 17:45
@Andysymons дайте мне знать, если Readme.доктор медицинских наук https: // github.com/rickkimball/vendor Здесь достаточно.

Mrburnette
Солнце 25 ноября 2018 г. 12:34
Рик,

Хороший.

Луча

Андисимоны
Солнце 25 ноября 2018 г. 20:17
Рик, да, это отличный пример как Чтобы сделать это, хотя я остаюсь любопытным в отношении почему это работает - я.эн. Как именно ссылки в спину и вперед сделаны. Эта информация будет полезна для отладки, когда она не работает!

Хотя платформа.TXT не является обязательным, я бы порекомендовал использовать его; хотя бы назвать подменю, которая содержит новые доски; в противном случае их может быть трудно найти в IDE.

Я, конечно, считаю, что это мощная функция, которая нуждается в высоком профиле на этом сайте - возможность добавить пользовательскую доску в существующее ядро; изменение минимального необходимого и, следовательно, не несет ответственности за код, отличный от своего собственного. Спасибо за это!

Ваше здоровье,

Энди

Рик Кимбалл
Солнце 25 ноября 2018 г. 20:53
[Андисимоны - Солнце 25 ноября 2018 г. 20:17] - Рик, да, это отличный пример как Чтобы сделать это, хотя я остаюсь любопытным в отношении почему это работает - я.эн. Как именно ссылки в спину и вперед сделаны. Эта информация будет полезна для отладки, когда она не работает!
Вы прочитали эту документацию? https: // github.com/arduino/arduino/wiki ... зацикция

Что там нечеткий?

Андисимоны
Солнце 25 ноября 2018 г. 22:14
Да, вот с чего я начал, после того, как вы от вас! Что не объяснено - нечетко - в этом документе весь разговор, который мы только что провели, о том, откуда имена vendor_id и core_id.

1. Под названием Аппаратные папки структура, Структура папок описывается как «Аппаратное обеспечение/<продавец>/<архитектура>". Это правильно только для ядер, добавленных вручную в папку Arduino/Awardware, а не для тех, которые установлены Poards Manager.
2. Структура для ядер, установленных менеджером плат, отличается и вообще не описана. Под инспекцией это кажется что -то вроде /пользователей /<имя пользователя>/Библиотека/arduino15/packages/<архитектура>/аппаратное обеспечение/<что -то еще>/<версия>/
3. Под названием Ссылка на другое ядро, вариант или инструмент Является ли инструкция «Использовать синтаксис vendor_id: core_id». Нет никакого представления о том, что подразумевается под core_id там или (насколько я могу судить) в остальной части текста выше. Если vendor_id означает то же самое <продавец> упомянуто выше, тогда это явно неправильно.

По моему анализу (если я понял это правильно), нам нужны следующие изменения, чтобы удалить пух:
1. Под названием Аппаратные папки структура: Структура папок для определений новых плат установлен вручную Arduino/Adware/<продавец>/<архитектура>/ядра/<core_id>
2. (Тот же раздел) Структура для ядер, установленных Boards Manager IS /пользователи /<имя пользователя>/Библиотека/arduino15/packages/<архитектура>/аппаратное обеспечение/<что -то еще>/<версия>/ядра/<core_id> (на самом деле core_id всегда "arduino")
3. Под названием Ссылка на другое ядро, вариант или инструмент: Используйте синтаксис <архитектура>:<core_id> (ничего общего с поставщиком)
4. (тот же раздел). Новые варианты должны быть помещены в папку с именем arduino/hardware/<Ваше имя>/<архитектура>/... где <Ваше имя> это все, что вам нравится, но <архитектура> Должен точно соответствовать, включая чехол, название архитектуры, используемой в ядре, на которое вы ссылаетесь (см. 2).

Рик Кимбалл
Солнце 25 ноября 2018 11:07
Ты можешь пойти и освежить мой readme.MD, чтобы увидеть, обращаются ли мои модификации ваши вопросы в сочетании с ответами ниже. Тем не менее, я вижу, что большинство ваших вопросов сосредоточено на сторонней спецификации оборудования. Позвольте мне посмотреть, может ли они ответить на них.
[Андисимоны - Солнце 25 ноября 2018 г. 22:14] - Да, вот с чего я начал, после того, как вы от вас! Что не объяснено - нечетко - в этом документе весь разговор, который мы только что провели, о том, откуда имена vendor_id и core_id.

1. Под названием Аппаратные папки структура, Структура папок описывается как «Аппаратное обеспечение/<продавец>/<архитектура>". Это правильно только для ядер, добавленных вручную в папку Arduino/Awardware, а не для тех, которые установлены Poards Manager.
Правда, менеджер совета директоров добавил номера версий, чтобы вы могли установить определенные версии.
[Андисимоны - Солнце 25 ноября 2018 г. 22:14] - 2. Структура для ядер, установленных менеджером плат, отличается и вообще не описана. Под инспекцией это кажется что -то вроде /пользователей /<имя пользователя>/Библиотека/arduino15/packages/<архитектура>/аппаратное обеспечение/<что -то еще>/<версия>/
Правда, и не задокументировал, что я нашел.

Из установки пакета менеджера доски выглядит так:
/Пользователи/<имя пользователя>/.arduino15/packages/stm32/ardware/stm32/1.4.0/Доски.текст
STM32 == Продавец
STM32 == Архитектура {сборка.арка}
1.4.0 == номер версии
{строить.платформа} в этом случае становится /пользователя /<имя пользователя>/.arduino15/packages/stm32/ardware/stm32/1.4.0

Для $ home/arduino/harpware это $ $ home/arduino/harpware/stm32/stm32/щиты.текст
{строить.Платформа} В этом случае становится $ home/arduino/armware/stm32/stm32

А <что -то еще> На вашем пути выше объясняется здесь, снова используя имя «STM32», так как имя поставщика вызывает много путаницы: Ридме.MD написал:Название каталога «STM32» идентифицирует архитектуру этого ядра. Имя архитектуры является произвольным значением, однако, строитель Arduino использует для установки Global {Build.arch} переменная. Когда вы ссылаетесь на ядра других поставщиков, как мы делаем здесь {сборка.Arch} определяет, какая архитектура используется в прямом ядре. Библиотечные файлы также используют {сборка.Arch} настройка, чтобы увидеть, совместимы ли они.

Андисимоны
Пн 26 ноября 2018 г., 6:50 утра
Ну, я думаю, я высказал смысл, что это не ясно!!

Я не против, какой предмет называется «поставщиком», а какой называется «архитектура», но он должен быть последовательным. Я продолжаю это повествование о предположении, что STM32 является «поставщиком» и STM32 «Архитектура», как вы описали в отношении пути библиотеки (который ранее не был доступен).

Вы правы, что ST пускает проблему, используя STM32 в качестве поставщика; "St" было бы лучше. Чтобы проверить различие, я попытался изменить имя вручную на пути библиотеки и своих досок.txt file. Он не сработал («ядро не установлено»), но это может быть потому, что установка помещает имя поставщика в другом месте?? Не знаю. Итак, я вернул его в STM32.

Затем я попытался изменить STM32 в моем домашнем пути $ на «STM32», чтобы у меня было $ home/hardware/<мое имя>/<архитектура> Как описано в верхней части ReadMe (<мое имя> Я предположил, что, эквивалентно поставщику). доски.TXT использует STM32 в качестве поставщика. Еще раз это позволило выбирать плату в IDE (оно обнаружило ядро), но компиляция не удалась при включении варианта. Поэтому я думаю, что подтвердил, что домашний путь $ должен быть $ home/harpware/<мое имя>/<продавец>, где <продавец> соответствует названию продавца в библиотеке, а не $ Home/Hardware/<продавец>/<архитектура> Как описано в верхней части ReadMe!

Конечно, вы правы, что $ Home не нужно называться Arduino, это просто дефолт.

С уважением, Энди

fpistm
Пн 26 ноября 2018 г., 7:55 утра
Во всех тех дискуссиях вы забыли, что Arduino использует файл JSON, чтобы узнать, что установлено или нет:

Продавец:
https: // github.com/stm32duino/boardmana ... бывший.JSON#L4
Арка:
https: // github.com/stm32duino/boardmana ... х.JSON#L14

Так что даже если вы измените доски.TXT и путь Arduino всегда использует вход JSON.
Я знаю, что поставщик "STM32" сбивает с толку, это уже обсуждалось, это унаследованная проблема с момента первой доставки из Wi6labs.
Поскольку ядро ​​является открытым исходным кодом, для сообщества и доступно в организации STM32Duino GitHub, STM или ST не является правильным выбором (кроме того, он не поддерживает только только ST ST). Я думаю, что "STM32Duino" должен быть лучше.

Рик Кимбалл
Пн 26 ноября 2018 г., 14:43
[fpistm - Пн 26 ноября 2018 г., 7:55] - Во всех тех дискуссиях вы забыли, что Arduino использует файл JSON, чтобы узнать, что установлено или нет:
Спасибо @fpistm. Вы правы, эти ссылки на файлы JSON - намного лучшее место для получения имени и архитектуры поставщика, чем то, что я предложил.

Я не уверен, что «STM32Duino» будет лучшим именем продавца. Когда я думаю о STM32Duino, я думаю о ядре Leaflabs, этот сайт начал поддерживать. Может, это только потому, что я был здесь с самого начала. У вас есть какие -либо планы по изменению имени поставщика в пакете JSON? У меня есть одно предложение о ссылке «справка» в файле JSON. Может быть, это должно быть указано на подраздел «ядро STM» на форуме вместо того, чтобы указывать в целом наверху.

"помощь", "www.STM32duino.com/viewforum.PHP?F = 48"

Это изменение может вызвать меньшую путаницу в правильном месте, чтобы задать вопросы и получить ответы.

Планирует ли STM взять на себя STM32duino.com домен в какой -то момент?

fpistm
Пн 26 ноября 2018 г. 15:03
Я не думаю, что Сент возьмет на себя доменное имя (это мое личное мнение, а не увлекся ул :рулон: )
О обновлении JSON, это подняло бы проблему, когда пользователь хотел бы обновить, потому что я думаю, что меню появится дважды (одно для STM32/ (старое имя) и одно для нового имени поставщика)

О имени STM32DUINO, я вас понимаю. В любом случае для многих людей это также все, что связано с STM32 в Arduino.
Позже JSON может быть расширен, чтобы предложить другое ядро ​​для того же имени:
Arch: STM32 (arduino_core_stm32)
Arch: STM32F1 (arduino_stm32/stm32f1 от Роджера)
Arch: STM32F4 (arduino_stm32/stm32f4 от Роджера или Стива...)
....

Андисимоны
Пн 26 ноября 2018 г. 15:37
fpistm,

Спасибо за информацию JSON. Это много разъясняет.

Я согласен с Риком, название STM32Duino имеет послужной список брендинга с этим сайтом и ассоциация с оригинальным ядром Roger Clark (arduino_stm32). Роджер также использует имя на GitHub -- https: // github.com/stm32duino (Хотя это ссылается на ваше ядро ​​как arduino_core_stm32). Поскольку вы не предлагаете захватить этот форум, это было бы сбивает с толку.

Я бы поддерживал использование ST или STM в качестве имени поставщика, потому что он правильно представляет производитель ядра, И, конечно, чипсы на досках, если не сами доски. Это повысит профиль ST в качестве компании и придаст легитимности до основания как «официальное» ST Core. Это добавляет много доверия! Вам не нужно добавлять «~ duino», потому что у вас уже есть «Arduino» как архитектура.

Вы можете лучше всего судить, если обслуживание легче всего управлять путем подразделения диапазона продуктов (STM32F1, STM32F2 и т. Д. Как вы предлагаете). Я был бы рад иметь все в одном меню, но это не имеет большого значения, пока у субмонса есть четкие имена (мне комфортно с Роджером рядом с вашим). Поскольку теперь есть способ добавить пользовательские платы в ваше стандартное ядро, мы всегда можем сделать свои собственные дополнения и публиковать их отдельно через GitHub как очень маленькие пакеты.

Ваше здоровье. Энди.

fpistm
Вт 27 ноября 2018 г. 8:12
Как я уже сказал. У ST есть ST Community, поэтому нет причин администрировать другой сайт.
ST присоединяйтесь к сообществу STM32DUIN.
Arduino_core_stm32 не является ST Core, он поддерживается ST, который не является одним и тем же.
Роджер дайте ST (ME) доступ к организации STM32Duino Github для предоставления основной реализации и библиотек, поскольку она не использует ее.
Я знаю, что я основной сопровождающий, в любом случае, как говорится регулярно, любой вклад приветствуется, и надеюсь получить больше участников, а почему не сопровождающий.

Вы не понимаете мою мысль о JSON. Это не подразделение. Я говорю о выпуске другого ядра в том же файле JSON или разделенном файле JSON с тем же именем (поставщик или сопровождающий). Это только моя мысль легко установить один или несколько «STM32Duino».
Как я уже говорил, вы забыли принять во внимание, как Arduino IDE обрабатывает основную установку и материал менеджера, и мы не несем ответственности, как это делает это.

Андисимоны
Вт 27 ноября 2018 г. 9:37 утра
Да, я признаюсь, я не очень компетентен в методе установки Arduino, поэтому я заткнусь об этом ;) -- кроме того, чтобы сказать, что это звучит так, как будто у вас есть хорошая идея, чтобы дать новичкам и зарекомендовавшимся способ установить «лучшие ядер STM32» за один раз.

Я не чувствую очень сильно об имени тоже. Моя главная проблема заключалась в том, что наличие того же названия как для поставщика, так и для архитектуры (кроме капитализации) довольно запутанно. «STM32Duino» не был бы настолько плохо, если бы Роджер в порядке с этим (так что GitHub, этот форум и ядро ​​последовательны), и если вы включите другие пакеты, которые вы упомянули в любом случае.

Спасибо за конструктивное размышление об этом и удачи!

Энди

HALMX ROADMAP.