На чем писать программы для stm32

Цель этой темы — перечислить все интегрированные среды разработки (IDE), которые могут быть использованы для разработки программного обеспечения для микроконтроллеров STM32. Примеры должны содержать: 1. Список основных функций среды IDE. 2. Список операционных систем, поддерживаемых IDE. 3. Процесс установки. 4. Дополнительные шаги настройки (если они есть).

замечания

Перечисленные IDE от ST Microelectronics:

номер части Общее описание Маркетинговый статус поставщик Тип программного обеспечения
CoIDE CooCox CoIDE — бесплатная и высокоинтегрированная среда разработки программного обеспечения для MCU ARM Cortex активный CooCox Комплекты для разработки ПО
CosmicIDE Cosmic ARM / Cortex «M» Инструменты для кросс-разработки для микроконтроллера STM32 активный космический Комплекты для разработки ПО
Crossworks Rowley Associates CrossWorks, интегрированная среда разработки с загрузкой и отладкой JTAG Flash активный Rowley Комплекты для разработки ПО
DS-5 ARM Development Studio 5 (DS-5) предоставляет лучшие в своем классе инструменты для самых разных платформ на базе процессоров ARM активный РУКА Комплекты для разработки ПО
EMP-Thunder Emprog ThunderBench, полностью интегрированный и хорошо продуманный инструмент разработки C / C ++ для ARM Cortex активный Emprog Прошивка
HiTOP5 Универсальный пользовательский интерфейс, IDE и отладчик для всех инструментов разработки Hitex активный Hitex Комплекты для разработки ПО
IAR-EWARM Интегрированная среда разработки IAR и оптимизация компилятора C / C ++ для ARM Cortex-M активный IAR Комплекты для разработки ПО
MDK-ARM-STM32 Среда разработки программного обеспечения MDK-ARM для MCU на базе Cortex-M активный Keil Комплекты для разработки ПО
MULTI Интегрированная среда разработки и отладки GreenHills для встроенных приложений с использованием C и C ++ активный Программное обеспечение GreenHills Комплекты для разработки ПО
Мужчины-Nucleus-SF Nucleus SmartFit для STM32 активный Mentor Graphics Прошивка
PER-Tracealyzer Анализатор трассировки времени выполнения Percepio для MCM STM32 активный Percepio
PLSUDE-STM32 Платформа отладки и эмулятора с оптимизированной поддержкой трассировки и флэш-памяти для MCM STM32 на базе Cortex-M с помощью средств разработки PLS активный Pls Комплекты для разработки ПО
RIDE-STM32 Интегрированная среда разработки, основанная на безопасности, для MCU STM32 активный Raisonance Комплекты для разработки ПО
SOMN-DRT-IDE SOMNIUM DRT Cortex-M IDE активный Somnium Комплекты для разработки ПО
SW4STM32 System Workbench для STM32: бесплатная среда разработки в Windows, Linux и OS X активный AC6 Комплекты для разработки ПО
TASKINGVX-STM32 Инструменты компилятора Altium C / C ++ и отладчика для MCU на базе ARM активный TASKING Прошивка
TrueSTUDIO Прежний инструмент разработки C / C ++ для разработки STM32 с непревзойденным набором функций и беспрецедентной интеграцией активный Atollic Комплекты для разработки ПО
ISYS-winIDEAOpen бесплатная неограниченная платформа разработки iSYSTEM для всех устройств STM32 Cortex-M активный iSYSTEM Комплекты для разработки ПО
mikroBasicPRO MikroElektronika полнофункциональный базовый компилятор, который делает разработку STM32 подходящей для всех активный Mikroelectronika Комплекты для разработки ПО
mikroCPRO MikroElektronika полнофункциональный ANSI C-компилятор для устройств STM32. Он имеет интуитивно понятный IDE, мощный компилятор с расширенной оптимизацией активный Mikroelectronika Комплекты для разработки ПО
mikroPascalPRO MikroElektronika полнофункциональный компилятор Pascal для устройств STM32. Он имеет интуитивно понятную IDE с поддержкой стыковки, богатую функциями, расширенным текстовым редактором, множеством доступных инструментов, библиотек и примеров активный Mikroelectronika Комплекты для разработки ПО
winIDEA-STM32 Комплексное решение для разработки и тестирования iSYSTEM для MCU STM32 активный iSYSTEM Прошивка

Среда разработки программ для микроконтроллеров STM32 STM32CubeIDE: скачивание, первая программа

STM32 — программирование для начинающих. Пошагово. CubeMX CubeIDE

SW4STM32: System Workbench для STM32

Вступление

System Workbench для STM32 — это бесплатная среда разработки в Windows, Linux и OS X. Описание от ST Microelectronics :

  • Всесторонняя поддержка микроконтроллеров STM32, плат STM32 Nucleo, наборов Discovery и оценочных плат, а также прошивки STM32 (стандартная периферийная библиотека или STM32Cube HAL)
  • Компилятор GCC C / C ++
  • Отладчик на основе GDB
  • Eclipse IDE с управлением коллективной работой
  • Совместимость с плагинами Eclipse
  • Поддержка ST-LINK
  • Нет ограничения размера кода
  • Поддержка нескольких ОС: Windows®, Linux и OS X®
Читайте также:
Выявленная проблемная ситуация в программе ипр пример

Монтаж

  1. Перейдите по ссылке : http://www.openstm32.org/HomePage .
  2. Зарегистрируйтесь и войдите на сайт.
  3. Перейдите на страницу: http://www.openstm32.org/Downloading+the+System+Workbench+for+STM32+installer .
  4. Загрузите последнюю версию для вашей операционной системы.
  5. Запустите загруженный установщик.

IAR-EWARM

Вступление

IAR Интегрированная среда разработки и оптимизация компилятора C / C ++ для ARM Cortex-M. Описание от ST Microelectronics :

  1. Ключевые компоненты:
    • Интегрированная среда разработки с инструментами управления проектами и редактором
    • Высоко оптимизирующий компилятор C и C ++ для ARM®
    • Автоматическая проверка правил MISRA C (MISRA C: 2004)
    • Соответствие ARM® EABI и CMSIS
    • Расширенная поддержка целевой системы HW
    • Дополнительные I-jet и JTAGjet ™ -Trace внутрисхемные отладочные датчики
    • Отладка мощности для визуализации потребления энергии в корреляции с исходным кодом
    • Библиотеки времени выполнения, включая исходный код
    • Перемещение ARM® ассемблера
    • Линкеровщик и библиотекарь
    • Отладчик C-SPY® с симулятором ARM®, поддержка JTAG и поддержка отладки RTOS для аппаратного обеспечения
    • Плагины RTOS, доступные от IAR Systems и поставщиков RTOS
    • Более 3100 типовых проектов для оценочных плат от разных производителей
    • Пользовательские и справочные руководства в формате PDF
    • Контекстно-зависимая он-лайн помощь
    • Чип-специфическая поддержка:
      • 4300 проектов, в том числе для оценочных плат STMicroelectronics
      • Поддержка 4 Гбайт-приложений в режимах ARM® и Thumb®
      • Каждая функция может быть скомпилирована в режиме ARM® или Thumb®
      • Генерация копроцессора с векторной плавающей точкой VFP Vector Floating Point
      • Встроенная поддержка NEON ™
      • Поддержка аппаратной отладки:
        • STMicroelectronics ST-LINK V2: поддерживает устройства STM32
        • STMicroelectronics ST-LINK: поддерживает устройства STM32
        • Поддержка RTOS: обратитесь на веб-сайт IAR http://www.iar.com
        • Поддерживаемые устройства: обратитесь на веб-сайт IAR http://www.iar.com

        Монтаж

        Atollic — TrueSTUDIO

        Вступление

        C / C ++ IDE для разработки ARM.

        Atollic TrueSTUDIO® протестирован и проверен в следующих операционных системах:

        • Microsoft® Windows®Vista (32-разрядная версия)
        • Microsoft® Windows® Vista (64-разрядная версия)
        • Microsoft® Windows® 7 (32-разрядная версия)
        • Microsoft® Windows® 7 (64-разрядная версия)
        • Microsoft® Windows® 8 (64-разрядная версия)
        • Microsoft® Windows® 10 (64-разрядная версия)
        • Поддержка Linux ожидается конец 2016 года Q4
        • Поддержка Mac OS X ожидается 2017 Q2

        TrueSTUDIO доступен только как 32-битное приложение.

        Монтаж

        Продукт Atollic TrueSTUDIO поставляется в качестве исполняемого установщика. Убедитесь, что учетная запись пользователя, с которой запущен установщик, имеет административные привилегии. Во время установки нет необходимости в регистрации или подключении к Интернету. Когда TrueSTUDIO установлен, он будет работать в режиме Lite, если лицензии не обнаружены.

        1. Перейдите по ссылке : http://atollic.com/resources/downloads/ .
        2. Загрузите последнюю стабильную или последнюю бета-версию.
        3. Запустите программу установки.

        CoIDE

        Вступление

        CooCox CoIDE — бесплатная и высокоинтегрированная среда разработки программного обеспечения для MCU ARM Cortex. Описание от ST Microelectronics :

        • Полная поддержка микроконтроллеров STM32, плат STM32 Nucleo, а также программных библиотек STM32Cube.
        • Компилятор GCC C / C ++.
        • Отладчик на основе GDB.
        • Упрощенная среда разработки Eclipse.
        • Поддержка ST-Link.
        • Поддержка нескольких языков: английский, китайский.

        Источник: learntutorials.net

        Visual Studio Code для ARM микроконтроллеров stm32 и других.

        Это даже не руководство, а небольшое описание и собственные ощущения о переходе с Keil’а на VSCode. Здесь нет рассказа от том, как настроить систему сборки, только немного о настройках самого редактора.

        Cover Image

        Небольшая заметка о том, как я решил отказаться от keil и перешел на visual studio code.

        Давно я собирался это сделать, но никак не мог решиться. Больше всего в vscode привлекал удобный редактор с его плюшками, до которого keil’у, да и многим другим IDE расти и расти.

        Основной проблемой было то, как настроить сборку, как выполнять загрузку и отладку. «У страха глаза велики» — это правда, на деле всё оказалось куда проще. Даже этот текст, который вы читаете, написан в vscode.

        Если стало интересно — читайте дальше.

        Установка VS Code и расширений

        Установка самого редактора тривиальна, скачать можно по ссылке: https://code.visualstudio.com

        Для разработки приложений на языке Си для микроконтроллеров ARM будем использовать несколько плагинов:

        • Cortex-Debug
        • C/C++ for Visual Studio Code
        • C/C++ Intellisense
        • ARM assembly highlighting for Visual Studio Code
        • GitLens
        • Doxygen Documentation Generator
        • Better Comments
        Читайте также:
        Erwin программа как пользоваться

        Основные — это верхние три, остальные это лишь небольшие улучшения и дополнения, хотя в принципе достаточно и первых двух.

        Настройка среды

        Вся настройка производится в файлах json .

        Файл .vscodelaunch.json соделжит конфигурации запуска и отладки.

        Пример моей конфигурации:

        < «version»: «0.2.0», «configurations»: [ < «type»: «cortex-debug», «name»: «APP», «cwd»: «$», «device»: «Cortex-M0», «executable»: «./build/smart_relay.elf», «servertype»: «jlink», «interface»: «swd», «request»: «launch», «rtos»: «FreeRTOS», «svdFile»: «./JLink/STM32F042x.svd», > ] >

        Это конфигурация для плагина Cortex-Debug, в которой указаны параметры типа ядра, путь к elf файлу, ипя конфигурации для отладки, интерфейс, тип операционной системы, тип отладчика, путь к файлу описания регистров микроконтроллера (SVD файл), его можно найти в папке с файлами поддержки семейства микроконтроллеров для STM32CubeMx, например для STM32F0 здесь

        Следующий файл — .vscodesettings.json , — настройки рабочего пространства, у меня выглядят примерно так.

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

        Теперь приступим к настройкам нашего проекта, а именно укажем пути к заголовочным файлам, дефайны и настройки стандарта языка, это всё нужно не для сборки проекта, а для работы системы IntelliSense. Главное быть внимательным, так как эти настройки должны быть максимально синхронны с настройками при компилировании файлов, вплоть до указания предопределенных макросов типа __GNU__ и подобных. Иначе можно получить весьма неожиданный результат, на экране будет одно, а по факту проект будет собираться уже по другом из-за вмешательства препроцессора и раскрытия макросов.

        < «configurations»: [ < «name»: «Smart Relay App», «compilerPath»: «$/arm-none-eabi-gcc.exe», «compilerArgs»: [«—target=arm-arm-none-eabi», «-mcpu=Cortex-M0»], «includePath»: [ «c:/gcc-arm/lib/gcc/arm-none-eabi/9.2.1/include», «c:/gcc-arm/lib/gcc/arm-none-eabi/9.2.1/include-fixed», «$/libs/FreeRTOS-Kernel/include», «$/libs/FreeRTOS-Kernel/portable/GCC/ARM_CM0», «$/libs/STM32CubeF0_HAL/Drivers/CMSIS/Core/Include», «$/libs/STM32CubeF0_HAL/Drivers/CMSIS/Device/ST/STM32F0xx/Include», «$/libs/STM32CubeF0_HAL/Drivers/CMSIS/Include», «$/libs/STM32CubeF0_HAL/Drivers/STM32F0xx_HAL_Driver/Inc», «$», «$/src», «$/src/drivers», «$/src/app» ], «defines»: [ «STM32F042x6», «USE_HAL_DRIVER», «_RTE_», «USE_FULL_ASSERT» ], «cStandard»: «c11», «cppStandard»: «c++17», «intelliSenseMode»: «$» > ], «version»: 4 >

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

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

        < «version»: «2.0.0», «tasks»: [ < «label»: «Build», «type»: «shell», «command»: «make -s -j 8 app», «options»: < «cwd»: «$», «shell»: < «executable»: «cmd.exe», «args»: [ «/C» ] >>, «group»: < «kind»: «build», «isDefault»: true >, «problemMatcher»: [ «$go» ] >, < «label»: «Download», «type»: «shell», «command»: «JLink.exe -Device STM32F042K6 -If SWD -Speed 4000 JLink\FlashMCU.jlink», «options»: < «cwd»: «$», «shell»: < «executable»: «cmd.exe», «args»: [ «/C» ] >>, «group»: < «kind»: «test», «isDefault»: true >, «problemMatcher»: [] > ] >

        Первая задача Build — задача сборки, о чем намекает параметр «kind»: «build» , именно её редактор будет предлагать к выбору при выборе меню Терминал -> Запустить задачу сборки. , либо при нажатии кнопок CTRL+SHIFT+B .

        Команда которая будет выполняться написана в параметре command .

        В первой задаче это запуск утилиты make с параметрами.

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

        r loadfile .buildsmart_relay.hex r g q

        Другие команды, для чтения, очистки и сброса можно посмотреть в документации к jlink .

        Ну вот и всё, Вам же осталось только написать свой код, написать Makefile и пользоваться средой.

        Немного об ощущениях

        • Превосходный редактор с отличным функционалом;
        • Можно переходить к определнию функции по клику с нажатым CTRL ;
        • куча расширений функционала редактора.
        • Немного непривычная отладка: значения регистров и переменных в десятичном формате;
        • Отладка без дизассемблера;
        • Возможность отстрелить ногу с предопределенными компилятором макросами (то, о чем я писал выше);
        • Много ручной работы по настройке проекта и системы сборки;
        • GCC вместо ARM Compiler 6.

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

        Читайте также:
        Программа для покупки запчастей для авто

        PS

        Как всегда хорошего кодинга и меньше багов.

        • Немного про ARM ассемблер. Пишем многопоточную программу.
        • Собираем проект для STM32 с помощью Clang/LLVM

        CDEblog

        Блог инженера-схемотехника, конструктора и немного программиста

        Последние публикации

        • Очередной драйвер SPI флэшек… Но уже с кэшем и «нормальным» api
        • Что было интересного в январе.
        • Сжимаем образ WSL
        • Включение бинарных файлов в прошивку
        • Библиотека для Altium Designed. Как использовать библиотеку в виде базы данных.

        Источник: cdeblog.ru

        Stm32. Переходим на современный C++. Часть 1. Настройка рабочего пространства.

        В сети появляется всё больше материалов, посвященных применению языка C++ для программирования микроконтроллеров. Являясь сторонником этого направления, хочу поделиться теми знаниями и умениями, которые получил, в виде цикла статей-уроков с рассмотрением вопросов разработки для Stm32 на современном языке C++ с применением разрабатываемой мною библиотеки (или фреймворка) Zhele.

        Я не являюсь профессиональным разработчиком в принципе, с электроникой тоже знаком лишь поверхностно. В связи с этим фактом прошу меня извинить за возможные неточности в вопросах, связанных именно с электроникой (например, я абсолютно не различаю определения «передний фронт» и «восходящий фронт», хотя, судя по прочитанным сообщениям на форумах, это как минимум не одно и то же, а как максимум только один вариант в принципе корректен). К сожалению, мои текущие знания не позволяют добавить в материалы качественную теоретическую часть, благо в сети достаточно хороших источников. Из всего, что мне попадалось на русском языке, наибольшим образом мне помогли и понравились статьи на таких ресурсах как microtechincs.ru, hubstub.ru, istarik.ru, microsin.net. Материал изложен подробно, понятно, и, что самое главное, есть примеры кода на чистом CMSIS.

        О фреймворке.

        Микроконтроллерами начал заниматься исключительно в качестве хобби, никаких реальных проектов и даже задач у меня не было и нет (даже полив цветов мне не нужен ввиду их отсутствия), поэтому мне хотелось и было важно не просто получить какой-то работающий девайс (иначе взял бы Arduino), а научиться писать качественный, красивый и оптимальный код. Попробовал поуправлять светодиодом на CMSIS, SPL, HAL, LL, однако не самые лестные отзывы об этих решениях не давали покоя. Однажды наткнулся на статью «Работа с портами ввода-вывода микроконтроллеров на Си++», предлагаемый автором подход понравился, и я стал пытаться пользоваться его фреймворком mcucpp, построенным полностью на шаблонах C++.

        Проект покрывает семейства AVR, ARM, MSP430, содержит в себе много классов для управления периферией, контейнеры, файловую систему, драйверы и многое другое, объем поражает. Но для меня, как новичка, было крайне сложно всё это запустить, так как документации практически нет, примеров нет, а «из коробки» многое не работает. Поэтому я решил продолжить изучение микроконтроллеров путем постепенного приведения в порядок разработок Константина Чижова (автора статьи и проекта mcucpp, если вдруг кто-то решил не переходить по ссылкам), а именно добавлять Doxy-документацию, проверять работоспособность кода, добавлять примеры. Делать это в виде форка было тяжело, поэтому родился новый проект Zhele, гораздо менее амбициозный, предназначен только для Stm32, не содержит пока много чего из оригинального проекта, однако не содержит мелких ошибок, покрыт документацией и тестами, а также движется в направлении универсальности для различных контроллеров Stm32.

        Среда разработки.

        Много копий сломано в спорах о лучшей IDE, компиляторе, я же считаю, что лучшим решением является то, которое удобно конкретному программисту. Для разработки я использую связку Visual Studio Code + расширение PlatformIO. Далее пошагово приведен процесс установки и создания заготовки проекта:

        [env:bluepill_f103c8] platform = ststm32 board = bluepill_f103c8 framework = cmsis debug_tool = stlink upload_port = stlink build_flags = -D STM32F1 -std=c++20 build_unflags = -std=c++11

      • Скомпилировать проект, загрузить его на контроллер.
      • Если проект не собрался, а VSCode отобразил поле ввода в верхней части экрана, перезапустите VS Code и повторите попытку.

        Архив с проектом можно загрузить с Яндекс.Диска. Статья в формате PDF доступна также на Яндекс.Диске. На следующем занятии подробно рассмотрим возможности библиотеки в части управления портами ввода-вывода.

        Источник: microtechnics.ru

        Рейтинг
        ( Пока оценок нет )
        Загрузка ...
        EFT-Soft.ru