Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Чт фев 18, 2021 19:45:47

Кто-нибудь сходу не знает ли - подходит ли код с блэк пилл F401CC на блэк пилл F411CE?

https://os.mbed.com/questions/67949/32F401-vs-32F411/

А есть у кого-нибудь базовый набор (Makefile + ld-скрипт + сишный стартап + набор CMSIS с заголовочными файлами) с парой сниппетов под F401? А то так лень самому корпеть над этим, а плата лежит в соседнем ящике...

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Чт фев 18, 2021 20:00:12

Итак, под Семеркой, под ардуино 1.8.13 портабле с stm32coe 1.9.0 из того репозитория black pill скомпилилаась и слиноковалась! В этом нет ничего выдающегося, но хорошо. В пилюлю не залил т.к. не знаю пока как STLink без Кубпрограммера прикрутить.

А на XP эта версия не запустилась - сначала авира ругалась, а потом джава. Джава так просто не обновилась - там брандмауер что ли не дает. И боюсь - а то вдруг обновится и работать не будет... Авиру можно заткнуть.

Хорошо что совместима с F401 backward - через "опу, как бы я перевел :) Потому что под F401CC все копилится а под F401V компилится намного быстее (пакет SAM а не stm32core). Но вот вопрос - как STLink прикрутить вместо CubeProgrammer!

Вытащил bin и hex. Попробую залить STLink-ом в пилюлю.

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Чт фев 18, 2021 20:56:33

А вот версия последняя - 1.9.0 не компилится!

а вывод в студию можно?
Как вывод настроить:
Изображение

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Пт фев 19, 2021 00:54:26

Не верю своим глазам! Блинк под Ардуино ИДЕ 1.8.6 portable для F411CE собрался! Пока на Семерке. Сейчас на пилюлю залью hex.

И этот блинк прошился STLink-ом на пилюлю и нормально работает!

Осталось два момента - один важный и второй неспешный. Перенести все это на ХР и убедиться что и там все работает и нет никакого заподла. И прикрутить STLink напрямую.

Добавлено after 3 hours 50 minutes 12 seconds:

На ХР все работает!
Обнаружил некоторые глюки при компиляции кода для blue(!) pill в этой новой среде. Не все библиотеки компилируются.

И STLink не прикрутил пока.

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Пт фев 19, 2021 10:23:26

Я ж выше уже говорил -
1.8.9 эта последняя для ХР,
а
1.8.13 - это уже 7-8-10ка.
8)

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Пт фев 19, 2021 13:09:20

А зачем именно ардуина ?

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Пт фев 19, 2021 13:37:17

Это кому как удобнее/приывчнее.
Касательно иных IDE есть достаточно соответствующих разделов.
8)

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Пт фев 19, 2021 17:14:20

А зачем именно ардуина ?


У меня было три соображения в пользу arduino IDE , осталось только два.
1. Она просто устроена и мало места занимает - увы, не так. 1.6 Гб да и конфигурационные файлы, кажется, не особо доступны.

2. Для этой среды больше всего готоаых библиотек под разные устройства. Ну где я найду например, библиотеку под BME260 или под дисплей ILI4391 сразу с примерами рабочими. А в arduino IDE такое возможно, и не только для ардуины, но и для stm32 думаю - любого более-менее. Для blue pill есть рабочие библиотеки под датчики, дисплеи, SD карточки - все, что угодно. Я сомневаюсь, что их столько же в тех средах, где работать принята под HAL или CMSIS и начинать программу с тактирования...

3. Мое личное. Просто не терплю эстетически длинные и повторяющиеся имена в коде. GPIOZhopa->GPIOPervoePoluzhopie()
Я бы написал Z->PZ1(). Я на перле писал...

А вообще - дело личное, зависит от вкуса и опыта того, кто работает. Если пойму что все ардуиновские библиотеки стандартно портируются под emblocks - туда и перейду наверное.

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Пт фев 19, 2021 19:56:58

Адуринку надо уметь готовить.
Это не прямая работа с МК, как в "стандартных" ассемблере и/или Си (ином ЯВУ).
Приходится соглашаться на определенные ограничения в связи с "универсализмом" применяемой элементной базы.
Кстати...
oleg110592 как-то предложил альтернативу для ARM под ХР - EmBitz 1.11.
Вполне себе неплохая IDE, только у меня пока к ARM "душа не лежит".
А вот за идейку с portable я его мал покусаю - проблеме ардуинки для ХР уже более года, а этот вариант он только тут предложил!
:twisted:
Кстати идейка та отлично работает - осталось еще несколько тестов проверить и буду отчет готовить.
Размер же самой IDE в "полном фарше" отнюдь не маленький - как и предполагается не менее 5-6 гигабайт (с учетом АРМ, "сторонних АВР" и ЕСПшек).
:beer:

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 02:07:45

Loyso Pondohva писал(а):1. Она просто устроена и мало места занимает - увы, не так. 1.6 Гб
Компилятор GCC ARM занимает примерно 500 МБ на диске.
АрдуинаИДЕ слишком просто устроена и в ней нет элементарных вещей, типа отладки и подобных. Это усложняет разработку.

Loyso Pondohva писал(а):Ну где я найду например, библиотеку под BME260 или под дисплей ILI4391 сразу с примерами рабочими.
Это все хорошо, но не всегда библиотеки оптимально используют ресурсы МК. Это нужно учитывать.

Loyso Pondohva писал(а):Для blue pill есть рабочие библиотеки под датчики, дисплеи, SD карточки - все, что угодно.
Библиотеки универсальны и у этого есть цена. Размер кода больше, как правило используется ногодрыг или прерывания вместо периферии и DMA, т. е. ресурсы МК используются не оптимально. Пока код простой это не столь важно, но в реальных проектах когда нужно выполнять несколько задач одновременно, это усложнит разработку.

Loyso Pondohva писал(а):Я сомневаюсь, что их столько же в тех средах, где работать принята под HAL или CMSIS и начинать программу с тактирования...
Код должен быть оптимальным или лишь бы как-то работало?

Loyso Pondohva писал(а):Если пойму что все ардуиновские библиотеки стандартно портируются под emblocks - туда и перейду наверное.
Сейчас IDE называется EmBitz.

BOB51 писал(а): только у меня пока к ARM "душа не лежит"
Наверное потому что у вас задач под них нет или не поняли какие у них преимущества по сравнению с AVR. А используя ArduinoIDE и не поймете, т. к. многие преимущества (например совместное использование периферии, отладка и др.) не используются.

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 02:54:38

Отладка это не преимущество ARM, стандартная функция наверное для всех контроллеров. Отладка реально нужна только на очень сложных проектах.
В большинстве случаев у начинающих отладка ведет к "подгонке" параметров, без реального понимания сути происходящего. Не так уж сложны эти STM32, что бы по рефману нельзя было разобраться. Особенно если тактирование настроено по умолчанию ардуиной и спокойно можно мигать диодами и отправлять в сериал всю необходимую информацию. Реально докопавшись до сути проблемы и устранив ее один раз, больше уже никогда не совершишь.

Arduino IDE совершенно не мешает использовать функционал контроллеров напрямую, если это нужно. Зато позволяет использовать стандартные ардуиновские приемы там, где это не критично (почти везде).

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 11:07:35

Не мешает в разумных пределах - когда нет "перекрытия" по системным функциям.
В принципе то же самый подход будет, если писать программу для ПК на уровне BIOS.
Работать будет.. но в пределах данной материнки.
Опять же это кому как удобно.
8)
Касательно отладки - у каждого свои приемы. Можно вполне тем, что имеется обойтись - но сегодня предпочитает народ "попроще".
Расплата - обязательное наличие "фирмовых" покупных средств отладки (программаторы, платные IDE).
:roll:

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 13:14:42

Alex-lab писал(а):Отладка это не преимущество ARM, стандартная функция наверное для всех контроллеров.
Из AVR8 поддерживают отладку (JTAG) не больше 10 моделей. С другими 8-ми битными аналогично.

Alex-lab писал(а):Отладка реально нужна только на очень сложных проектах.
Распространенное заблуждение. Вероятно вам не приходилось пользоваться отладкой в МК и не можете оценить ее преимущества и насколько она позволяет сэкономить время поиска причины "почему МК работает не так как должен". http://purebasic.mybb.ru/viewtopic.php?id=564#p7599

Alex-lab писал(а):В большинстве случаев у начинающих отладка ведет к "подгонке" параметров, без реального понимания сути происходящего.
То есть тыканье пальцем в небо? И это вместо того чтобы запустить отладку и пошагам посмотреть как выполняется программа? Это во первых позволит увитеть ее выполнение что исключит заблуждения у начинающих. Во вторых при этом можно видеть что в памяти, в регистрах процессора и периферии и может способствовать изучению МК.

BOB51 писал(а):Расплата - обязательное наличие "фирмовых" покупных средств отладки (программаторы, платные IDE).
О чем вы пишите? Отладчик ST-Link можно самому собрать или (что проще и дешевле) купить за 100 рублей. Для STM32 есть около десятка бесплатных IDE с поддержкой аппаратной отладки.

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 14:44:10

Из AVR8 поддерживают отладку (JTAG) не больше 10 моделей. С другими 8-ми битными аналогично.

Опять старые сказки про тотальную отсталость 8-битников? Продолжение сериала "Не попробовал, но осуждаю"?

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 14:58:48

Zhuk72 писал(а):Опять старые сказки про тотальную отсталость 8-битников?
Почему? Или вы согласны с Alex-lab который написал
Alex-lab писал(а):Отладка это не преимущество ARM, стандартная функция наверное для всех контроллеров.
Если согласны напишите сколько AVR поддерживают JTAG.

Zhuk72 писал(а):Продолжение сериала "Не попробовал, но осуждаю"?
У меня есть опыт работы с 8-ми битниками. И я знаю каковы у них недостатки.

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 16:31:04

Все идет, все изменяется...
8)
Современные серии от микрощип-атмеля и протокол иной имеют и возможности...
:hunger:
МНДЯАА...
Читать некогда те буки...
:(
Просто кому чего ближе - тем и занимаются.
Слишком объёмной стала документация по отношению к результату.
Расширение используемой номенклатуры - только при жесткой необходимости или "от излишка времени/средств" возможно.
Это ж не "с нуля в технаре/институте" учить.
:beer:
Лучше уж топикстартеру помогите - с той же IDE к примеру (помимо ардуиноIDE в приложении к АРМам).
:wink:

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 18:14:04

Пока что такие результаты.
1. Удалось поставить пакет sm32core под ардуину 1.8.6 уже portable, перенести ее на XP и там успешно откомпилить и собрать blink для F411CEU, извлечь hex и прошит его STLink- ом на пилюлю. И он там запустился! Это really cool!

2. Но под этим пакетом классическая голубая пилюля, точнее код для нее, хоть и собирается для blink но дико тормозит и не собирается для кучи библиотек и проектов вроде BME280, RTClock, ILI9341, и много хорошего, подо что я уже писал и есть работающие устройства. Поэтому я принял решение поставить вдобавок все, что было раньшне - покет SAM cortexM3 и еще какие-то библиотеки, уж не помню откуда, разваныыек hardware/STM32F1... Чтобы с прежними проектами было возмопортилсяжно работать.

3. Однако поглюкивает, хотя и не так фатально. Библиотека на LCD 1602 встала, а вот все, которые работают по SPI - ругаются. SPI испортился. Пишут "SPIClass has not been declared". и далее все последующее из этого.

Разбираюсь. Видимо SPI.h есть несколько (например, для атмеги и стм разных) и в механизме инклюда правильной библиотеки что-то слетело...

4. Когда это сделаю и откомпилирую все, что раньше работало - посмотрю, какие библиотеки переносятся на 411 пилюлю.

5. Когда будет что не стыдно - выложу одним архивом - портируемую среду со всеми работающими библиотеками на благо последующих поколений...

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 18:28:24

BOB51 писал(а):Лучше уж топикстартеру помогите - с той же IDE к примеру
Могу разве что дать проекты для STM32F013C8T6 и STM32F411CEU6.
Разница файла main.c минимальна. Для STM32F013C8T6
Код:
#include "main.h"
#include "DWT_Delay.h"

int main(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

    GPIO_InitTypeDef g = {.GPIO_Pin = GPIO_Pin_13,
                          .GPIO_Mode = GPIO_Mode_Out_PP,
                          .GPIO_Speed = GPIO_Speed_50MHz};

    GPIO_Init(GPIOC, &g);

    SystemCoreClockUpdate();
    DWT_Init();

    while(1)
    {
        GPIOC->ODR ^= GPIO_ODR_ODR13;
        DWT_Delay_ms(500);
    }
}
Размер прошивки 964 байта.
Код:
Program size (bytes):     936
Data size    (bytes):      28
BSS size     (bytes):      32

Total size   (bytes):     996   (R/W Memory: 60)

=== Сборка закончена: 0 errors, 0 warnings (0 minutes, 2 seconds) ===

Для STM32F411CEU6.
Код:
#include "main.h"
#include "DWT_Delay.h"

int main(void)
{
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);

    GPIO_InitTypeDef g = {.GPIO_Pin = GPIO_Pin_13,
                          .GPIO_Mode = GPIO_Mode_OUT,
                          .GPIO_OType = GPIO_OType_PP,
                          .GPIO_PuPd = GPIO_PuPd_NOPULL,
                          .GPIO_Speed = GPIO_Speed_50MHz};

    GPIO_Init(GPIOC, &g);

    SystemCoreClockUpdate();
    DWT_Init();

    while(1)
    {
        GPIOC->ODR ^= GPIO_ODR_ODR_13;
        DWT_Delay_ms(500);
    }
}
Размер прошивки 1 100 байт.
Код:
Program size (bytes):    1072
Data size    (bytes):      28
BSS size     (bytes):      32

Total size   (bytes):    1132   (R/W Memory: 60)

=== Сборка закончена: 0 errors, 0 warnings (0 minutes, 4 seconds) ===


Как создать проект написано на хабре https://habr.com/ru/post/517886/
Компиляция и отладка (выполнение кода в ОЗУ) прекрасно работают в Windows XP.
Вложения
kot.7z
(433.08 KiB) Скачиваний: 221

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 18:54:12

Про предложение Мурика. Спасибо большое, у меня есть странность, и я ее хочу соблюсти. Я не хочу пользоваться библиотеками с длинными именами GPIOxxx. Ну вот эстетически. Если задумаю, например, писать что-то "близко к железу" где критична работа с портами, например какой-нибудь осциллограф, где нужно правильное тактирование, правильная настройка ADC и DMA то наверное напишу в arduino IDE в хидере кучу алиасов для всех регистров по абсолютным адресам своими именами и буду обращаться по своим именам. Если уж очень приспичит - то напишу скрипт и вытру все повторяющиеся названия типа GPIO и оставлю те же библиотеки но в приятном для меня виде. Где имя не несет в себе много букв, название всех вышестоящих классов, а также бренд фирмы, разработавшей этот софт. Я на перле писал и на ассемблере 8086 и PDP11. Но это так - эстетическое самоопределение...

Нужно навести порядок в SPI библиотеках. И может быть этого достаточно. Ну и прикрутить STLink туда где его забыли. У меня залежался недоделанный генератор сигналов на AD9850 и детектор к нему на AD8307 - не на чем пока дописать.

Re: Black Pill (STM32F411CEU6) + STLink 2.0 + Arduino IDE

Сб фев 20, 2021 19:18:27

Loyso Pondohva писал(а):Я не хочу пользоваться библиотеками с длинными именами GPIOxxx.
кр се та? :)))

То есть предпочитаете чтобы функция называлась не SystemCoreClockUpdate а SCCU и не важно что ничего не понятно?
Длинные имена не просто так, а чтобы было понятно что и для чего, т. е. самодокументируемый код. :)

Loyso Pondohva писал(а):успешно откомпилить и собрать blink для F411CEU
И какой получился размер прошивки?
Ответить