Представление нового Arduino Core для STM32

fpistm
Чт 18 мая 2017 г. 6:34
Всем привет,

Я хотел бы представить новое ядро ​​Arduino для STM32:
https: // github.com/stm32duino/arduino_core_stm32

Первая версия пакета доступна через менеджер Arduino IDE Boards Manager, добавив следующую ссылку на "URL -менеджеры дополнительных плат"Поле"Предпочтения"Диалог:
https: // github.com/stm32duino/boardmana ... индекс.json

Теперь он поддерживает все семьи STM32 на основе HAL (вся версия, добавленная в репо), некоторые доски уже доступны:
  • F0: Nucleo F091RC, Nucleo F030R8
    F1: Nucleo F103RB
    F2: Nucleo F207ZG
    F3: Nucleo F303RE
    F4: Nucleo F429ZI, STM32F407G-DISC1
    F7: STM32F746G-Discovery
    L0: Nucleo L053R8, Nucleo L432KC
    L4: Nucleo L476RG
BP и MM скоро придут.

Больше нет статических библиотек для HAL. Путем изменения STM32YYYXX_HAL_CONF.H в варианте можно включить или отключить функции HAL.
CMSIS больше не включает в источник, это зависимость от пакета и используйте один пакет Arduino: CMSIS 4.5.0.
ARM GCC Toolchain был обновлен до версии 6-2017-Q1-UPDATE для поддержки семейства F7 (Cortex-M7), но для других семей 4.8.Версия 3-2014Q1 по-прежнему действительна.
Все булавки доступны на основе функции Mbed Pinmap.
Периферипины.C автоматически генерируется из файла STM32Cube MCU XML. Это избегает проблемы в определении булавок.
Скрипт Python для его создания, доступен благодаря пакету arduino_tools или github Repo:
https: // github.com/stm32duino/arduino_tools
Возможности выводов настраиваются через этот файл, комментируя или не точковое описание.
USB -функция доступна и отключена по умолчанию. Чтобы включить это, используйте меню «Инструменты->USB -интерфейс "


Будут добавлены дополнительные функции. Не стесняйтесь вносить свой вклад или представлять проблемы.
Долл. США с FATFS был добавлен и протестирован на F7.
USB Serial продолжается (CDC).
Поддержка Ethernet на основе LWIP будет добавлено. добавлен:
https: // github.com/stm32duino/stm32thernet
https: // github.com/stm32duino/lwip

Функции АЦП будут расширены.
...

Я буду Обновите вики, чтобы быть встроенными с этим новым ядром и добавив Добавьте страницу о том, как включить новый вариант (периферийные.C Generation, Config,...).
Вики:
https: // github.com/stm32duino/wiki/wiki

Каниджа
Чт 18 мая 2017 г., 11:37
Привет
Если я добавлю '-dusbcon' в .строить.upload_flags в досках.текст',
Я получаю эту ошибку: AppData\Local\Arduino15\packages\STM32\hardware\stm32f1\2017.1.20\cores\arduino\main.cpp:54:2: error: 'USBDevice' was not declared in this scope USBDevice.attach(); ^ exit status 1 Error compiling for board BluePill F103C8.

Каниджа
Чт 18 мая 2017 г. 12:01
ХОРОШО,
Я добавил «-Usbcon» вместо «-dusbcon» и теперь он компилируется.

И если я добавлю сериал.Begin () 'To The Sketch, я получаю usb виртуальное ком.

Chismicro
Чт 18 мая 2017 г. 13:56
@ fpistm
очень хороший : D Спасибо.

Я пробую открытие STM32F7, потому что у меня не было компилятора раньше.

Вот мой первый тест:

1. Загрузите пакет менеджером совета директоров, как описано выше
==> Сообщение о статусе:
Индексная ошибка: не удалось найти ссылочное имя инструмента = openocd version = 0.10.0-arduino1-static packager = arduino-org
Ошибка индекса: не удалось найти ссылочное имя инструмента = nrf5x-cl-tools версия = 9.3.1 Packager = arduino-org
Индексная ошибка: не удалось найти ссылочное имя инструмента = openocd version = 0.10.0-arduino1-static packager = arduino-org
Ошибка индекса: не удалось найти ссылочное имя инструмента = nrf5x-cl-tools версия = 9.3.1 Packager = arduino-org
Индексная ошибка: не удалось найти ссылочное имя инструмента = openocd version = 0.10.0-arduino1-static packager = arduino-org
Ошибка индекса: не удалось найти ссылочное имя инструмента = nrf5x-cl-tools версия = 9.3.1 Packager = arduino-org


2. Скомпилируем пример Blink и загрузите Mass Storage:
==> это мигает, очень хорошо

3. Скомпилируйте и загрузите «Пример логотипа Arduino TFT Bitmap»
==> Экран остается пустым

fpistm
Чт 18 мая 2017 г. 14:48
@caniggia
Вы не работаете с упоминанием репо в этой теме. Вы работаете с STM32F1.

@ChriSmicro
1. Для статуса загрузки это не ссылка на пакет STM32, поскольку он не упоминает OpenOcd, а не NRF5X.
Наверное, ссылка на другой файл JSON, который вы использовали.

2. ;)

3. Верно, хороший выстрел :рулон:
Мне нужно обновить SD LIB, чтобы использовать по умолчанию, если используемый слот для карты находится на щите (SPI) или использовать другой, если мы хотим использовать встроенный слот для карты.
К вашему сведению, в настоящее время ЖК -дисплей не управляется. Я добавлю поддержку позже.

Holla2040
Сб 20 мая 2017 г., 21:44
на Ubuntu 16.04 x64, arduino 1.8.1, я получаю эту ошибку при составлении мигания,

вилка/exec/home/holla/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-g ++: нет такого файла или каталога
Компиляция ошибок для платы Bluepill F103C8

Похоже, менеджер совета директоров не загружает компилятор.

-----

Обновление: я удалил свой ~/.Справочник Arduino15 и повторно установил инструменты с использованием Manager Manager и
https: // github.com/stm32duino/boardmana ... индекс.json
Затем мигает, скомпилированным из Bluepill F103CB, Yay!

Рик Кимбалл
Пт, 09 июня 2017 г., 21:35
Так что ваша цель установить ядро ​​F1 в https: // github.com/stm32duino/arduino_core_stm32f1 ?

fpistm
Пт, 09 июня 2017 г., 21:53
Да, поскольку новый репо принимает на себя несколько замечаний, сделанных в этой реализации (размер кода, ограниченное определение контактов, статическая библиотека,...).
Все текущие открытые проблемы на F1 будут сообщены и исправлены.
Есть ли проблемы с этим ?

Рик Кимбалл
Пт, 09 июня 2017 г. 22:09
Эта архитектура кажется намного лучше, чем предыдущая установка. Я за то, чтобы двигаться вперед. Единственная причина, по которой я перестал смотреть на другую, была из -за проблемы с картированием булавки. Об этом все позаботятся в этом новом порту.

fpistm
Сб 10 июня 2017 г. 5:22 утра
Да, это одна из огромных переделок. Теперь все булавки доступны, и я надеюсь, что легко настраиваемая благодарность.C (по комментарию/неудобству).
К вашему сведению, новое управление PINS полностью вдохновлено MBBE.

Chismicro
SAT 10 июня 2017 г. 8:11
Привет вместе,

Я только что попробовал репо с SM32F746 Discovery.
Примеры SD-карты работают, но примеры TFT не.

В STM32Generic Repo Примеры TFT работают в том числе прикосновение.

fpistm
Сб 10 июня 2017 г. 11:01
Привет, Крис,

Это известная проблема.
https: // github.com/stm32duino/arduino_c ... 2/проблемы/2
Я должен изменить имя модифицированной библиотеки SD (SD.H) Чтобы использовать по умолчанию один через SPI (когда вы используете SD от TFT Shield).
И внесите некоторое исправление в модифицированную SD LIB, чтобы иметь возможность использовать встроенный SD с TFT Shield (TFT LIB проходит для файла Opende по копии, и в этой реализации копия сбросит FP, поэтому он всегда читается с самого начала)

Примечание: в настоящее время ЖК -дисплей из F746 не поддерживается

Рик Кимбалл
Сб 10 июня 2017 г. 15:06
Fpistm написал: Все булавки доступны на основе функции Mbed Pinmap.
Периферипины.C автоматически генерируется из файла STM32Cube MCU XML. Это избегает проблемы в определении булавок.
Скрипт Python для его создания, доступен здесь:
https: // github.com/fpistm/stm32_tools
Возможности выводов настраиваются через этот файл, комментируя или не точковое описание.

Даниэфф
Солнце 11 июня 2017 г., 3:59
Fpistm написал:Привет, Крис,

Это известная проблема.
https: // github.com/stm32duino/arduino_c ... 2/проблемы/2
Я должен изменить имя модифицированной библиотеки SD (SD.H) Чтобы использовать по умолчанию один через SPI (когда вы используете SD от TFT Shield).
И внесите некоторое исправление в модифицированную SD LIB, чтобы иметь возможность использовать встроенный SD с TFT Shield (TFT LIB проходит для файла Opende по копии, и в этой реализации копия сбросит FP, поэтому он всегда читается с самого начала)

Примечание: в настоящее время ЖК -дисплей из F746 не поддерживается

fpistm
Солнце 11 июня 2017 г. 9:35 утра
Рик Кимбалл написал: Когда вы говорите, что он использует функцию Mbed Pinmap, вы имеете в виду ту же структуру?

fpistm
Солнце 11 июня 2017 г. 15:07
Даниэфф написал: Но все же, как получить доступ к сенсорному чипу на I2C3 (PH8/PH7)? Это прокомментировано: https: // github.com/stm32duino/arduino_c ... инс.C#L112
(Немного не связанный, как получить доступ к не первой периферийности в целом, SPI2, SPI3, I2C2, I2C3, UART2, ...)

rmbult01
Сб 17 июня 2017 г. 12:23
Fpistm написал: Периферипины.C автоматически генерируется из файла STM32Cube MCU XML. Это избегает проблемы в определении булавок.

fpistm
SAT 17 июня 2017 г. 8:33 вечера
Привет, кажется, это следующий файл: STM32F446R (C-E) TX.XML

Команда вызова должна быть:
genpinmap_arduino.py ucleo_f446re "stm32f446r (c-e) tx.XML "

XML -файл должен быть в <STM32Cubemx Установка Dir>\ db \ mcu

Сценарий рассчитывает найти Cubemx в установке по умолчанию Dir: if sys.platform.startswith('win32'): #print ("Windows env") cubemxdir = 'C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeMX\db\mcu' cubemxdirIP = cubemxdir+"\\IP\\" input_file_name = cubemxdir+"\\" + sys.argv[2] out_path = cur_dir+'\\Arduino\\_'+sys.argv[1] output_filename = out_path+"\\"+out_filename else: #print ("Linux env") if sys.platform.startswith('linux'): cubemxdir = os.getenv("HOME")+'/STM32CubeMX/db/mcu' cubemxdirIP = cubemxdir+"/IP/" input_file_name = cubemxdir+'/'+ sys.argv[2] out_path = cur_dir+'/Arduino/'+sys.argv[1] output_filename = out_path+'/'+out_filename

rmbult01
Солнце 18 июня 2017 г. 10:03
Я нашел это, спасибо.

Поскольку утилита не поддерживала Mac OSX, я добавил поддержку и создал запрос на тягу.

С уважением,
Ограбление

fpistm
Вт 20 июня 2017 г. 6:38 утра
Привет @rmbult01,

Спасибо, я добавлю это.

Ykciv
Чт 10 мая 2018 г., 6:00 утра
У меня есть сомнения...

Что такое использование Arduino_core_stm32-Master, так как вы уже добавили платы STM32 от Manager???

Я видел, что у arduino_core_stm32 есть несколько библиотек и ядер для STM32. Но как добавить его в мою Arduino Ide?

fpistm
Чт 10 мая 2018 г., 6:27
Некоторые пользователи устанавливают ядро ​​благодаря Manage Manager и обновляют его, когда я выпускаю новую версию, но некоторые передовые пользователи используют Git Repo, чтобы быть в мастере и получить последнее обновление, не ожидая официального релиза.
Библиотеки доступны через менеджер библиотеки Arduino IDE. Поиск "STM32duino"

Ykciv
Чт 10 мая 2018 г., 6:43
Я сейчас использую доску STM32F746NG, но я не могу найти официальную библиотеку для TFT или Touch. Официальное ядро ​​поддерживает STM32F7?? Если да, то как я могу найти и использовать это??

заранее спасибо.

Ykciv
Чт 10 мая 2018 г., 7:22 утра
Я использовал ядро ​​STM322ERIER. Он обладает поддержкой TFT, LCD, GUI, Touch, но он не имеет поддержки EEPROM. Но в официальном основном EEPROM работает нормально с STM32F7. Спасибо.

Если у него есть TFT и поддержка TFT, это будет очень полезно.

Спасибо.

fpistm
Чт 10 мая 2018 г. 8:38 утра
Touch и LTDC из STM32GENERIERIERIERIERIERIERIERIERIERIERIERIERIERIERIERC можно использовать с STM Core, я протестировал этот конец 2017 года.
Я предоставлю обновленные примеры в библиотеке STM32 Examples.

Ykciv
Чт 10 мая 2018 г., 9:03
Большое спасибо. Пожалуйста, поделитесь примерами.

Ykciv
Пт 11 мая 2018 г., 4:39
Извините, что бросился, обновили библиотеку с помощью графики и прикосновения??

fpistm
Пт 11 мая 2018 г., 4:51
Нет, я посмотрю, смогу ли я сделать это сегодня, но мне много дел, и ты не одинокий.
Так что будьте терпеливы.

Ykciv
Пт 11 мая 2018 г. 5:10 утра
Я думаю, что прикосновение и графический интерфейс - независимые библиотеки. Его компиляция без проблем в официальном Arduino Core, если мы прокомментируем все строки, которые используют TFT. Я надеюсь, что это сработает, если вы предоставите Spartport LTDC в официальном Arduino Core.

Я попытался добавить LTDC в качестве локальной библиотеки от STM32Generic, но ей нужно много файлов резервного копирования, и он бросает больше ошибок линкеров.

Ykciv
Пт 11 мая 2018 г., 5:11 утра
[fpistm - Пт 11 мая 2018 г. 4:51] - Нет, я посмотрю, смогу ли я сделать это сегодня, но мне много дел, и ты не одинокий.
Так что будьте терпеливы.
Хорошо. Спасибо.

Робка
Сб 02 марта 2019 г. 12:44
Я только что установил последний Arduino 1.8.8 на компьютере и решил попробовать ядра ST для моих существующих проектов STM32, и у меня есть два вопроса:
  • Доступна ли загрузка DFU? В платформе.TXT Я вижу только Mass Storage, ST Link, Serial и Black Magic Gred (хорошо, в зависимости от возможностей платы. Но нет DFU. Я знаю, что DFU работает на мою доску, так как я могу загрузить файл HEX с DFUSEDEMO после конвертации .шестнадцатеричный файл .DFU, но будет приятнее, если бы я мог сделать это из IDE
  • Я хотел попробовать нашу библиотеку CMSIS DSP, и я вижу, что она включена в дистрибуцию. Как использовать библиотеку DSP из Arduino IDE? Я не мог найти никакой документации в вики? Я был бы рад помочь написать кое -что, если бы я мог получить отправную точку

fpistm
Сб 02 марта 2019 г. 5:52 утра
Привет, Робка,
DFU должен быть доступен в ближайшее время. Наверное в следующем релизе.
Bennehboy ​​сделал пиар, чтобы добавить поддержку: https: // github.com/stm32duino/arduino_c ... 2/тяга/415
О CMSIS DSP, я никогда не использую его, я думаю, вы должны включить правильный заголовок, вероятно, путь должен быть добавлен на платформе.текст:
https: // github.com/stm32duino/arduino_c ... rm.TXT#L65
compiler.arm.cmsis.c.flags="-I{runtime.tools.CMSIS-5.3.0.path}/CMSIS/Core/Include/" "-I{build.system.path}/Drivers/CMSIS/Device/ST/{build.series}/Include/" "-I{build.system.path}/Drivers/CMSIS/Device/ST/{build.series}/Source/Templates/gcc/" compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.3.0.path}/CMSIS/Lib/GCC/" -l{build.cmsis_lib_gcc}

Робка
Сб 02 марта 2019 г., 23:46
Спасибо за быстрый ответ.

Я терпеливо подожду варианта DFU, я в этом хорошо ;) Не уверен, будет ли он использовать опцию HID для F4 или Native DFU, хотя. В F4 загрузчик HID использует 16 КБ вспышки, даже если он смягчен тем фактом, что у F4 в любом случае много вспышки по сравнению с F103, которую я использовал раньше

Как только у меня будет момент, я попробую поиграть с одной из библиотек DSP, и если я смогу заставить его работать, я предоставлю дополнительную информацию. И да, я заметил, что CMSIS 5.4.0 уже было доступно, поэтому я уже скопировал это при установке... Даже если библиотека DSP не изменилась навсегда, и все еще в 1.5.2