Stm configurations что за плагин

JetBrains CLion для микроконтроллеров

Stm configurations что за плагин. jgt2 obehz7m d nconkajcalv4. Stm configurations что за плагин фото. Stm configurations что за плагин-jgt2 obehz7m d nconkajcalv4. картинка Stm configurations что за плагин. картинка jgt2 obehz7m d nconkajcalv4

CLion — это среда для разработки на С/С++, близкий родственник IntelliJ IDEA и, соответственно, Android Studio.

Я представляю вниманию сообщества перевод моего блог поста, в котором по шагам описано, как использовать эту IDE для написания прошивок микроконтроллеров.

Примерно полтора года назад я написал блог-пост по английски, в котором рассказал, как можно использовать JetBrains CLion для программирования микроконтроллеров.

Если кратко, в тот раз я использовал одну из плат серии STM32-Discovery. Набортный программатор был перешит в совместимый с SEGGER JLink. Также был использован генератор кода STM32CubeMX, тулчейн GCC ARM и отладчик SEGGER Ozone. При помощи всего этого удалось поморгать светодиодиком :).

Такой набор инструментов в целом работал, но требовал перешивки программатора, запуска внешнего отладчика (зачем он нам, если есть замечательный CLion?), кроме того, SEGGER накладывает довольно жесткие лицензионные ограничения на такие перепрошитые программаторы.

Естественно, все эти проблемы меня не радовали, и я пытался найти решение получше. К счастью, прогресс не стоит на месте, и за прошедшее время и CLion, и CubeMX были существенно улучшены, и самое главное, CLion теперь поддерживает Remote GDB. Теперь стало реально использовать OpenOCD (Open On-Chip-Debugger) как ПО для заливки и отладки прошивок микроконтроллеров. Таким образом можно избавиться от ограничений лицензии SEGGER в пользу инструментов с открытым исходным кодом. Более не требуются никакие перепрошивки программаторов, демо-платы можно использовать прямо так, даже для прошивки целевых устройств (см. документацию на платы ST Nucleo или Discovery).

Мне удавалось запустить это все на ванильном CLion, но настройка проектов была настолько сложной, что я в конце концов пришел к мысли написать свой собственный плагин, который позволит увязать друг с другом все инструменты сразу. И вот, я довел плагин до бета-версии, опубликовал в репозитории JetBrains, и готов показать, как это все это функционирует. Для примера мы сделаем небольшой демо проект (сюрприз! Мы будем мигать светодиодами!), используя одну из самых популярных плат от ST Microelectronics – STM32F4-Discovery. Тот же самый пример, с небольшими изменениями, может быть запущен на любой плате из серий STM32 Nucleo, Discovery или EVAL, поскольку светодиоды есть на каждой из них.

Инструментарий

CLion

Прежде всего, нам нужна, собственно, IDE. CLion доступен для загрузки на сайте JetBrains. Просто запустите инсталлятор и следуйте инструкциям. Вам понадобится лицензия, но месячного триала должно хватить на первое время. Инструкция по установке тут.

Плагин

Откройте настройки CLion, вкладку Plugins, нажмите Browse Repositories… и найдите плагин по ключевому слову openocd. Далее Install и рестарт CLion.

Stm configurations что за плагин. image loader. Stm configurations что за плагин фото. Stm configurations что за плагин-image loader. картинка Stm configurations что за плагин. картинка image loaderТеперь в CLion появился еще один Run Configuration, два дополнительных пункта в меню Tools еще одна вкладка в настройках.

Тулчейн

Тулчейн (toolchain) – это кросс-платформенный набор инструментов для сборки программ и прошивок. Кросс-платформенный – это значит, что компиляция происходит на PC или Mac, а результат сборки будет работать только на целевом устройстве. В нашем случае это ARM-совместимый МК.

Существует несколько разных тулчейнов, таких как свободные и поддерживаемые CLion’ом Clang или GCC, а так же несколько коммерческих (Keil, IAR, Raisonance, etc). Я использую GCC, скачанный из официального источника – https://developer.arm.com/open-source/gnu-toolchain/gnu-rm. Обратите внимание, после установки тулчейн должен включен в system path. Проверить это можно, запустив arm-none-eabi-gcc из командной строки.

OpenOCD

OpenOCD – это отладчик, поддерживающий аппаратную отладку различных МК с помощью одного из множества поддерживаемых программаторов. Также он может прошивать FPGA и flash-память. Таким образом, потенциально можно работать с огромным количеством разных чипов, не ограничиваясь продукцией ST.

Из всех возможностей OpenOCD плагин использует три:

поддержка прошивальщика ST-Link/V2

Поддержку МК с ядром ARM Cortex M

Поддержку протокола Remote GDB

OpenOCD официально распространяется в виде исходников, но существуют также полуофициальные сборки под все популярные платформы. Более подробно смотрите тут: http://openocd.org/getting-openocd/. Под Windows еще нужен драйвер для ST-LINK/V2. Драйвер обычно идет в сборке OpenOCD для Windows, но можно его скачать и напрямую, с сайта ST, вместе с весьма удобной утилитой для прошивки МК, вот отсюда: http://www.st.com/en/development-tools/stsw-link004.html.

STM32CubeMX

Приступим

Одна из самых популярных плат для STмовских МК – STM32F4-Discovery. Ее и возьмем для нашего примера. На борту довольно мощный (хотя и не топовый) МК – STM32F407, прошиватель, совместимый с ST-LINK/V2, и 4 управляемых светодиода. Там еще микрофон, звуковой выход, акселерометр, USB, но в этой статье мы не будем углубляться в них – займемся только светодиодами. Если у вас уже есть какая-нибудь другая плата из серий STM32 Discovery, Eval или Nucleo, то это не беда, вы можете сделать все тоже самое на любой из них, т.к. там есть как минимум один светодиод.

Настройка платы

После установки всех инструментов давайте, наконец, напишем «улучшенную мигалку» для нашей STM32F4-Discovery. Перво-наперво, запускаем CubeMX. При старте он загружает список доступных МК и плат из сети, и после этого можно выбрать любой из МК. Естественно, мы больше заинтересованы в платах. Переходим в “Board Selector”, находим и дважды кликаем STM32F4DISCOVERY.

Stm configurations что за плагин. image loader. Stm configurations что за плагин фото. Stm configurations что за плагин-image loader. картинка Stm configurations что за плагин. картинка image loader

После этого откроется редактор, в котором показан собственно чип МК, и можно настроить режимы пинов, любую периферию и схему тактирования процессора, пользуясь тремя вкладками. На последней, четвертой, вкладке ничего настроить нельзя, но можно рассчитать энергопотребление чипа в зависимости от конфигурации.

Stm configurations что за плагин. image loader. Stm configurations что за плагин фото. Stm configurations что за плагин-image loader. картинка Stm configurations что за плагин. картинка image loader

Поскольку мы начали не с «голого» МК, а с платы, то кое-что уже сделано для нас. В частности, настроены нужные нам GPIO для светодиодов, им даже присвоены имена LD3. LD6. Нам только требуется донастроить сам проект и сгенерировать код. Нужно выбрать папку проектов, имя собственно проекта и задать SW4STM32 в качестве Toolchain/IDE.

Stm configurations что за плагин. image loader. Stm configurations что за плагин фото. Stm configurations что за плагин-image loader. картинка Stm configurations что за плагин. картинка image loader

Теперь нужно закрыть настройки и нажать Generate Code, т.е. кнопку с шестеренкой. Когда генерация кода закончена, просто закройте финальный диалог (т.е. не надо трогать кнопку «Open Project»).

Настройка параметров плагина.

Снова откройте настройки CLion, на этот раз вкладку OpenOCD Support в группе Build, Execution, Deployment.

Stm configurations что за плагин. image loader. Stm configurations что за плагин фото. Stm configurations что за плагин-image loader. картинка Stm configurations что за плагин. картинка image loaderТам необходимо указать папку, где находится OpenOCD и файл конфигурации для платы. Плагин пытается найти OpenOCD в system path сам, но иногда нужно явно прописать точное местонахождение. В большинстве случаев настройки портов и путь к GDB вам менять не надо, однако пользователям Mac все-таки нужен другой gdb. Например, можно взять arm-none-eabi-gdb из тулчейна.

Самое последнее, что нужно сделать – выбрать файл конфигурации платы (Board Config File) с помощью соответствующего диалога. Эти файлы находятся в подпапке boards инсталляции OpenOCD. Для данного проекта наилучшим выбором является, очевидно, stm32f4discovery.cfg.

А теперь добавим кода

Вот теперь мы все необходимые настройки сделаны, можно писать код. Открываем main.c, находим бесконечный цикл while и добавляем туда несколько строк, см. строки 106-111:

Stm configurations что за плагин. image loader. Stm configurations что за плагин фото. Stm configurations что за плагин-image loader. картинка Stm configurations что за плагин. картинка image loader

Эти строки зажигают случайную комбинацию светодиодов каждые 300 мсек.

Также можно добавить несколько директив #pragma (строки 100, 101 и 113) чтобы избавиться от предупреждений CLion – бесконечные циклы не используются в «нормальных» программах на C и, поэтому, они не нравятся нашей IDE.

Ключ на старт!

Настал момент поставить breakpoint где-нибудь внутри тела main() и запустить это все! CLion соберет проект, загрузит в нашу плату, запустит отладчик и сбросит МК. Теперь можно пользоваться breakpoints и watches для отладки.

Лучше один раз увидеть, чем три раза прочесть:

Что дальше?

Если уважаемому читателю удалось проделать все вышеописанное, то простенький пример прошивки работает. Но как писать код далее? Окей, вот несколько советов в форме вопрос-ответ.

Q: Какие платы поддерживаются?
A: Более-менее любые демо платы STMicroelectronics серий STM32 Discovery, Nucleo или EVAL должны работать.

Q: Что делать, если мне надо поменять аппаратную конфигурацию МК?
A: Запустите STM32CubeMX снова и откройте ваш проект, сделайте необходимые изменения и перегрерируйте код. Плагин в IDE спросит, не надо ли обновить проект. Просто ответьте «Yes».

Q: Мне нужно добавить внешнюю библиотеку, подключить FPU, сделать еще какие-то изменения в CMakeLists.txt. Но как?
A: CMakeLists.txt автоматически перезаписывается плагином из шаблона, напрямую там лучше ничего не менять. Сам шаблон автоматически записывается среди файлов проекта, следует сделать изменения там, после чего обновить проект, используя пункт меню Tools->Update CMake project with STM32CubeMX.

Q: Я хочу использовать CLion и плагин для моих разработок, но не для ARM. Это возможно?
A: Ну, если ваш МК поддерживается GCC, прошиватель совместим с OpenOCD, то как минимум можно попробовать. Возьмите подходящий тулчейн и см. предыдущий ответ.

Q: Я не могу подобрать подходящий файл конфигурации платы. Я могу использовать несколько отдельных файлов конфигурации?
A: Можно написать свой файл конфигурации платы, скомбинировав их. Положите его в свой проект, а за образец возьмите один из стандартных.

Q: А мне нравится! Могу я как-нибудь поддержать проект или поучаствовать в нем?
A: Конечно!

Источник

Наилегчайший старт в STM через «одно место»

Уже, наверное, прошло время религиозных войн AVR против STM, но нет-нет да наблюдаются вспышки столкновений двух лагерей. Практически у любой публикации на тему поделок на AVR обязательно будет каммент вроде «Да сколько уже можно лохматить бабушку, давно пора перейти на STM», дальше вариации на тему цены, количества ног и таймеров. Если STMщик более продвинут, обязательно будет указание, что DMA в AVR нет и не будет, по этому AVR должна умереть. Зачем простому блинку-вольтметру-градуснику DMA, гора 16 разрядных таймеров, 100 ног и 12 битный АЦП никто как правило не объясняет. Зачем нужен такой комбайн в устройстве, которое легко вывозит Tiny13, которая при этом не загружена даже на треть своих ресурсов никто не будет разбираться. Просто надо переходить на STM32, и баста. Ибо вот.

И надо сказать, есть у людей тяга к новизне. А действительно, может попробовать? А вдруг понравится? Вот только Референс Мануал на популярный STM32F103C8T6, на котором основана самая массовая Голубая таблетка в 1126 страниц что-то как-то не очень располагает к «быстрому старту». Даже отдельную утилиту, так ненавидимый аксакалами «калокуб», и ту надо изучать, что там к чему. Да и вникнув в Cube, стартовать за 5 минут вряд ли получится, генерируемая им портянка не самое доступное чтиво на ночь, просто «в лоб» врубиться, о чём там речь получится не у каждого.

Отдельной беседы заслуживают многочисленные статьи, похожие на эту, про быстрый и лёгкий старт в STM. У всех подобных статей меня первое время очень смущало одно обстоятельство. Нигде не присутствует подробное объяснение, а что мы тут собственно пишем. Куча скриншотов как создать проект, потом сразу стена кода-делай вот так! А что там, для чего там, почему именно так, откуда взять все эти вроде и понятные слова, никто не вникает, ибо силы кончились при написании мануала по установке Кейла и Куба, и по запуску проекта. Только спустя какое-то время, индивидуальное для каждого, приходит понимание, что происходит и зачем. В свою очередь, я предлагаю способ стартовать не с начала, как все, а с конца. Сейчас мы будем делать всё наоборот, не настраивать контроллер, писать код и дебажить его, а сразу перейдём к дебагу, и запротоколируем наши действия в виде кода.

Итак, устанавливаем Keil, как бесплатную (до 32КБ кода) среду. Описывать сие действо не будем, этого есть в интернетах, да и степ-бай-степ установщика должен осилить человек, который идёт в STM. Запускаем проект: Project-New uVision Project, создаём папку и файл проекта. Открывается окно выбора контроллера, в поиск вводим модель 103C8 и соглашаемся на единственную отобранную модель.

Далее попадаем в окно выбора библиотек:

Stm configurations что за плагин. . Stm configurations что за плагин фото. Stm configurations что за плагин-. картинка Stm configurations что за плагин. картинка

Здесь ставим три галки: CMSIS-CORE, Device-Startup и Device-GPIO. Этого набора вполне хватит, чтобы подрыгать ножкой, зажигая светодиодик. Дальше придётся-таки понастраивать, никуда от этого не денешься. Alt+F7 запускают окно настроек, расположенное Project-Options for Target, где на вкладке «Output» надо поставить галку «Create HEX-File», чтобы создался файл прошивки, которую мы будем загружать в контроллер. Далее, во вкладке «Debug» мы выберем ST-Link, которым, собственно, и будем загружать прошивку и дебажить:

Stm configurations что за плагин. kduw6ltbrav uadgbbrp93w5oke. Stm configurations что за плагин фото. Stm configurations что за плагин-kduw6ltbrav uadgbbrp93w5oke. картинка Stm configurations что за плагин. картинка kduw6ltbrav uadgbbrp93w5oke

По кнопке «Setting» рядом с окошком выбора программатора попадаем в окно «Cortex-M Target Driver Setup», где во вкладке «Flash Download» ставим галку «Reset and Run».

В дереве проекта ткнём правой кнопкой в папку «Source Group 1», в открывшемся визарде создадим файл main.c, в который скоро будем писать код. В открывшемся main.c по правой кнопке вставляем самый первый и самый важный инклюд:

Stm configurations что за плагин. qczpjupur2s0vqx reffsuzy5qo. Stm configurations что за плагин фото. Stm configurations что за плагин-qczpjupur2s0vqx reffsuzy5qo. картинка Stm configurations что за плагин. картинка qczpjupur2s0vqx reffsuzy5qo

Дописываем код, состоящий из main и бесконечного while:

Как ни странно, это всё на сей момент, это уже готовая и понятная программа, которая корректно компилируется и загружается в контроллер. Нажимаем F7 и видим, что прошивка удачно собрана, ошибок и варнингов нет.

Stm configurations что за плагин. . Stm configurations что за плагин фото. Stm configurations что за плагин-. картинка Stm configurations что за плагин. картинка

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

Клавиши Ctrl+F5 ведут нас в дебаг, а кнопка «System Viewer Windows» позволяет запустить окошки контроля регистров тактирования и управления ногами GPIO.

Stm configurations что за плагин. 1eriu1hhnribtydyhsaq i36lr4. Stm configurations что за плагин фото. Stm configurations что за плагин-1eriu1hhnribtydyhsaq i36lr4. картинка Stm configurations что за плагин. картинка 1eriu1hhnribtydyhsaq i36lr4

Далее предлагаю всё-таки воспользоваться Reference Manual, тем более, что его даже скачивать не надо, он доступен по клику во вкладке «Books» меню «View»:

Stm configurations что за плагин. . Stm configurations что за плагин фото. Stm configurations что за плагин-. картинка Stm configurations что за плагин. картинка

Теперь предлагаю воспользоваться следующим рассуждением. Из распиновки на Голубую Таблетку видно, что светодиод висит на ноге 13 порта С. Многочисленные инет-ресурсы и обсуждения всегда упоминают, что прежде, чем что-то сделать в STM, это что-то надо включить, иначе-подать тактирование. Не мудрствуя лукаво, пишем в окно поиска pdf-читалки то, что нам надо, а именно-включить порт C: «PORT C CLOCK ENABLE». Получаем во такую картину:

Stm configurations что за плагин. qflhvsoyc3fhyds54. Stm configurations что за плагин фото. Stm configurations что за плагин-qflhvsoyc3fhyds54. картинка Stm configurations что за плагин. картинка qflhvsoyc3fhyds54

Отсюда можно сделать вывод, что включение тактирования порта С осуществляется в регистре IOPCEN. С этим знанием идём во вкладку RCC в режиме дебага, и вписываем это название в строку поиска:

Stm configurations что за плагин. z0x43qbnbga. Stm configurations что за плагин фото. Stm configurations что за плагин-z0x43qbnbga. картинка Stm configurations что за плагин. картинка z0x43qbnbga

Помечаем требуемый чекбокс галочкой, и с этого момента считаем порт С включенным.

Теперь, вспомная многострадальный AVR, будем искать настройку собственно пина. Для того, чтобы он заработал, надо объяснить, что именно мы от него хотим. А хотим мы подрыгать ногой номер 13 порта С, для этого надо задать режим её работы. В строке поиска в Referense Manual вбиваем «Port bit configuration», чем выразим своё желание прочитать, где же спрятаны настройки ножки. Поиск приводит нас к таблице, из которой следует, что для того, чтобы назначить ногу выходом, требуется сконфигурировать регистры MODE и CNF:

Stm configurations что за плагин. . Stm configurations что за плагин фото. Stm configurations что за плагин-. картинка Stm configurations что за плагин. картинка

Из таблицы №20 видно, что для назначения ножки выходом Push-Pull надо сбросить регистры CNF0 и CNF1, а состояние пары MODE0 и MODE1 описано в таблице №21, я выберу верхний вариант, до 10MHz, MODE0=1, MODE1=0. Это я и проделаю в окне GPIOC для регистров CNF13 и MODE13

Stm configurations что за плагин. . Stm configurations что за плагин фото. Stm configurations что за плагин-. картинка Stm configurations что за плагин. картинка

Теперь у нас настроено тактирование и режим работы порта. Самое время узнать, как именно дрыгнуть ножкой. По английски установить бит порта пишется как «Port bit set», эту фразу и будем искать в мануале:

Stm configurations что за плагин. . Stm configurations что за плагин фото. Stm configurations что за плагин-. картинка Stm configurations что за плагин. картинка

Поиск приводит нас на страницу с таблицей, из которой явно видно, что за установку состояния ножки порта отвечает регистр BSRR, состоящий из пар BS и BR, Bit set и Bit reset соответственно. Находим эти регистры в окне GPIOC в режиме дебага и наслаждаемся управлением ногой №13 напрямую, тыкая мышкой галки в соответствующие чекбоксы:

Stm configurations что за плагин. obvjc3gnvzem1sh6tecfly7quyk. Stm configurations что за плагин фото. Stm configurations что за плагин-obvjc3gnvzem1sh6tecfly7quyk. картинка Stm configurations что за плагин. картинка obvjc3gnvzem1sh6tecfly7quyk

Светодиод на плате голубой пилюли висит между ногой и VCC, по этому управление им обратно названию регистров. Bit Set (регистр BS13) тушит его, а Bit Reset (регистр BR13) зажигает. Это регистры атомарных операций, они сбрасываются после установки чекбокса. Есть возможность управлять ногой через регистр ODR, (пункт 9.2.4 Port output data register (GPIOx_ODR) в референс мануале), там наглядно видно, к чему приводит установка и сброс галки.

Stm configurations что за плагин. nvrdouc1ano fn8gdpdplk2v5rq. Stm configurations что за плагин фото. Stm configurations что за плагин-nvrdouc1ano fn8gdpdplk2v5rq. картинка Stm configurations что за плагин. картинка nvrdouc1ano fn8gdpdplk2v5rq

Горящий и тухнущий зелёный светодиод показывает, что всё работает верно. Остаётся только записать всё это в виде кода в файл main.c. Вот тут и появляется самый изюм, который отличает этот способ постижения контроллера STM через дебаг от остальных, которыми завален весь интернет. Я предлагаю просто переписать то, что видим в окне дебага в код. Пример:

Stm configurations что за плагин. . Stm configurations что за плагин фото. Stm configurations что за плагин-. картинка Stm configurations что за плагин. картинка

Задали режим работы порта и включили тактирование;

Stm configurations что за плагин. iua. Stm configurations что за плагин фото. Stm configurations что за плагин-iua. картинка Stm configurations что за плагин. картинка iua

Включили ножку порта, подождали, выключили и так далее:

Само собой, данный способ далеко не лучший и не правильный, но по моему мнению наиболее понятный и простой. К тому же, он приобщает к работе с даташитом (референс мануалом) и не отпугивает, как чтение манов и написание многостраничных портянок кода для Блинка. Да, здесь нет наслоений абстракций, упущено многое, но за элементарность старта я думаю можно это простить. Чтение мана и правильная работа с регистрами это потом, сейчас у нас моргает светодиод и нам в принципе понятно, как и что мы сделали, а самое главное, откуда взялись все эти аббревиатуры. Если бы мне показали такой способ изучения STM раньше, возможно я бы не собирал over 9000 разных программаторов для AVR в которых так и не было дебага, а взялся бы сразу за Кортексы. Ведь в AVR так и нет внятного и доступного дебага, но всё равно, забывать Tiny13 пока рано. Свои задачи она вывозит.

Источник

CubeMX и Workbench: создание проекта на базе STM32 с помощью бесплатного ПО

Stm configurations что за плагин. NE 2016 02 CubeMX Workbench. Stm configurations что за плагин фото. Stm configurations что за плагин-NE 2016 02 CubeMX Workbench. картинка Stm configurations что за плагин. картинка NE 2016 02 CubeMX Workbench

Stm configurations что за плагин. st. Stm configurations что за плагин фото. Stm configurations что за плагин-st. картинка Stm configurations что за плагин. картинка stВизуальный графический редактор STM32CubeMX и среда разработки System Workbench for STM32 (краткое обозначение – SW4STM32) – лучший способ быстрой, наглядной, простой в освоении бесплатной разработки системы на базе микроконтроллеров семейства STM32.

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

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

Однако два новых продукта – STM32CubeMX и System Workbech for STM32 – предназначенных для работы с микроконтроллерами STMicroelectronics, выделяются целым рядом несомненных достоинств, призванных обеспечить дальнейшую популяризацию среди разработчиков семейства 32-разрядных микроконтроллеров STM32.

STM32CubeMX – конфигуратор для микроконтроллеров STMicroelectronics

STM32CubeMX является визуальным графическим редактором для конфигурирования микроконтроллеров семейства STM32, позволяющим генерировать код на основе языка Си, используя для этого графических помощников.

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

Тем не менее, при всех отмеченных ограничениях имеющиеся достоинства позволяют с успехом во многих случаях использовать генераторы кода для инициализации МК.

Созданный компанией STMicroelectronics программный пакет STM32CubeMX представляет собой настоящее автоматизированное рабочее место для разработчиков систем на базе 32-битных микроконтроллеров STM32, выполненных на основе ядер ARM Cortex. Это удобная среда для полноценной настройки конфигурации МК с выдачей пакета файлов инициализации, пригодных для дальнейшего использования в ряде систем разработки и отладки управляющего кода МК. STM32CubeMX значительно упрощает создание встраиваемого ПО, ускоряет этот процесс, не требует от начинающих специалистов досконального знания документации на МК, позволяет обойтись начальными сведениями об аппаратной и программной архитектуре контроллера, о возможностях библиотек ПО. STM32CubeMX отчасти позволяет эффективно совместить работу над своими первыми проектами с изучением возможностей МК.

Для опытных разработчиков STM32CubeMX (рисунок 1) станет удобной средой со всеми необходимыми для работы интегрированными инструментами. Пакет является частью фирменного программного обеспечения STMicroelectronics STM32CubeMX, призванного облегчить труд разработчиков, сократить длительность исполнения и стоимость проектов.

Stm configurations что за плагин. 44291. Stm configurations что за плагин фото. Stm configurations что за плагин-44291. картинка Stm configurations что за плагин. картинка 44291

Рис. 1. Состав STMCubeMX

STM32CubeMX является расширением другого инструмента – MicroXplorer – и состоит из набора модулей многоуровневого встраиваемого ПО. Он обеспечивает удобное и наглядное отображение и конфигурацию внешних выводов и внутренних ресурсов микроконтроллера с созданием на выходе соответствующей программы инициализации на языке С/C++, которая пригодна для последующего дополнения управляющим кодом.

В состав STM32CubeMX входят также программные библиотеки для отдельных серий МК (такие как STM32CubeF7 для серии STM32F7), скачиваемые с сервера производителя при создании первого проекта. Они сохраняются в дисковом пространстве локального компьютера в специальном каталоге под названием репозиторий c возможностью дальнейшего их использования в разнообразных приложениях. Такие библиотеки включают STM32Cube HAL (уровень абстракции встроенного ПО, обеспечивающий максимальную взаимозаменяемость МК семейства STM32), а также согласованный набор компонентов библиотечного ПО MiddleWare (RTOS, USB, TCP/IP и графика). Все утилиты встроенного ПО имеют полноценный комплект примеров (рисунок 2).

Stm configurations что за плагин. ris 2 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 2 opt. картинка Stm configurations что за плагин. картинка ris 2 opt

Рис. 2. Алгоритм работы STMCubeMX

При создании нового проекта STM32Cube предлагает сделать выбор из открывающегося в меню “New Project” перечня контроллеров и плат отладки. Первый шаг включает выбор микроконтроллера из обширного ассортимента компании STMicroelectronics, который бы соответствовал имеющимся требованиям по периферийным возможностям, производительности ядра, объему и типу встроенной памяти, набору периферии. Здесь же можно выбрать плату для отладки проекта.

Удобная система фильтрации моделей позволяет ограничивать отображаемые списки рамками определенных семейств или заданными параметрами, включая поддержку необходимого количества каналов ЦАП и АЦП, Ethernet, USB, CAN, объем массивов встроенной Flash-памяти, RAM, EEPROM и другие возможности.

STM32CubeMX обеспечивает интуитивно понятный, визуальный графический интерфейс с четырьмя закладки для настройки используемого в проекте контроллера: Pinout, Clock Configuration, Configuration и Power Consumption Calculator.

В процессе работы над своим проектом пользователь может конфигурировать и настраивать используемое встроенное ПО. Для этого предлагаются мастер распиновки (назначения выводов), мастер синхронизации (настройки схемы тактирования), калькулятор энергопотребления, утилита конфигурации периферийных модулей микроконтроллера (GPIO, USART и так далее) и набор библиотек (USB, TCP/IP и другие).

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

Конфигурация выводов (Pinout)

После выбора МК на вкладке “Pinout” (рисунок 3) в правом окне визуального интерфейса открывается схематическое изображение всех выводов микроконтроллера с их обозначениями, а в левом окне обозревателя будет доступна конфигурация поддерживаемых периферийных функций и библиотек MiddleWares.

Stm configurations что за плагин. ris 3 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 3 opt. картинка Stm configurations что за плагин. картинка ris 3 opt

Рис. 3. Рабочий экран STMCubeMX (вкладка Pinout)

Clock Configuration

В окне “Clock Configuration” представлено упрощенное схематическое изображение всей системы синхронизации контроллера с источниками сигналов, делителями и мультиплексорами.

На вкладке “Clock Configuratiuon” обеспечена автоматическая конфигурация системы тактирования и часов реального времени в зависимости от выбранных разработчиком источников и требуемой частоты выходного сигнала. Если нет особых требований, можно все оставить по умолчанию, с тактированием от имеющегося в микроконтроллере внутреннего RC-генератора на 16 МГц (HSI RC). Либо можно выбрать один из типов внешнего источника тактирования (HSE). Для этого нужно выполнить настройки во вкладке Peripherals, раздел RCC (reset clock control). А мастер конфигурации тактирования сам автоматически выполнит необходимые настройки в схеме синхронизации внутренних регистров и периферии микроконтроллера. При необходимости он использует встроенную систему PLL (ФАПЧ). Источники, используемые для тактирования и работы часов реального времени, обозначены на рисунке 4 в виде голубых блоков.

Stm configurations что за плагин. ris 4 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 4 opt. картинка Stm configurations что за плагин. картинка ris 4 opt

Рис. 4. Рабочий экран системы тактирования STMCubeMX

Configuration

В окне конфигурации STMCubeMX (рисунок 5) отображается конфигурация всех программных компонентов: порты ввода/вывода (GPIO), связь с периферией, межплатформенное ПО (MiddleWare).

Stm configurations что за плагин. ris 5 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 5 opt. картинка Stm configurations что за плагин. картинка ris 5 opt

Рис. 5. Рабочий экран Configuration

Активируемые кнопки позволяют выбирать сгруппированные по разделам параметры инициализации компонентов проекта, которые будут включены в создаваемый код инициализации контроллера. Цветные метки на кнопке отражают состояние конфигурации. Зеленый цвет – корректная конфигурация. Желтый – неполная, но функционально действующая конфигурация. Красный – неверная конфигурация.

Все доступные в правой панели элементы сгруппированы по разделам: MiddleWares, Мультимедиа, Управление, Аналоговые функции, Интерфейсы, Система. Выделение отдельных позиций черным шрифтом соответствует их доступности, но не завершенной полностью при рабочем состоянии конфигурации.

Элементы в правой панели конфигурации MiddleWare и Peripherals доступны здесь в урезанном виде, их редактирование и настройка выполняются только через вкладку Pinout.

Power Consumption Calculator

Снижение потребляемой энергии сегодня становится серьезной задачей при создании многих встраиваемых систем и автономных устройств. Чтобы помочь свести энергопотребление к минимуму, STMCubeMX предлагает имеющийся в составе программы калькулятор потребляемой мощности (рисунок 6).

Stm configurations что за плагин. ris 6 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 6 opt. картинка Stm configurations что за плагин. картинка ris 6 opt

Рис. 6. Рабочий экран калькулятора энергопотребления

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

Power Consumption Calculator позволяет задавать рабочие режимы для контроллера проектируемого устройства. При этом в каждом случае можно указать активную периферию. В отдельном списке предлагается выбрать тип используемой батареи из имеющихся в базе данных или задать параметры другой батареи. Таким образом, можно создать полный профиль энергетической конфигурации устройства, сформировать отчет и сохранить его в одном из наиболее удобных форматов.

Этот программный инструмент позволяет быстро оценить энергетические затраты разрабатываемой системы и степень ее автономности, критически важные в условиях энергосбережения.

После завершения настройки проекта (рисунок 7) разработчик генерирует на базе созданной конфигурации программный код на языке С. Он пригоден к использованию с рядом IDE, включая System Workbench for STM32 (SW4STM32) MDK-ARM, EWARM, TrueSTUDIO. Выбор среды IDE доступен через меню: Project → Settings, далее – в окне, раскрывающемся под строкой Toolchain/IDE. В этом же окне доступна для редактирования строка с названием вашего проекта (Project Name) и строка его расположения.

Stm configurations что за плагин. ris 7 opt 1. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 7 opt 1. картинка Stm configurations что за плагин. картинка ris 7 opt 1

Рис. 7. Настройка генератора проекта в STM32CubeMX

Исходное место расположения для копируемых в проект библиотек (так называемый репозиторий) по умолчанию после установки STMCubeMX находится на диске С в папке «Мои документы». Откуда его (папка “Repository”) при желании можно переместить в любое более удобное для вас место, не забыв при этом сделать соответствующие изменения в настройках программы STM32CubeMX через меню Help → Updater Settings.

Далее, в Project Settings меню “Project” необходимо перейти на вкладку “Code Generator” для того чтобы выбрать необходимые опции генерации. Здесь имеется трехпозиционный переключатель варианта использования библиотек встраиваемого ПО. Наиболее оптимален вариант по умолчанию – копирование необходимых библиотек в папку проекта. Ниже, в группе “Generated Files” следует отметить первую и вторую строки для генерации файлов инициализации МК в форматах “.c” и “.h”, а также для сохранения при повторной генерации прежних файлов в качестве резервных.

При доработке ранее выполненных проектов разработчику остается лишь сделать в нем необходимые дополнения, проверить корректность конфигурации и повторить генерацию финального кода проекта. Для этого нужно в меню “Project” выбрать пункт “Generate Code”, либо Ctrl+Shift+G, или просто нажать соответствующий символ в строке инструментов. Полученный код сохраняется на компьютере и может быть использован в других проектах.

Если все было выполнено без ошибок, проект должен корректно открыться для дальнейшего редактирования в соответствующей среде разработки прикладного ПО. Код инициализации для STM32, генерируемый на языке C, может быть использован с компиляторами IAR, Keil и GCC.

AC6 System Workbench for STM32 – среда для разработки ПО микроконтроллеров STM32

Свободно распространяемая интегрированная среда AC6 System Workbench for STM32, созданная компанией STMicroelectronics совместно с партнерами, предназначена для разработки прикладного программного обеспечения оборудования на основе микроконтроллеров STM32. Пакет базируется на Eclipse\GCC и полностью бесплатен. Сегодня лишь немногие производители микроконтроллеров создают собственные инструменты для разработки встраиваемого ПО, предоставляя эту деятельность сторонним разработчикам, которые, в основном, предлагают коммерческие версии своих продуктов. Хотя параллельно с коммерческими пакетами средств разработки ПО зачастую имеются и бесплатные варианты. Но они имеют скорее маркетинговое предназначение и, как правило, обладают серьезными ограничениями, зачастую мешающими нормальному процессу разработки. Созданная для микроконтроллеров STM32 бесплатная среда “System Workbench” лишена подобных недостатков и позволяет значительно упростить и ускорить разработку прикладного ПО для микроконтроллеров всего семейства STM32.

Важно и то, что весь пакет SW4STM32 может быть бесплатно загружен с веб-сайта www.openstm32.org, который также включает форумы, блоги и обучающие курсы для технической поддержки разработчиков. Все ресурсы сайта становятся полностью доступными сразу после регистрации пользователя. AC6 System Workbench for STM32 не имеет каких-либо ограничений и отличается удобным в настройке и работе визуальным интерфейсом.

Особенности Workbench for STM32:

Новый программный инструмент для STM32 имеет и другое, рабочее название – SW4STM32. Он выполнен на основе набора плагинов к популярной среде разработки Eclipse. SW4STM32 может поддерживать программирование многоядерных асимметричных однокристальных систем (SoC), например, Cortex-A и Cortex-M.

System Workbench for STM32 может устанавливаться для работы под Windows или Linux как в качестве дополнения к Eclipse, так и в виде отдельно устанавливаемого пакета. Оба варианта можно свободно скачать на сайте http://www.openstm32.org/ сразу после регистрации.

В среде SW4STM32 обеспечена всесторонняя поддержка микроконтроллеров STM32, оценочных плат и комплектов Nucleo и Discovery с набором периферии, а также библиотек ПО (Standard Peripheral library и Cube HAL). На рисунке 8 схематично представлен состав компонентов SW4STM32 и принцип их взаимодействия.

Stm configurations что за плагин. 44883. Stm configurations что за плагин фото. Stm configurations что за плагин-44883. картинка Stm configurations что за плагин. картинка 44883

Рис. 8. Архитектура System Workbench for STM 32

SW4STM32 включает в себя все инструменты, необходимые для успешной разработки, и может легко интегрироваться с плагинами для Eclipse. Для работы с периферийными задачами в состав SW4STM32 включены библиотеки SPL и HAL, могут использоваться пользовательские библиотеки, стек USB и RTOS. В составе SW4STM32 имеется встроенный отладчик.

При создании нового проекта вы определяете используемый МК и стандартную плату, с которой намерены работать, либо используете собственный разрабатываемый макет. После этого Workbench for STM32 автоматически извлекает и конфигурирует необходимое встроенное ПО, используя для работы с периферией библиотеки в прежнем формате StdPeriph или новом – HAL. Созданный код инициализации C или C++ готов для редактирования, компилирования и отладки.

Установка System Workbench for STM32

IDE System Workbench for STM32 может быть установлена на платформы: Linux и Microsoft Windows – Vista и более новые версии. При этом на компьютере уже должен быть установлен пакет Java SE JRE 7 или более новые варианты. Минимальные аппаратные требования к компьютеру: 1 Гбайт RAM и 2 Гбайт свободного дискового пространства.

Рассмотрим процесс установки подробнее. Как известно, при этом имеются два варианта. Первый – когда System Workbench for STM32 состоит из набора плагинов для интегрированной среды разработки Eclipse (Juno или Kepler), и ее можно установить поверх этой платформы.

Второй вариант предусматривает отдельную IDE – System Workbench for STM32. Причем вначале предлагается скачать программу-инсталлятор в виде исполняемого файла. Последнюю версию install_sw4stm32_win_64bits-latest.exe всегда можно получить на официальном сайте.

Также необходимо учесть установку драйвера для соединения и работы через интерфейс ST-Link при отладке проекта в составе платы с программатором.

Если после запуска скачанного файла появляется сообщение об отсутствии необходимой версии Java – необходимо нажать “Ok” для того, чтобы система вышла на сайт Oracle для загрузки последней версии Java. Дальнейший процесс установки – достаточно стандартный. В качестве места установки по умолчанию предлагается корневая директория: C:\Ac6\SystemWorkbench, что рекомендуется принять.

В процессе установки или работы с System Workbench for STM32 не требуется постоянный доступ в интернет. Однако соединение с интернетом понадобится для загрузки с сервера www.st.com библиотек STM32 для контроллеров и плат на первом этапе создания проекта, если вы работаете с этими моделями впервые.

После установки и первого запуска System Workbench for STM32 появляется экран приветствия, закрыв который, мы видим разбитый на несколько рабочих зон графический интерфейс пользователя (рисунок 9). В левой вертикальной панели обозревателя в виде отдельных папок размещаются все элементы создаваемых и открываемых проектов.

Stm configurations что за плагин. ris 9 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 9 opt. картинка Stm configurations что за плагин. картинка ris 9 opt

Рис. 9. Рабочий экран System Workbench for STM32

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

Впрочем, вид и назначение этой панели можно менять с помощью элементов меню в верхней части, вплоть до полного ее закрытия. Справа, в строке меню основных команд, есть кнопка “Open Percpective”, позволяющая, в дополнение к основному окну С/С++, добавить еще целый ряд вкладок, включая кнопку для переключения рабочего экрана создания проекта С/С++ в режим его отладки (рисунок 10).

Stm configurations что за плагин. ris 10 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 10 opt. картинка Stm configurations что за плагин. картинка ris 10 opt

Рис. 10. Рабочий экран System Workbench for STM32 в режиме отладки

В нижней горизонтальной панели имеется ряд информационных вкладок, включая вкладку “Problems”, в которой выводится дополнительная информация о возникающих в процессе работы ошибках и конфликтах. В этом поле также могут выводиться сообщения об ошибках проекта при написании кода и при его компиляции, информация о скомпилированном файле. Через этот раздел также можно выйти на проблемные элементы в проекте.

Большая панель посредине – это основное поле редактора проекта, в котором создается и редактируется исполняемый код.

Далее рассмотрим практическое применение STM32CubeMX и System Workbench for STM32 в процессе создания простейшего проекта с использованием контроллера STM32, который будет способен управлять мерцанием светодиода, подключенного к одному из выходов МК.

Создание первого проекта

Для решения этой задачи используем МК STM32F746NGH6 в составе отладочной платы STM32F746G-DISCO.

Первым делом создаем проект в STM32CubeMX через меню: File → New Project. В открывающемся окне выбираем контроллер STM32F746NGH6.

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

В нашем простейшем примере мы можем оставить многие настройки по умолчанию, настроив лишь один из портов общего назначения для ввода-вывода (GPIO) во вкладке “Pinout”. Для решения нашей задачи выберем PI1.

Для того чтобы использовать светодиод, подключенный к выводу PI1, нам необходимо выбрать для этого порта режим работы GPIO_Out. Быстрее найти PI1 на обширном контактном поле можно, если ввести это обозначение вывода в окно “Find” (рисунок 11). После этого символизирующий вывод кружок на контактном поле МК начнет мерцать. После выбора вывода с помощью левой кнопки мыши раскрывается меню с доступными для него режимами использования. Выбираем необходимый нам GPIO_Output. В результате цвет вывода меняется на зеленый и на нем появляется изображение кнопки.

Stm configurations что за плагин. ris 11 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 11 opt. картинка Stm configurations что за плагин. картинка ris 11 opt

Рис. 11. Выбор используемого вывода микроконтроллера в STM32CubeMХ

На вкладке Pinout нам также необходимо для последующей прошивки МК разрешить работу с программатором. Для этого в окне обозревателя раскрываем строку “SYS” в разделе “Pereripherals”. В раскрывшемся после этого списке, в окне строки “Debug”, выбираем интерфейс отладки “Serial Wire Debug (SWD)”.

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

Во вкладке “Configuration” после выбора порта PI1 появляется раздел “GPIO”, где мы можем при необходимости выполнить детальную настройку режима работы порта по выходу и создать метку для этого вывода, например, LED.

Пользоваться калькулятором потребляемой мощности на вкладке “Power Consuption Calculator” в данном случае нет необходимости.

На финальном этапе осталось выбрать название и место размещения проекта на диске компьютера, а также уточнить настройки для процесса генерации кода проекта. Для этого заходим в соответствующий раздел меню: “Project → Settings”.

Здесь, во вкладке “Code Generator” нужно поставить недостающие метки в строках раздела “Generated files”, а также разрешить “Enable Full Assert” для HAL Settings и перевести неиспользуемые выводы в режим минимального энергопотребления.

Во вкладке “Project” нужно дать проекту название (например, ledtest), а также можно выбрать удобное место размещения проекта. Будет лучше, если этот каталог совпадет с рабочим каталогом для System Workbench for STM32.

В строке “Toolchain/IDE” необходимо выбрать следующий рабочий инструмент – SW4STM32. В завершение нажимаем “Ok”.

Все созданные настройки можно будет проконтролировать в отдельном файле, создаваемом после запуска команды: Project → Generate Report. А для генерации кода проекта запускаем финальную операцию: Project → Generate Code.

На следующем этапе нам необходимо будет импортировать полученный код проекта в среду SW4STM32, добавить в файл исполняемого кода функцию циклического переключения выходного порта PI1, скомпилировать созданный проект и запустить полученный файл для отладки.

Импорт сгенерированного в STM32CubeMX проекта в System Workbench

Открываем “System Workbench for STM32”, с заданием при первом запуске в качестве рабочего пространства каталога, где сохранены рабочие файлы STM32CubeMX. Изменить рабочее пространство можно впоследствии через меню: File → Switch Workspace.

Импортировать созданный в CubeMX проект в окно “Project Explorer” можно через меню: File → Import. В появившемся окне “Import” нужно развернуть раздел “General”, где выбирается строка “Existing Project into Workspace”. После нажатия на кнопку “Next” появляется очередное окно, где в строке “Select root directory” нужно выбрать каталог рабочего файла. В нашем случае это будет C:\workspace\ledtest. После этого в поле “Proejcts:” появляется строка ledtest Configuration и активизируется кнопка “Finish”. После нажатия на нее в окне “Project Explorer” появляется файловая структура импортированного из CubeMX проекта в виде основной папки ledtest Configuration c вложениями (рисунок 12).

Stm configurations что за плагин. ris 12 opt. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 12 opt. картинка Stm configurations что за плагин. картинка ris 12 opt

Рис. 12. Добавление проекта в SystemWorkbench for STM32

Настройка проекта для отладки

Теперь наш рабочий код для управления мерцанием светодиода необходимо добавить в файл “main.c”, расположенный в папке “ledtest Configuration\Application\User”.

При этом все дополнительные пользовательские командные строки в этом файле должны размещаться только в промежутке между строками “USER CODE BEGIN x” и “USER CODE END x”. В данном случае добавляем код в структуру оператора “while (1)”.

Для постоянного переключения выходного порта GPIO берем имеющуюся в нашей библиотеке функцию HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin). Найти ее можно через окно обозревателя проектов, открыв папки “Drivers\STM32F7xx_HAL_Driver\stm32f7xx_hal_gpio.c”. Открыв последнюю папку двойным щелчком мыши, мы одновременно раскрываем ее содержимое в центральном окне редактора кода. При этом в правой панели “Outline” появляется удобный перечень ее заголовков для поиска и навигации в центральном окне. Таким образом, мы можем быстро найти функцию HAL_GPIO_TogglePin с кратким описанием здесь же в комментариях. Скопировав отсюда название функции, мы возвращаемся во вкладку “main.c” и вставляем эту функцию в тело оператора “while (1)”, заменив общее описание параметров функции на заданный вывод (1) в составе порта I: (GPIOI,GPIO_PIN_1) (рисунок 13).

Stm configurations что за плагин. ris 13 opt 1. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 13 opt 1. картинка Stm configurations что за плагин. картинка ris 13 opt 1

Рис. 13. Редактирование “main.c” в “System Workbench”

Теперь в процесс переключения нужно добавить задержку, что можно сделать с помощью функции HAL_Delay с аргументом в 500 мс.

На этом создание проектного кода в “System Workbench” завершается. Остается с помощью компилятора получить двоичный файл для отладки созданной программы непосредственно на МК. Не забыв сохранить выполненные изменения в проекте, запускаем компиляцию через Project → Built All (или Control + B). В случае успешного завершения этой операции в структуре папки проекта появляется дополнительная строка “Binaries”. Открыв ее, мы увидим выходной двоичный файл нашего проекта с расширением “.elf”.

Для запуска процесса отладки есть несколько вариантов, включая выделенную кнопку отладки в панели инструментов или F11. Но, для того чтобы любой из них сработал, необходимо в качестве конфигурации отладки указать “As6 STM32 Debugging”. Сделать это можно, в частности, через меню: Run → Debug Settings (рисунок 14), которое доступно через свойства проекта (“Properties”).

Stm configurations что за плагин. ris 14 opt 1. Stm configurations что за плагин фото. Stm configurations что за плагин-ris 14 opt 1. картинка Stm configurations что за плагин. картинка ris 14 opt 1

Рис. 14. Настройка Run\Debug Settings

Нажимаем кнопку “New” и выбираем из предложенного списка “As6 STM32 Debugging”. Затем через “Ok” закрываем все открытые окна. Если проект к этому времени был скомпилирован, то соответствующий двоичный файл с кодом проекта подключается к конфигурации отладки.

По завершении настройки отладчика можно приступать непосредственно к самому процессу отладки. Но перед этим необходимо к порту USB компьютера подключить плату с контроллером через интерфейс ST-Link. Затем следует убедиться в появлении нашей платы среди подключенной к компьютеру периферии и после этого приступать к отладке.

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

Окно “Debug” позволяет управлять запуском и отладкой программы. В нем отображается фрейм стека для приостановленных потоков отлаживаемой программы. Каждый поток отображается как отдельный узел в общей структуре.

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

В самом нижнем окне экрана отладки размещены вкладки консоли для отображения хода процесса, имеющихся задач, выявленных ошибок и исполняемых файлов.

Заключение

Современные микроконтроллеры, включая предлагаемое компанией STMicroelectronics семейство STM32, обладают высочайшей производительностью и расширенными функциональными возможностями. Они позволяют создавать широкий спектр разнообразных устройств и встраиваемых систем. Однако их освоение порой вызывает определенные затруднения и требует для этого серьезных временных ресурсов. Ускорить и упростить эти процессы помогают новые программные инструменты, в числе которых – STM32CubeMX и System Workbench for STM32. Учитывая свободный доступ к этим инструментам и активную поддержку пользователей со стороны производителей, можно надеяться, что они займут достойное место средств разработки в арсенале специалистов, найдут широкое применение в повседневной практике любителей.

Литература

Stm configurations что за плагин. ST STM32L4 NE 02 16. Stm configurations что за плагин фото. Stm configurations что за плагин-ST STM32L4 NE 02 16. картинка Stm configurations что за плагин. картинка ST STM32L4 NE 02 16

Компании Semtech и STMicroelectro­nics вместе развивают технологию LoRa® для «Интернета вещей» (IoT)

Semtech Corporation, ведущий поставщик полупроводников аналоговых и смешанных сигналов, и STMicroelectronics, мировой лидер полупроводниковой электроники, объявили о заключении соглашения по реализации беспроводной радиочастотной технологии дальнего действия Semtech LoRa®. ST намерен использовать эту технологию с ориентиром на операторов мобильной связи, которые заинтересованы в построении крупномасштабных частных сетей. ST присоединится к альянсу компаний LoRa (LoRa Alliance) и сделает опорную разработку решения LoRa на основе своего семейства микроконтроллеров STM32. В дальнейшем планируется разработка микроконтроллеров с интегрированной технологией LoRa, поддерживающей стандартный протокол LoRaWAN™. Semtech и ST будут сотрудничать в интеграции технологии LoRa на несколько платформ, ориентированных на приложения некоторых из бизнес-проектов LoRa.

LoRa Alliance и экосистема LoRa – самый быстрорастущий альянс в секторе IoT, и добавление ресурсов ST поможет стандартизировать LoRa и LoRaWAN по всему миру для IoT-сетей на основе радиочастотных приемопередатчиков малой мощности, работающих на больших расстояниях (LPWAN). Обе компании верят в то, что стандартизация и поддержка мощной экосистемы будут способствовать признанию технологии всеми участниками рынка и достижению прогнозируемых больших объемов выпуска IoT-устройств.

«Успех технологии LoRa послужил толчком для принятия операторами всего мира решения о развертывании национальных сетей LoRaWAN», – заявил Марк Пегулу, вице-президент и генеральный менеджер группы беспроводных продуктов компании Semtech, – «Партнерские отношения с ведущим поставщиком чипов для технологии LoRa, компанией ST, укрепляют уверенность в том, что технология LoRa компании Semtech, протокол LoRaWAN, IP и чипсет станут де-факто стандартом в области беспроводных сетей «Интернета Вещей».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *