STM32Cubemx :: STM32F030F4

Вассилис
Чт 31 марта 2016 г. 14:09
Несколько дней назад я начал играть с STM32Cubemx и Sheepdoll's HALMX CORE FILES.
Мне понравилась идея создания нового Arduino Core для Micros STM32 с использованием STM32Cubemx, который в настоящее время активен и разработан ST.

-= Stm32cube fw_f0 v1.5.0 =-

Я попытался создать свои собственные файлы конфигурации для поддержки 20-контактных STM32F030F4 Микроконтроллер, который я купил недавно, у него всего 16 КБ Flash и 4 КБ ОЗУ.
До сих пор мне удалось использовать серийный порт на 9600 бит / с и цифровые контакты только для того, чтобы мигать несколько светодиодов.

Следующий шаг - проверить скорость последовательного порта, потому что скорость передачи не меняется с Сериал.начало (19200).
Он придерживается 9600 бит / с (значение, которое я первоначально установил на конфигурацию Cubemx).

Mrburnette
Чт 31 марта 2016 г. 14:16
Мне понравилась идея создания нового Arduino Core для Micros STM32 с использованием STM32Cubemx, который в настоящее время активен и разработан ST. Я 2 : D

Продолжать усилия... Сериал - это большое дело.

Луча

Sheepdoll
Чт 31 марта 2016 г. 18:06
Вассилис написал:Несколько дней назад я начал играть с STM32Cubemx и Sheepdoll's

До сих пор мне удалось использовать серийный порт на 9600 бит / с и цифровые контакты только для того, чтобы мигать несколько светодиодов.

Следующий шаг - проверить скорость последовательного порта, потому что скорость передачи не меняется с Сериал.начало (19200).
Он придерживается 9600 бит / с (значение, которое я первоначально установил на конфигурацию Cubemx).

Rogerclark
Чт 31 марта 2016 г., 21:07
Возможно, я ошибся...

Купить вам уже придется изменить Main (), чтобы добавить вызовы setup () и loop () (а также, возможно, некоторые другие изменения)

Так что это похоже на то, что нужно, так это более радикальная модификация, на Main (), чтобы серийный init не выполнялся в Main (), а в серийном.начинать().


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

Я кратко рассмотрел, как сделать смещение настраиваемой во время компиляции, но мне пришлось изменить один из кубических сгенерированных заголовков и добавить #ifdef, к новому препроцессору, который можно добавить в качестве аргумента с компиляцией (как делается в кленовом ядре)

(кстати. Я до сих пор не заставил работать с загрузчиком, но я пытался ходить, прежде чем я смог бежать, так как у меня не было F103c для сначала работы со Stlink)


ИМХО. Я думаю, что использование куба для генерации файлов, поэтому мы можем использовать HAL и т. Д.в

Поэтому нам понадобится контрольный список изменений, которые людям нужно будет выполнить, когда они использовали куб для генерации нового ядра, или нам нужно было бы иметь некоторую умную автоматизированную систему, чтобы исправить файлы, сгенерированные кубом
(Я уверен, что этот вид исправления был сделан другими проектами, но я не уверен, какие инструменты (утилиты) потребуются

Вассилис
Пт 01 апреля 2016 г., 16:16
Вассилис... Я предполагаю, что вы загружаете через STLINK или аппаратный серийный загрузчик, так как векторное смещение, чтобы разрешить использование загрузчика, также является проблемой с использованием файлов из куба, как из того, что я помню, значение смещения установлено в заголовок, глубоко в включении. Да. Я использую Stlink. Смещение вектора является проблемой, которую необходимо решить. Наибольшее проблемы имеют свои решения. Просто мы должны найти самое простое решение для этого!
Поэтому нам понадобится контрольный список изменений, которые людям нужно будет выполнить, когда они использовали куб для генерации нового ядра, или нам нужно было бы иметь некоторую умную автоматизированную систему, чтобы исправить файлы, сгенерированные кубом
Вы правы об этом. Инструкции легко писать, но часто их трудно реализовать. Какой -то шаг будет забыт.
С другой стороны, автоматизированный патч легко выполнить, но очень трудно реализовать (создано).
Я думаю, что эта проблема-нож с двойным.

Стевех
Сб 02 апреля 2016 г., 4:35
Перемещение векторной таблицы... Интересно, поможет ли это в вашей цели.
На STM32F4 с 1MB Flash я написал загрузчик "A/B". В Power Up векторы в низкой памяти запускают код в низкой памяти. Я называю это кодом B. A и B у каждого есть собственный таблица векторов и, таким образом, не зависят друг от друга.

Обычно B быстро решает запустить код A, который находится в разных последовательных секторах Flash. Код A нагревается, пока пользователь не сообщит код A, чтобы отметить флаг в нелетую памяти, что необходимо обновить код A A, а затем перезагружает MCU.

B снова работает и видит флаг обновлений. B затем получает поток данных из порта связи, который .гекс или .корзин для нового кода. B затем транслирует его, подтверждает на лету и пишет новую версию A, где живет. Нет SD Memory - транслируется непосредственно в код B, который записывает флэш -секторы с новым A. Когда B успешно получает все написанные и проверяет контрольную сумму MD5, B очищает обновление ожидающего флага во время Flash и перезагружается сама. Теперь B запускает новый код.

Я использую это, что A и B являются идентичным исходным кодом. Файл линкера для B помещает все по адресу 0 в Flash (которое на самом деле находится на 0x08000000 в адресном пространстве MCU, но переключается на аппаратное обеспечение. Файл линкера для B заставляет векторов быть в 0x400 смещение.
Файл линкера для A такой же, но база установлена ​​на 0x08080000, и то же самое смещение 0x400 для векторов. Векторы для A и B находятся в вспышке, а не RAM (безопаснее).

Когда B запускает, он отключает прерывания и перемещает векторную таблицу на место А. Таким образом, когда используется эта другая векторная таблица.
Это делается с этим кодом extern uint32_t __vector_table; // linker generated. when 'B' runs 'A' must code as this.. SCB->VTOR = (uint32_t)&__vector_table; // may be relocated due to linker file __enable_irq(); // may be off if launched by boot code

Вассилис
Ср 6 апреля 2016 г. 15:03
Несколько минут назад я отправил запрос на привлечение с изменениями, которые я сделал в раздвоенный Halmx_arduino_stm32.

1) Я попытался заставить последовательный порт работать в режиме прерывания. Я видел, что был реализован только TX (не в режиме прерывания). Теперь булавки TX и RX работают с прерывами. Для этого я внес некоторые изменения в файлы:
UartClass.час , UartClass.CPP, вариант.час и вариант.CPP

2) Я также добавил новую доску в доски.текст файл.
3) Добавлено Транслировать.CPP Файл в ключевую папку (он отсутствовал). Теперь сериал.находить(...), кажется, работает нормально!

4) Сериал.Начните ([Baudrate]) работает сейчас.

5) Я создал пакетный файл (Filerenamer.летучая мышь) для переименования расширения файла Startup_stm32f030x6.с в Startup_stm32f030x6.С
[это меняет с к С]



У меня небольшой опыт работы в Hal + Arduino Sam Core. Я не знаю, не изменил ли я вышеуказанные библиотеки неправильно. Я думаю Sheepdoll мог ответить на это.

Я просто пытаюсь помочь.

Стевех
Ср. 06, 2016, 19:24
Я использую ST HAL уже 1+ года, ежедневно. И Cubemx. Профессиональная работа.
Это здорово.

Если я смогу помочь, счастлив сделать это. Мой текущий проект ввода/вывода настроен двумя инструментами выше и включает

Cubemx для картирования PIN -кода и автоматического генерации кода для всех библиотек ввода -вывода и кода их инициации. Мне нужно было писать не водителей.
Часы и разделители процессора
Таймеры - периоическое прерывание и захват 3.5 МГц периода и образцы DMA
Uarts (прерывание и DMA
Интерфейс SmartCard Reader и ISO7816 на моей стороне интерфейса (M4)
SDIO (карта USD) с DMA, 25 Мбит / с
SPI
Рамдиск с использованием MCU Flash
Bootloader/Guldware Updater (применение)

SWD для отладки

Rogerclark
Ср. 06, 2016, 8:39 вечера
Ребята

Я рад принять PR, но если возможно, Can @sheepdoll и кто -нибудь еще посмотрит, потому что у меня тоже нет опыта в HAL ;-)

Стевех
Ср. 06, 2016, 21:31
все правые, тогда.

Sheepdoll
Чт, 07 апреля 2016 г. 2:10
Я не совсем уверен, как управлять запросом на привлечение.

Роджер - «владелец», от которого я раздирался. Затем он был объединен. Когда я захожу в GitHub и нажимаю на запрос на развлечение, я получаю: «Нечего сравнить. Я думаю, что это потому, что моя ветвь и Роджерс идентичны.

Я действительно немного работал над своей филиалом на этой неделе. Я работаю на ночь на этой неделе. Нет чистого доступа, хотя.

ST имеет новую версию Cubemx, которая является V4.14.0 и поставляется с установщиком Mac, который производит STM32Cubemx.приложение, а не папка с исполняемого файла Java -Jar. Он говорит, что ему нужно, по крайней мере, йосемити для установки.

Rogerclark
Чт, 07 апреля 2016 г., 2:41
ХОРОШО

Наверное, проще всего я просто действию этот пиар, а затем другие люди могут проверить это

В идеале нам нужна работающая сборка F103C, так как это оборудование, которое у большинства людей уже есть

Вассилис
Чт, 07 апреля 2016 г., 4:44
Rogerclark написал:ХОРОШО

Наверное, проще всего я просто действию этот пиар, а затем другие люди могут проверить это

В идеале нам нужна работающая сборка F103C, так как это оборудование, которое у большинства людей уже есть

Rogerclark
Чт, 07 апреля 2016 г., 5:29 утра
Привет, Вассилис

Я не думаю, что у меня будет время проверить его на 103 до выходных.

Поскольку большинство файлов были новыми, я не мог бы сказать, изменили ли вы что -нибудь в файлах, сгенерированных кубом.

Я предположил, что изменение было только для UartClass ?

Вассилис
Чт, 07 апреля 2016 г., 11:12
Rogerclark написал:Привет, Вассилис

Я не думаю, что у меня будет время проверить его на 103 до выходных.

Поскольку большинство файлов были новыми, я не мог бы сказать, изменили ли вы что -нибудь в файлах, сгенерированных кубом.

Я предположил, что изменение было только для UartClass ?

Rogerclark
Чт, 07 апреля 2016 г., 11:32
Привет, Вассилис

Я только что натянул репо, и единственное ядро, которое компилируется, - это не F030 :-(

Все остальное получает ошибки
HALMX_Arduino_STM32\HALMX\cores\mapleMX\UARTClass.cpp: In member function 'void UARTClass::init(uint32_t, uint32_t)': \HALMX_Arduino_STM32\HALMX\cores\mapleMX\UARTClass.cpp:78:16: error: 'struct UART_InitTypeDef' has no member named 'OneBitSampling' _pUart->Init.OneBitSampling = UART_ONE_BIT_SAMPLE_ENABLE;

Rogerclark
Чт, 07 апреля 2016 г., 11:53
Ребята,

Просто это все еще собирается на всех платформах, я вкладываю IFDEF, но я думаю, что нам нужно решить структурные проблемы, которые это подняло, как я знаю о других местах в HAL, где существуют различия между процессорами :-(

Стевех
Чт, 07 апреля 2016 г., 8:30 вечера
Просто быстрое чтение этой ветки....
Отвечая на вопрос Роджера ....

HAL ST все C. Нет c++. Все драйверы ввода/вывода находятся в C для обеспечения совместимости. Как я уже упоминал, конечно, код C ++ может вызвать API -интерфейсы HAL с сегодняшними имени файла, чувствительные к компиляторам (.c против .CPP).

Есть драйверы для всех периферийных устройств в семье ST32FXX. Каждый драйвер включает в себя вызовы API для ввода -вывода, ввода -вывода, управляемого прерыванием (ISR в драйвере HAL) и DMA. Вы можете переключаться между 3 во время выполнения- без восстановления. Опрос, прерывание и DMA имеют свой вызов API. Существуют дополнительные обратные вызовы пользователя для полного ввода/вывода, а ошибка ввода-вывода, DMA Complete и т. Д. Они используют атрибут компилятора __weak, чтобы ваша программа переопределяет обратные вызовы по умолчанию с помощью собственных. Чтобы включить обратный вызов Systick.

Cubemx позволяет определить, какие порты и картирование выводов вам нужны для определенной аппаратной целевой платы. Пример: для двух UART вы сообщите графическому интерфейсу в Cubemx, чтобы поместить UART1 на Pins X и Y, а также на какую скорость, паритет и т. Д. Тогда то же самое для UART2. Если вы будете использовать DMA в этом UART, который вы сообщите Cubemx, чтобы включить его и настроить канал DMA, который рекомендует Cubemx, например, DMA, Adder Auto -Increment и т. Д. Это действия графического интерфейса, а не вы пишете код. Это сделано, и вся остальная часть целевой настройки для часов и ввода -вывода, вы нажимаете Generate Project и для которого Target IDE. IDE в настоящее время, в последний раз, я смотрел, GCC/Atollic (бесплатно некоммерческий), IAR, Keil и ST Eclipse + GCC. Сгенерированный код включает в себя полезный проект в выбранной IDE с файлами проекта, включая все источники библиотеки HAL, которые необходимы для удовлетворения картирования PIN -кода с CubeMX для цели.

Для меня, изучение периферийных устройств MCU (с использованием справочного руководства ST) и того, как привлечь Cubemx для закрепления те, которые я хочу, и настраивать каждый, используя Cubemx, который не кодирует, но на основе графического интерфейса был новым опытом.

В большинстве встроенных проектов классы C ++ для водителей ввода -вывода не могут быть (не должны быть) инставация во время выполнения из -за связей с драйвером для ISR для переменных и функций. Таким образом, у Хэла есть код C Driver C, который использует одну таблицу настроек для каждого экземпляра. Пример: если у вас есть 2 UART, и каждый из них может использовать один и тот же код драйвера, CubeMX, из вашего сопоставления PIN -кода, создает две таблицы и два имена для двух UARTS. Это статика. Так же, как статические экземпляры классов C ++. Таким образом, UART1 и UART2 существуют в качестве ручек в C, чтобы вызвать тот же драйвер.

Программа C ++ может вызвать эти API C, так как библиотеки HAL и сгенерированный код из Cubemx находятся в .c файлы, а не .Файлы CPP. Компиляторы сегодня автоматически распознают эти имена и функции в .c Файл не должен быть изуродован, поскольку они в файле CPP.

Целью не доска, это чип. Картографирование булавок MCU на борт разъемов будет выполнено вашим кодом, например, Arduino, чтобы доски до MCU Time Time Lookup. Это отображение очень простое по сравнению с управлением периферийными устройствами в картирование PIN -код MCU, почему есть графический интерфейс для этого в Cuhemx. Концепция правления Arduino Legacy ArdUin. Тогда этот чип, присутствующий на какой -то плате, имеет MCU для бортового соединения в медных трассах, и это ваша обязанность, E.глин., Использование PIN -контакта Arduino Pint для поиска PIN -код MCU для любой данной платы.

Я надеюсь, что это поможет.

Я писал CPP для CP -CRAPPERS и функции картирования PIN ARDUINO для STM32F4X5, так что существующие программы C/C ++ для Arduino могут компилировать без изменений, но библиотеки HAL для ввода -вывода используются вместо библиотек Arduino. Библиотеки HAL являются гигантским суперсетом того, что есть Arduino, и каждый включает в себя опрос/прерывание/DMA APIS.

Есть кривая обучения. Если ваш проект очень прост, кривая обучения не стоит того.

Старые стандартные периферические библиотеки (SPL). Это тот же код, что и в библиотеках HAL, по сути, но без обертков HAL API, чтобы включить Cubemx Auto-Code Generation. И ST предупреждает, что SPL вытекает.

У библиотек HAL есть хорошая документация. Я использую HAL в основном, читая документ PDF для Hals. Почти никогда не смотрю на код HAL.

Но библиотеки HAL стоит научиться использовать, и с небольшим количеством сеансов CubexMX, по одному на MCU/сопряжение доски (так как вы, как правило, не занимаетесь пользовательскими досками)... Несколько человек с опытом Cubemx могут сделать настройки доски для данного чипа. Тогда этот скелетный проект может использоваться большим количеством людей в качестве отправной точки. И ST работает в выпуске новых либеров HAL каждые 6 месяцев или около того, и когда появляются новые типы чипов.
Эти сложные MCUS Cortex имеют так много периферийных устройств и пакетов с низким количеством штифтов (E.глин., 64 PIN) не могу сопоставить все сразу, в отличие от наследия Ардуино, где у AVR был весь его небольшой набор периферийных устройств на чипе, отображаемых с булавками, как правило. С помощью коры, инструментом GUI, таким как Cubemx, когда -то изучал, делает его довольно простым.

Чего я не нашел, когда начинал, было хорошо сделанным набором видео о том, как использовать эти инструменты. Это улучшено, но «кто -то» должен сделать такую ​​доступную. Более того, у хобби люди могли бы иметь некоторые эксперты Cubemx производить образцы для всех остальных.

Mrburnette
Чт, 07 апреля 2016 г., 21:28
HAL ST все C. Нет c++. Все драйверы ввода/вывода находятся в C для обеспечения совместимости. Однажды я прочитал, но теперь не могу найти ссылку, что наряды нет-Правило C ++ для встроенного кода UC. Я считаю, что это было из -за трудности с формально оцветным использованием памяти ... Итак, может быть, я прочитал это в отношении военных/космических применений.

В среде Cypress PSOC C ++ отключен по умолчанию. Конечно, можно включить это, но Cypress не рекомендует этот подход.


Луча

Обновление: я нашел несколько ссылок, где «предложения» об использовании C ++, но нет абсолютного запрета... Разработка программного обеспечения C ++ для DO-178-критических приложений
1 августа 2010 г

Использование языка программирования C ++ может вызвать беспокойство, задержки и переработку, когда дело доходит до соответствия DO-178B.
Дэвид Беберман и Джо Влад
В то время как использование языка программирования C ++ за последнее десятилетие увеличилось, выбор этого языка может препятствовать усилиям по соблюдению стандартов сертификации, таких как RTCA/DO-178B, если только разработчики не заботятся о.
Отсутствие стандартного руководства и правил приводит к тому, что многие представители сертификации внимательно рассмотрит заявителя, который использует C ++, что может привести к задержкам проекта или переделке.
Другие...

Вассилис
Пт 08 апреля 2016 г., 11:06
Я думаю, что закончил UartClass.час, UartClass.CPP для поддержки нескольких последовательных портов на основе прерываний (1-3) на STM32F103C8.
Мне нужно запустить некоторые тесты, чтобы убедиться, что это работает нормально.

Стевех
Пт 08 апреля 2016 г., 16:33
Mrburnette написал:HAL ST все C. Нет c++. Все драйверы ввода/вывода находятся в C для обеспечения совместимости. Однажды я прочитал, но теперь не могу найти ссылку, что наряды нет-Правило C ++ для встроенного кода UC. Я считаю, что это было из -за трудности с формально оцветным использованием памяти ... Итак, может быть, я прочитал это в отношении военных/космических применений.

В среде Cypress PSOC C ++ отключен по умолчанию. Конечно, можно включить это, но Cypress не рекомендует этот подход.


Луча

Обновление: я нашел несколько ссылок, где «предложения» об использовании C ++, но нет абсолютного запрета... Разработка программного обеспечения C ++ для DO-178-критических приложений
1 августа 2010 г

Использование языка программирования C ++ может вызвать беспокойство, задержки и переработку, когда дело доходит до соответствия DO-178B.
Дэвид Беберман и Джо Влад
В то время как использование языка программирования C ++ за последнее десятилетие увеличилось, выбор этого языка может препятствовать усилиям по соблюдению стандартов сертификации, таких как RTCA/DO-178B, если только разработчики не заботятся о.
Отсутствие стандартного руководства и правил приводит к тому, что многие представители сертификации внимательно рассмотрит заявителя, который использует C ++, что может привести к задержкам проекта или переделке.
Другие...

Mrburnette
Пт 08 апреля 2016 г., 11:14
Стевех написал: <...>
Правильно используется, C ++ может быть в порядке на встроенном.
ИМО, правильно означает
Нет создания экземпляра класса класса. Только статика.
Без использования строки и других классов, которые выполняют динамическое распределение памяти и нуждаются в сборе мусора/объединении.
ISRS в c. Функции C ++ с именем испытывают трудности с использованием общих переменных.

Лучше всего оставить C ++ для встроенного для использования только с не в I/O вещах.
И избегать использования кучи из -за динамического класса или создания объектов/удаления.

Стевех
Сб 09 апреля 2016 г., 5:26 утра
Я немного поговорил на вечеринке с сотрудниками, который сделал только использование инструмента веб -дизайнеров Microsoft, и немного C#. Я показал ему, на что похоже встроенное программирование, с некоторым оборудованием, с которым я работаю. Я объяснил, каково это использовать C/C ++, а не C# или инструменты веб -страницы. Он просто не знал, что существует. У него было много помощи Kool. Пока я не сказал ему, он никогда не перестал думать о том, сколько кода проходит, E.глин., Контролера (и) современной стиральной машины, и как трудно делать такие вещи в реальном времени. И я упомянул, как весь этот код должен быть 99.99% Правильно, иначе Manfucaturer X имеет большую финансовую проблему с отзывами или переловыми грузовиками на полевых услугах.

У нас новая высокая стиральная машина/сушилка. У них Bluetooth. О боже. Отдаленное перепрограммирование и диагностика.
Мой Keurig 2.0 Кофеварка имеет вилку для подключения ПК для перепрограммирования или других вещей (будущее).

Вассилис
Сб 09 апреля 2016 г., 10:45
Я отправил новый пиар Роджер.

- А UartClass теперь поддерживает Serial1, Serial2 и Serial3. А Serialusb (Серийный порт над USB) еще не реализован.
- Добавлено STM32F103C8 вариант.
- Я удалил дополнительные свойства, которые я вложил UartClass.CPP Файл, потому что STM32F030 работает хорошо с ними или без них.

Rogerclark
Солнце 10 апреля 2016 г., 11:33
Спасибо

Я принял пиар.

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

Поскольку я хотел проверить сериал, я пытался добавить Blackmagic Probe в качестве метода загрузки, поэтому я изменил свои доски.txt, чтобы у него было меню загрузки для платы Bluepill

Похоже, это работает, однако, мне не удалось заставить свой BMP работать. Я думаю, что это либо проблема с проводкой, либо, возможно, я запускаю индивидуальную версию BMP, которую я изменил, чтобы поддержать NRF51822

Поэтому мне лучше загрузить оригинальную прошивку BMP от Рика и попробую вместо специальной версии.

Но сегодня у меня не хватало времени :-(

Cmustard
Вт 12 апреля 2016 г., 19:09
Ух ты..

Я просеивал по руководству 1100 странных страниц, чтобы найти правильные регистры, чтобы тянуть за IRLIB.
И вот где я понял, где Cubemx добавляет ценность.
У этих плюгггеров STM32 есть много вариантов, которые нам нужно согласиться на заданный набор «по умолчанию» или «чередованию дефолтов»
На самом деле так же, как и с помощью Arduino PIN -функций, и ограниченный набор дисперсий.

Вот где я в углу Стива.
Вероятно, должна быть группа людей, делающих основные предварительные решения в соответствии с архитектурными правилами большого пальца.
как e.глин. Насколько вероятно, что проекту «хобби» нужно 2 автобуса I2C.
Я просто говорю, что STM32 может справиться с этим, но тоже любитель ?

Если вы профессионал, вы, вероятно, не хотите идти по маршруту Arduino, это, скорее всего, простая работа с использованием Keil или какой -либо другой IDE.
имеет смысл ?

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

Стевех
Вт 12 апреля 2016 г., 19:47
Верно.. Все эти коры М. имеют так много бортовых периферийных устройств и относительно немного булавок. Не так, как ты оле Аврс.

Это когда инструмент графического интерфейса имеет такой большой смысл. Особенно, если вы работаете с несколькими досками, несколько MCUS.

Я занимаюсь проектом, который использует STM32F4 в форме Die. Нет пакета IC. Поэтому я работаю с сеансом Cubemx 100 PIN.

Я узнал, что для любого STM32FN--, скажем, STM32F4XX, все периферийные устройства, которые находятся в эталонном руководстве для самого большого пакета (скажем, 100 контактов), находятся в матрице, используемые во всех STM32FN. Они просто не могут заработать все. Они выбирают, что можно пропустить, скажем, на 64 PIN -пакет.

И для какого-либо одного пакета мультиплекторы Mapper внедорожного штифта приводят вас к компромиссу, так как не все периферические устройства могут быть одновременно отображены с относительно небольшим количеством булавок (не так, с матрицей). И опять же, на матрице больше периферийных устройств, чем подключен к Pin Mapper Mux для любого данного пакета. Интересно, я думал, что они снизили стоимость, ограничивая выбор периферийных устройств. Поскольку им не нужно проверять те, которые не связаны с проволочными штифтами, я думаю, это снижает стоимость.

Ахулл
Вт 12 апреля 2016 г., 22:26
Стевех написал: Я узнал, что для любого STM32FN--, скажем, STM32F4XX, все периферийные устройства, которые находятся в эталонном руководстве для самого большого пакета (скажем, 100 контактов), находятся в матрице, используемые во всех STM32FN. Они просто не могут заработать все. Они выбирают, что можно пропустить, скажем, на 64 PIN -пакет.

Rogerclark
Вт 12 апреля 2016 г., 11:22 вечера
Стевех написал:Я узнал, что для любого STM32FN--, скажем, STM32F4XX, все периферийные устройства, которые находятся в эталонном руководстве для самого большого пакета (скажем, 100 контактов), находятся в матрице, используемые во всех STM32FN. Они просто не могут заработать все. Они выбирают, что можно пропустить, скажем, на 64 PIN -пакет. .

Вассилис
Ср 13 апреля 2016 г. 6:56 утра
Я почти закончил библиотеку SPI (основные функции). Он был протестирован только на MCU F103.

Rogerclark
Ср 13 апреля 2016 г., 7:05
Спасибо

Я проверил набросок мигания на F103, и он работает, но у меня есть проблемы с тем, что я не узнал, но я не уверен, почему.

Итак, я делаю ручные загрузки

Martinayotte
Ср 13 апреля 2016 г. 12:51
Наверное, этот знаменитый SWD включает/отключить флаг ?

Sheepdoll
Ср 13 апреля 2016 г., 8:12 вечера
Я нахожу странным, что у Роджера есть проблемы с ST-Link. Это была St-Link на нуклео, которая позволила мне загрузить код с Mac OSX. Это та часть, которую меня больше всего беспокоит. Пока что это все еще работает.

Rogerclark
Ср 13 апреля 2016 г., 8:42 вечера
Проблемы, с которыми я сталкиваюсь со STLINK, заключаются в том, что CLI Windows (EXE) не находит оборудование STLINK, если только я не буду в своем месте установки в программных файлах и запускает его оттуда.

Кажется, это не работает, если я скопирую его в папку «Инструменты/выигрыш/stlink.

Мне нужно больше времени потратить на разрабатывание, почему это происходит.

Я переехал на новый PC Core i7 вскоре назад (все еще работает W7), и с тех пор у меня были некоторые проблемы с USB. Хотя в этом выпуске удивительный, так как Stlink CLI, кажется, работает при некоторых обстоятельствах.

Ахулл
Ср 13 апреля 2016 г. 8:51 вечера
Похоже на некоторую функцию «Безопасность» Windows, и/или проблема пути. Для всех проблем с Windows кликните сюда. ;)

Rogerclark
Ср 13 апреля 2016 г., 21:07
Энди

Было уже поздно, когда я пытался использовать Stlink, так что дела не имели никакого смысла.

я.эн. Даже когда я добавил путь к тому, где установлен EXE, Stlink-Upload.Bat не удалось заставить EXE прикрепить к оборудованию Stlink.

Я думаю, я могу попробовать запустить IDE в качестве администратора, но мне обычно не нужно это делать.
Возможно, некоторые настройки безопасности по умолчанию изменяются через обновление Windows, когда я изначально установил W7 на этой новой машине :-(

Стевех
Чт 14 апреля 2016 г., 4:10
Вы использовали бесплатную утилиту ST-Link?
Это на панели инструментов Windows. Просто нажмите на значок. Нет администратора.
Но я использую его чаще изнутри моей IDE - где он использует пользовательский интерфейс IDE, а не автономный, который вы видите ниже.
2016-04-13_210801.jpg
2016-04-13_210801.JPG (246.75 киб) просмотрено 1042 раз

Вассилис
Чт 14 апреля 2016 г., 7:01
Может быть, обновление или понижение прошивки Stlink решит эту проблему.

Rogerclark
Чт 14 апреля 2016 г., 10:05
ХОРОШО.

Я понял, в чем проблема

Новая версия ST-Link Cli Exe (версия 2.4) не совместим с stlink_upload.летучая мышь

Новая версия, кажется, нуждается в нажатию клавиатуры (E.глин. вернуть нажатые), после загрузки, если используется опция -Run.

Поэтому нам нужно объединить версию 2.1 из CLI в репо или мы изменим командную строку File BAT, чтобы удалить опцию -run

Насколько я могу судить, опция -Run не требуется, так как мы также используем опцию -rst (сброс), и, похоже, он работает нормально без опции -Run, поэтому я думаю, что мы должны его удалить

Я не адвокат, но, насколько я могу судить, лицензия на программное обеспечение STLINK позволяет его распределять, поскольку лицензия предоставляет в отношении программного обеспечения STLINK ( http: // www2.ул.com/content/ccc/resource ... 217720.PDF)

"(iii) сделать, сделать, использовать, продавать, предлагать продажу, импорту и экспорт или иным образом распределять продукты также через несколько уровней."

Поэтому для пользователей Windows я думаю, что это проще, если я добавлю CLI (EXE) в репо, чтобы у нас была версия в репо, которая соответствует stlink_upload.летучая мышь

Rogerclark
Чт 14 апреля 2016 г., 11:28 утра
@Vassillis и @sheepdoll

Я попробовал заставить Core HALMX работать с загрузчиком, и я думаю, что это почти работает, но в настоящее время у меня нет возможности сбросить плату (Generic STM32F103C), чтобы ПК пятна, которые сейчас на устройстве DFU. доступный.

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

Тем не менее, он определенно компилирует и связывает код с 0x8002000, а загрузчик запускает код из этого места

Мне пришлось изменить линкер (.LD) файл для указания адреса запуска Flash как 0x8002000,

Я также должен был измениться

System_stm32f1xx.в

Так что это
#ifndef VECT_TAB_OFFSET #define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field. This value must be a multiple of 0x200. */ #endif

Ахулл
Чт 14 апреля 2016 г., 11:50 утра
Звучит как хороший прогресс. Будет интересно посмотреть, какой (Cube или Maple/Stmduino) создает более компактный/эффективный код.

Ddrown
Чт 14 апреля 2016 г. 15:09
Rogerclark написал:ХОРОШО.

Я понял, в чем проблема

Новая версия ST-Link Cli Exe (версия 2.4) не совместим с stlink_upload.летучая мышь

Новая версия, кажется, нуждается в нажатию клавиатуры (E.глин. вернуть нажатые), после загрузки, если используется опция -Run.

Поэтому нам нужно объединить версию 2.1 из CLI в репо или мы изменим командную строку File BAT, чтобы удалить опцию -run

Вассилис
Чт 14 апреля 2016 г., 8:44 вечера
Несколько минут назад я отправил новый пиар. Библиотека SPI добавлена ​​и работает нормально : D

- проводка.час А Задержкамикросекунды был переписан для STM32. Предыдущий код сборки не работал правильно для тестов, которые я сделал.
- Wiling_digital.в Низкий и высокий был напротив DigitalRead (...). Зафиксированный!
- Библиотека SPI добавлена. Он поддерживает только основные функции (методы)

-= Функции =- void begin(void) uint8_t transfer(uint8_t _data) const uint16_t transfer16(uint16_t data) void transfer(uint8_t buf, size_t count) void setClockDivider(uint8_t clockDiv) void setBitOrder(uint8_t bitOrder) void setDataMode(uint8_t dataMode)

Rogerclark
Чт 14 апреля 2016 г., 21:12
Спасибо Вассилис

Я буду тянуть на свою локальную машину и проверить ее с помощью дисплея ILI9341 (когда я найду версии LCD библиотеки не DMA)

Rogerclark
Чт 14 апреля 2016 г., 21:16
DDROWN написал: Вы можете попробовать это и посмотреть, исправляет ли это?

https: // github.com/ddrown/arduino_stm32 ... 954D448785

Rogerclark
Чт 14 апреля 2016 г., 22:01
Ахулл написал:Звучит как хороший прогресс. Будет интересно посмотреть, какой (Cube или Maple/Stmduino) создает более компактный/эффективный код.

Rogerclark
Чт 14 апреля 2016 г., 11:01 вечера
Может ли кто -нибудь посоветовать по лучшему способу «исправить» файлы из ядра при создании нового варианта или просто обновления до более позднего экспорта из куба

Потому что нам нужно написать нашу собственную главную.C, а также похоже, что нам нужно иметь возможность изменить вектор смещения начала (который жестко кодируется до 0x00)

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

Или, возможно, единственный способ сделать это - написать инструкции, которые необходимо реализовать вручную. ?

Rogerclark
Пт 15 апреля 2016 г. 10:55 утра
Вассилис написал:Несколько минут назад я отправил новый пиар. Библиотека SPI добавлена ​​и работает нормально : D

- проводка.час А Задержкамикросекунды был переписан для STM32. Предыдущий код сборки не работал правильно для тестов, которые я сделал.
- Wiling_digital.в Низкий и высокий был напротив DigitalRead (...). Зафиксированный!
- Библиотека SPI добавлена. Он поддерживает только основные функции (методы)

-= Функции =- void begin(void) uint8_t transfer(uint8_t _data) const uint16_t transfer16(uint16_t data) void transfer(uint8_t buf, size_t count) void setClockDivider(uint8_t clockDiv) void setBitOrder(uint8_t bitOrder) void setDataMode(uint8_t dataMode)

Rogerclark
Пт 15 апреля 2016 г. 11:02
Ребята

Я начал добавлять поддержку загрузчика к общей плате STM32F103C8 (вариант)

Однако на данный момент этот вариант не компилируется из -за проблем с SPI Vassili.

Но если кто -то хочет попробовать.глин. На Maple Mini вы можете получить предыдущую версию Commit (до добавления кода SPI)

https: // github.com/rogerclarkmelbourne/ ... C0E3A6404F

Выберите STM32F103C8 (Flash 20K 64K), которая теперь по умолчанию по умолчанию загрузки загрузчика

Скомпилируйте и загрузите что -нибудь E.глин. мигание

Затем, когда компиляция завершена и IDE пытается загрузить эскиз, нажмите сброс (и отпустите) кнопку сброса на Maple Mini, и DFU UTIL должен найти загрузчик (устройство DFU) и загрузить эскиз

Примечание. На данный момент о единственном, что вы можете проверить, это мигание, так как у нас еще нет серийного USB.

Но это шаг в правильном направлении.

Вассилис
Пт 15 апреля 2016 г. 13:26
Rogerclark написал: Привет, Вассилис

Кажется, есть проблема с переименованием SPI.C и т. д.C, как Arduino IDE, кажется, пытается скомпилировать оба _spi.C и SPI.в

Я получаю следующие сообщения об ошибках для общего STM32F103C8

C:\Users\rclark\AppData\Local\Temp\build2460407063954389677.tmp\_spi.c.o: In function `MX_SPI2_Init': D:\Documents\Arduino\hardware\HALMX_Arduino_STM32\HALMX\variants\MXBluePillF103C8\Src/_spi.c:44: multiple definition of `MX_SPI1_Init'

Вассилис
Пт 15 апреля 2016 г. 13:38
Я думаю, что для меня это хорошая идея, чтобы быть сосредоточенным на разработке ядра / библиотек на варианте STM32F103C8, который широко используется многими друзьями STM32DUINO.
Когда мы достигаем приемлемого уровня разработки (по крайней мере, основные интерфейсы, такие как Serial, Serialusb, SPI, I2C и загрузчик), мы передадим окончательные настройки другим вариантам.

Rogerclark
Пт 15 апреля 2016 г., 21:12
Вассилис

Спасибо, я удалю старые файлы SPI.

Re: STM32F103C8

Да. Лучше всего сосредоточиться на этом совете, так как я думаю, что у 90% членов форума есть такая доска или Maple Mini.

У меня есть доска Discovery F407, а также ядро ​​F3, у меня также есть EMW3195 и Spark Photon, который, я думаю, содержат устройства STM.

Но у меня есть только время проверить F103

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

Вассилис
Пт 15 апреля 2016 г., 21:43
Библиотека провода скоро появится (i2c) ;)

Rogerclark
Пт 15 апреля 2016 г. 22:14
Спасибо

Я постараюсь проверить SPI на ЖК -экран сегодня

Редактировать.

Я только что заметил, что вариант Generic STM32F103C8 не имеет определения серийного определения.

Я посмотрю, смогу ли я изменить код, чтобы сделать эту работу, так как кажется, что Serial1 и Serial2 определены, но я не уверен, на что они указывают (вероятно, USART 1 и USART 2, поэтому мне может просто потребоваться переименовать Serial1 объект на сериал

Rogerclark
Пт 15 апреля 2016 г., 11:03
Вассилис

К вашему сведению

Я только что заметил, что некоторые основные функции, вероятно, должны быть сделаны перед

эн.глин. анализа еще не существует.

Sheepdoll
Пт 15 апреля 2016 г., 11:23
Rogerclark написал:
Я думаю, что получение серийного USB Work - это следующий логический шаг, поскольку, хотя мы теперь можем загрузить через загрузчик, мы должны сбросить вручную для загрузки, а также нуждаться в внешнем USB для серийного адаптера

Rogerclark
СЕТ 16 апреля 2016 г. 12:05
Джули

Спасибо

По крайней мере, для начала, возможно, мы сможем просто использовать глобальную экземпляр серийного USB CDC, как это делает Libmaple.

Хотя это звучит как спагетти от вас, вы сказали.

Возможно, есть другие способы получить приличную USB -систему с помощью LiboPencm3, но я не знаю, действительно ли она использует CMSIS / HAL ?

Ой. КСТАТИ.

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

Вассилис
СЕТ 16 апреля 2016 г., 7:49
Я постараюсь написать Wiling_analog.в для поддержки анагрог () и Analogwrite () функции.

Rogerclark
Сб, 16 апреля 2016 г. 8:22 утра
Спасибо Вассилис

Я нашел это http: // visualgdb.com/turniors/arm/stm32/adc/

https: // github.com/arduino/arduino/blob ... g_analog.в

Я думаю, что, вероятно, использование кода Arduino Sam в качестве базы, вероятно, является лучшей отправной точкой. Мы не можем использовать их вызовы CMSIS, но, по крайней мере, это дает список функций

Sheepdoll
СЕТ 16 апреля 2016 г. 8:28 утра
Все еще не может заставить CDC перечислять. Я помещаю код в Eclipse и запустил GDB. Функции выполняются до начала USB.

Я сравнил то, что Cubemx генерирует с автономным CDC, код выглядит очень похожим, хотя форматирование и имена разные. С помощью Cubemx вы устанавливаете промежуточное программное обеспечение USB и можете использовать вкладку «Конфигурация», чтобы установить дескрипторы устройства. Я оставил их в покое, поскольку они генерируют то же самое, что и пример CDC.

Я положил некоторые точки останова на конечные точки дескриптора устройства, и когда я повторно подключаю кабель, они получают удар. У меня нет резисторов на линии D+ PR D-линии. Из того, что я прочитал, VBU должны идентифицировать скорость устройства. Если я что -то не пропустил.


Вновь были проблемы с наблюдателем с окном. Не уверен, что я сделал, чтобы заставить его работать. Я изменил некоторые настройки линкера в Makefile, чтобы больше похоже на то, что выпускает Ardiuin IDE. Я не уверен, что Eclipse уважает Makefile. Чтобы избавиться от некоторых поддельных предупреждений, мне пришлось установить один из директив компилятора в проекте. В противном случае предварительный процессор Eclipse не видит правильный файл заголовка, а GDB отчеты отчетов на макросах на макросах.

Rogerclark
Сб, 16 апреля 2016 г., 23:29
Ребята

Я думал, что просто попробую экспортировать проект из куба, который имеет только USB и просто виртуальное последовательное устройство

Но у меня сразу возникают проблемы, как только я отмечаю USB -поле на экране конфигурации, так как у него есть проблема с таймером 1, а также экран конфигурации часов имеет необоснованные проблемы :-(

Поэтому я подумал, что попробую загрузить встроенную плату (ядро F103RB), но у него есть ошибки конфигурации, даже если я вообще не внесу изменений.

У куба есть проблемы с SPI по какой -то причине.


Интересно, как -то моя установка куба как -то сломана - возможно, так как я сделал обновление несколько дней назад.

(До этого я не помню подобных проблем, но я никогда не использовал (пытался скомпилировать) исходный код, созданный кубом)

Думаю, моя лучшая ставка - это, вероятно, удалить всю установку и попытаться скачать все снова :-(

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

Arrggghhh

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

Вассилис
Солнце 17 апреля 2016 г., 7:05
Rogerclark написал:Ребята

Я думал, что просто попробую экспортировать проект из куба, который имеет только USB и просто виртуальное последовательное устройство

Но у меня сразу возникают проблемы, как только я отмечаю USB -поле на экране конфигурации, так как у него есть проблема с таймером 1, а также экран конфигурации часов имеет необоснованные проблемы :-(

Поэтому я подумал, что попробую загрузить встроенную плату (ядро F103RB), но у него есть ошибки конфигурации, даже если я вообще не внесу изменений.

У куба есть проблемы с SPI по какой -то причине.


Интересно, как -то моя установка куба как -то сломана - возможно, так как я сделал обновление несколько дней назад.

(До этого я не помню подобных проблем, но я никогда не использовал (пытался скомпилировать) исходный код, созданный кубом)

Думаю, моя лучшая ставка - это, вероятно, удалить всю установку и попытаться скачать все снова :-(

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

Arrggghhh

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

Rogerclark
Солнце 17 апреля 2016 г., 7:51
Спасибо Вассилис

Потребовалось несколько попыток обновить куб.

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


мммм

20 КБ для USB -сериала ужасен. Возможно, проблема заключается в том, что флаг-whore-archive, который был необходим для решения проблем в Libmaple, но может привести к тому, что компилятор / линкер связал вещи, которые не используются.

Двоичные файлы halmx кажутся 2 х столь же большими, чем Lib Maple, даже без использования виртуального COM -порта

Я помню давным-давно, мы попытались удалить флаг-whole-archive, и сначала это выглядело так, как будто все в порядке, но потом у нас были проблемы с функциями обратного вызова таймера.

https: // github.com/rogerclarkmelbourne/ ... 960851d64b

Но, возможно, стоит попробовать без-whole-archive для этого ядра

Редактировать.

Я попытался удалить флаг-whole-archive из команды сборки, но он не делает код меньшим, и он также вызывает предупреждение о
undefined reference to `_sbrk'

Вассилис
Солнце 17 апреля 2016 г., 17:07
анагрог () готов. Я должен написать Analogwrite () Для ШИМ и я пришлю пиар.

Sheepdoll
Пн 18 апреля 2016 г. 1:52 утра
Все еще не смог заставить Mac увидеть USB CDC VCP. Кто-нибудь знает, нужен ли мне резисторы 1K5 или около того на линии D+ или D-линии. Онлайн -документы говорят, что они не нужны.

Следующее, что я планирую попытаться, - это подключить один из моих дисплеев LDC 2x40 и посмотреть, смогу ли я заставить их проработать в библиотеках F Malpartida.

Что касается раздувания кода, я думаю, что это так, как все делается сейчас. Я все еще могу написать код с подсчета часов с помощью рук на моем Uno (клоны)

Mrburnette
Пн 18 апреля 2016 г. 2:03
Кто-нибудь знает, нужен ли мне резисторы 1K5 или около того на линии D+ или D-линии. В цепях я использовал, Только D- тянется высоко (3.3v) по ок. 1500 Ом.

Sheepdoll
Пн 18 апреля 2016 г., 3:08
Ну, f Malpartida libs не выпускается из коробки. Они называют задержкумикросекунд. Я нашел это в проводке.h, где он определяется для Teensy с использованием встроенного ASM, на котором сарает компилятор ARM G+. "Ошибка: инструкция не поддерживается в режиме Thumb16."Не уверен, откуда это произошло. Если бы это было то, что я вставил, когда я загрязнял .H файлы. Я не делал никаких тяжок в течение недели или около того.

DelesMicroseconds () - это функция, которая мне больше всего нужна. Просто сделать на AVR, установить таймер и опрос на нем. Я устал увидеть, смогу ли я включить TIM1 в Cubemx, но это казалось, что приводило к нечестному исключению прерываний wwdt, которое вешает вещи при нагрузке.

Я думаю, что я собираюсь посмотреть свой любимый фильм сегодня вечером _doctor Strangelove_ Никто не сможет снять эту камеру, направленную на откаты зеркала, как Кубрик мог. (Zemekis обманывает и использует CGI для эффекта.)

Вассилис
Пн 18 апреля 2016 г., 4:39 утра
Sheepdoll написал:Ну, f Malpartida libs не выпускается из коробки. Они называют задержкоймикросекунд. Я нашел это в проводке.h, где он определяется для Teensy с использованием встроенного ASM, на котором сарает компилятор ARM G+. "Ошибка: инструкция не поддерживается в режиме Thumb16."Не уверен, откуда это произошло. Если бы это было то, что я вставил, когда я загрязнял .H файлы. Я не делал никаких тяжок в течение недели или около того.

DelesMicroseconds () - это функция, которая мне больше всего нужна. Просто сделать на AVR, установить таймер и опрос на нем. Я устал увидеть, смогу ли я включить TIM1 в Cubemx, но это казалось, что приводило к нечестному исключению прерываний wwdt, которое вешает вещи при нагрузке.

Я думаю, что я собираюсь посмотреть свой любимый фильм сегодня вечером _doctor Strangelove_ Никто не сможет снять эту камеру, направленную на откаты зеркала, как Кубрик мог. (Zemekis обманывает и использует CGI для эффекта.)

Grumpyoldpizza
Ср 20 апреля 2016 г., 15:40
Mrburnette написал:HAL ST все C. Нет c++. Все драйверы ввода/вывода находятся в C для обеспечения совместимости. Однажды я прочитал, но теперь не могу найти ссылку, что наряды нет-Правило C ++ для встроенного кода UC. Я считаю, что это было из -за трудности с формально оцветным использованием памяти ... Итак, может быть, я прочитал это в отношении военных/космических применений.

Сжимать
Ср 20 апреля 2016 г. 11:14
Согласие C ++ - это возможная угроза стабильности, особенно в очень маленьких системах, но если вы следовали строгим правилам, вы можете иметь преимущества C ++, без проблем.
Я использую C ++ для встраиваемых и иногда критические приложения без проблем. Некоторые стратегии могут улучшить стабильность и размер применения:
- Нет динамического распределения, определите новые функции заглушки для New (), Malloc () и т. Д... чтобы быть уверенным, что динамического распределения нет.
- Удалить полностью поддержку RTTI
- Удалить или заменить некоторые стандартные функции, связанные с конструкторами и т. Д...
- Не используйте, если возможно, контейнеры или потоки STL или другие стандартные библиотеки C ++.

Другими словами, используйте C ++ в качестве улучшенного C с классами без наворотов, и вы будете в безопасной стороне.

Стевех
Пт 22 апреля 2016 г. 12:23
Статические классы!
Нет кучи.
Оператор перегрузка = невозможный код (IMO). То же самое для большинства перегрузки функций. То же самое для многих форм виртуальных функций. Просто плохая сложность новостей.
Нет строки и аналогичного класса .. использует коллектор кучи и мусора.
Не использовать заявления об исключениях.
Остерегайтесь нагрузки Linker's Map, будет иметь списки с названием с названием. Выносливый.

Aneespk
Сб 14 мая 2016 г. 9:16
1-любой вариант, чтобы подключить то же самое в Arduino IDE?
2 -Я не могу понять то же самое - «Разработано новое« ядро ​​», которое должно его поддерживать, но его первые дни.Пожалуйста, прочитайте тему Hal Mx Core ""
Как я могу добавить то же самое?

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

С уважением
Anees Pk.
Почта идентификатор - mail2aneespk@gmail.компонент

Вассилис
Сб 14 мая 2016 г., 9:57
Скачать HALMX CORE FILES и извлечь файл Zip в папку [yourarduinoide_folder] \ armware \. Примером пути является:
Halmx_path.jpg
Halmx_path.JPG (92.63 киб) просмотрено 2454 раза

Роберт94
Сб 16 июля 2016 г. 3:21
Я не могу использовать библиотеку https: // github.com/rogerclarkmelbourne/ ... uino_stm32
Шаг 1: Я загружаю библиотеку в GitHub.
Шаг 2: Я помещаю его в C: \ users \ robert \ Documents \ arduino \ halpware \ halmx_arduino_stm32-master
Затем я открываю Arduino IDE 1.6.9 И я не вижу общего STM32F030F...
: oops:

Rogerclark
Сб 16 июля 2016 г., 3:51 утра
Все доски, кроме F103

Martinayotte
Сб 03 сентября 2016 г. 1:28
Я решил попасть в эти F030F4 TSSOP20 ...
Я получил маленький Devboard, а также голые чипсы от eBay.
Первый копание: SPL работает, но возьмите много ресурсов, простой мигает с серийным чатом, возьмите 14 тыс. Из 16K Flash.
Второе копание: после 2 дней работы, избавление от SPL и перехода с некоторым объединенным SPL/LEAFLAB и другим BAREMETAL, я вышел на компромисс с 5K Out из 16K Flash ... Немного лучше ... : D

Ddrown
Сб 03 сентября 2016 г., 15:45
Я тоже играл с доской на основе 030F4. Я использую STM32Cubemx и генератор Makefile для использования GCC.

Шинь -мигающий светодиод + UART (без оптимизации, кроме флага компилятора -OS) = 8K Flash

Если есть интерес, я могу опубликовать свою настройку и код

Icelon
Пт 23 февраля 2018 г., 13:41
[Rogerclark - Сб 16 июля 2016 г. 3:51]] - Все доски, кроме F103

Тогда до сих пор нет поддержки STM32F0 ... или если есть такая же активная