STM32CubeIDE Учебник для начинающих

Содержание

STM32CubeIDE software

Чтобы повысить удобство использования многофункциональной и энергоэффективной линейки микроконтроллеров STM32, в 2019 году ST добавила в экосистему программного обеспечения STM32Cube бесплатный многофункциональный инструмент разработки STM32: STM32CubeIDE.

Чтобы работать так же хорошо, как коммерческие инструменты интегрированной среды разработки (IDE), STM32CubeIDE в полной мере использует технологии Atollic®, поставщика инструментов для встроенной разработки, приобретенного STMicroelectronics в 2017 году. Используя открытые условия лицензирования, соответствующие отраслевым стандартам, это программное обеспечение IDE добавляет специфические для STM32 функции, упрощающие и ускоряющие разработку встроенных систем на базе STM32, в том числе мощные инструменты конфигурации микроконтроллеров STM32CubeMX и управления проектами.

Интегрировав STM32CubeMX с STM32CubeIDE, ST создала более мощную среду разработки. Полная экосистема STM32Cube также включает в себя программатор STM32CubeProgrammer и семейство мониторов выполнения кода STM32CubeMonitor, а также множество автономных пакетов прошивки для микроконтроллеров.

Что такое STM32CubeIDE?

STM32CubeIDE — это официальный бесплатный инструмент разработки программного обеспечения от ST, основанный на платформе Eclipse®/CDT, наборе инструментов компиляции GCC и инструменте отладки GDB, который поддерживает добавление функциональных плагинов сторонних производителей. В то же время STM32CubeIDE объединяет некоторые функции STM32CubeMX и STM32CubeProgrammer.

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

STM32Cube software ecosystem
STM32Cube software ecosystem

Особенности STM32CubeIDE

1. Интеграция STM32CubeMX:

  • Выбор микроконтроллера STM32
  • Назначение выводов, тактовые генераторы, конфигурация IP и промежуточного программного обеспечения
  • Создание проекта и генерация кода инициализации

2. На основе Eclipse/CDT, поддержка плагинов Eclipse, использование инструментальной цепочки ARM и отладчика GDB в GNU C/C++.

3. Другие расширенные функции отладки:

  • Ядра ЦП, регистры IP и представления памяти
  • Просмотр переменных в реальном времени
  • Системный анализ и отслеживание в реальном времени (SWV)
  • Инструмент анализа ошибок ЦП

4. Поддержка отладочных зондов ST-LINK и J-Link

5. Поддержка импорта проектов из TrueSTUDIO и AC6 (SW4STM32)

6. Поддерживаемые операционные системы: Windows, Linux и MacOS

STM32CubeIDE Скачать

Вот официальная ссылка для скачивания:
https://www.stmicroelectronics.com.cn/en/development-tools/stm32cubeide.html

Рабочая среда STM32CubeIDE

STM32CubeIDE — это среда на базе Eclipse, которая унаследовала некоторые незнакомые пользователям функции Eclipse, такие как перспективные виды, рабочие пространства и т. д.

Рабочая область: STM32CubeIDE управляет проектами через рабочую область. При открытии STM32Cube создается новая рабочая область по умолчанию. Новый или импортированный проект будет принадлежать этой рабочей области. Проекты в одной рабочей области имеют одинаковую конфигурацию на уровне IDE (устанавливается в Window→Preferences), например настройки отображения и стиля редактирования. С точки зрения файловой системы, рабочая область — это папка, содержащая несколько папок проектов и папку с именем «.metadata», которая содержит информацию обо всех проектах в этой рабочей области. Папка «.metadata» содержит информацию обо всех проектах в рабочей области. Пользователь может переключаться между рабочими областями через меню File→Switch Workspace.

Перспектива: Перспектива — это набор окон, связанных с определенным типом функций. Обычно используются перспективы «Редактирование C/C++», «Отладка» и «Конфигурация CubeMX».

STM32CubeIDE Perspective
STM32CubeIDE Perspective

Перспектива редактирования C/C++ включает в себя диспетчер проектов, окно редактирования, окно структуры и т. д. Диспетчер проектов позволяет просматривать и управлять всеми проектами в текущей рабочей области. Двойной щелчок открывает файл в проекте, и его содержимое отображается в окне редактирования, где его можно редактировать. В крайнем правом окне структуры перечислены все функции, переменные и макросы, определенные в текущем открытом файле.

Меню «Window Show View» (Окно «Показать вид») позволяет открывать и закрывать окна, которые необходимо отобразить в перспективе редактирования C/C++.

Вы можете переключаться между различными видами перспективы, используя значки в правом верхнем углу, например, щелкнув значок краулера, вы можете переключиться на вид перспективы отладки. Нажатие кнопки «Отладка» на панели инструментов под видом перспективы редактирования C/C++ также автоматически переключит вас на вид перспективы отладки после запуска отладки.

Как использовать STM32CubeIDE?

1. Управление проектами

Создать новый проект

С помощью STM32CubeIDE пользователи могут запустить новый проект различными способами. На экране приветствия STM32CubeIDE перечислены ярлыки для создания/импорта проекта, соответствующие четырем сценариям, приведенным ниже. Соответствующие функции также можно реализовать с помощью пунктов «New» (Создать) и «Import» (Импорт) в меню «File» (Файл).

  1. Создание нового проекта STM32 с нуля
  2. Уже имеется файл конфигурации STM32CubeMX (*.ioc), и вы хотите создать новый проект STM32 на основе этого файла ioc.
  3. У меня уже есть проект SW4STM32 или TrueSTUDIO, и я хочу преобразовать его в проект STM32CubeIDE.
  4. Создать новый проект на основе подпрограмм из библиотеки STM32Cube
STM32CubeIDE New Project
STM32CubeIDE New Project

Структура проекта STM32CubeIDE

STM32CubeIDE имеет две структуры проекта, как показано на следующем рисунке.

STM32CubeIDE project structure diagram
STM32CubeIDE project structure diagram

Одноядерные микроконтроллеры имеют плоскую структуру.

Для микроконтроллеров с двухъядерной архитектурой или микроконтроллеров безопасности, таких как серии STM32H7, STM32L5 и STM32MP1, проект STM32CubeIDE представляет собой иерархическую структуру. Возьмем в качестве примера STM32H7. После создания или импорта проекта STM32H7 в панели Project Explorer вы увидите трехслойную структуру проекта: верхний слой — это «корневой» проект, затем идут два «дочерних» проекта, соответствующие ядрам CM7 и CM4 соответственно. Верхний уровень — это «корневой» проект, затем идут два «дочерних» проекта, соответствующие ядрам CM7 и CM4, а файлы проекта находятся в «дочерних» проектах. Эти два «дочерних» проекта CM7 и CM4 являются реальными проектами, которые можно компилировать и отлаживать, в то время как «корневой» проект является лишь «контейнером», содержащим «дочерние» проекты CM7 и CM4. В документах AN5361, AN5394, AN5360 и AN5564 описано, как создавать, импортировать, компилировать и отлаживать проекты STM32H7 dual-core, STM32L5, STM32MP1 и STM32WL соответственно в STM32CubeIDE.

Управление библиотекой прошивок

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

В разделе «Справка» → «Управление пакетами встроенного программного обеспечения» можно управлять всеми библиотеками прошивки STM32 и другими плагинами (устанавливать/удалять библиотеки прошивки).

Кнопка «Установить сейчас» позволяет STM32CubeIDE автоматически загружать и устанавливать из сети, а кнопка «Из локального хранилища» позволяет устанавливать предварительно загруженные библиотеки прошивки.

Кнопка «Удалить сейчас» позволяет удалить выбранную библиотеку прошивки.

STM32CubeIDE firmware library
STM32CubeIDE firmware library

На вкладке «STM32Cube Firmware Updater» в окне «Window Preferences» можно установить путь к библиотеке прошивки и способ ее обновления.

STM32CubeIDE Firmware Preferences Setting
STM32CubeIDE Firmware Preferences Setting

Конфигурация сети

По умолчанию STM3CubeIDE будет пытаться подключиться к сети при открытии и создании нового проекта. Вы также можете выбрать «Off Line Mode» (Автономный режим), чтобы STM32CubeIDE не подключался к сети. Однако вам необходимо установить предварительно загруженные библиотеки прошивки с помощью кнопки «From Local» (С локального диска) в окне «Embedded Software Packages Manager» (Диспетчер встроенных программных пакетов) на предыдущем рисунке, иначе код для нового проекта STM32 не будет сгенерирован автоматически.

Нажмите кнопку «Check Connection» (Проверить соединение), чтобы проверить текущее состояние сетевого соединения. Если в конце проверки появляется красный крестик, это означает, что есть проблема с конфигурацией сети, и нам нужно перейти на страницу «Network Connection» (Сетевое соединение), чтобы настроить ее.

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

Шаги по настройке показаны на следующем рисунке:
1. Перейдите в меню «Настройки окна» и выберите вкладку «Общие сетевые подключения».
2. Выберите «Ручной метод
». 3. Выберите «HTTP» и дважды щелкните, чтобы открыть окно редактирования для настройки параметров сетевого подключения.

STM32CubeIDE Network Configuration
STM32CubeIDE Network Configuration

Открыть/Закрыть/Удалить/Переключить/Экспортировать проекты STM32CubeIDE

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

2. Компиляция кода

Настройка свойств и компиляция

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

После завершения настройки проект готов к компиляции. Вы можете запустить компиляцию тремя способами:
— Способ 1: выберите проект, щелкните по нему правой кнопкой мыши и выберите «Собрать проект».
— Способ 2: выберите проект, войдите в него из меню «Проект», а затем выберите «Собрать проект».
— Способ 3: выберите проект и щелкните значок «Собрать» на панели инструментов.

STM32CubeIDE project property configuration
STM32CubeIDE project property configuration

Улучшение скорости компиляции

Включив параллельную сборку, вы можете повысить скорость компиляции STM32Cube IDE.
Выберите проект, щелкните по нему правой кнопкой мыши и войдите в меню свойств, выберите «C/C++ Build» и на вкладке «Behavior» установите флажок «Enable parallel build».

STM32CubeIDE CC++ Build parallel compile
STM32CubeIDE CC++ Build parallel compile

Вспомогательные инструменты для компиляции

После компиляции проекта в окне «Build Analyzer» отображается использование всех областей памяти и секций, определенных в файле ссылки, включая адрес загрузки, адрес запуска, количество занятых байтов, количество оставшихся байтов и т. д.

В окне «Static Stack Analyzer» отображается использование статического стека.

STM32CubeIDE также предоставляет функцию Headless Build, которая позволяет компилировать из командной строки без открытия графического интерфейса CubeIDE.

3. Отладка и запись кода

Конфигурация отладки и запуска

После того, как проект STM32CubeIDE был скомпилирован без ошибок, он готов к отладке и загрузке.

На панели инструментов C/C++ Perspective есть три кнопки, связанные с загрузкой и отладкой: Debug, Run и External Tools.

Маленький треугольник рядом с кнопкой «Debug» открывает меню Debug Configurations для настройки параметров отладки, таких как выбор отладчика, настройки подключения GDB, настройки ST-LINK, настройки внешнего Flash Loader и т. д., а также для запуска отладки.

С помощью кнопки «Run» можно загрузить программу, не запуская отладку.

Кнопка «External Tools» позволяет вызвать внешние инструменты командной строки.

STM32CubeIDE Code Debugging
STM32CubeIDE Code Debugging

Начать отладку

STM32CubeIDE использует GDB для отладки, поддерживает отладчики STLink и SEGGER J-Link, а также поддерживает подключение к целевому микроконтроллеру через интерфейс SWD или JTAG.

После компиляции проекта STM32CubeIDE отладку можно запустить непосредственно, щелкнув значок паука на панели инструментов или выбрав меню Run—>Debug.

STM32CubeIDE Start Debugging
STM32CubeIDE Start Debugging

Если отладка текущего проекта выполняется впервые, STM32CubeIDE сначала скомпилирует проект, а затем откроет окно настройки отладки. Окно настройки отладки содержит параметры выбора интерфейса отладки, настройки STLink, настройки сброса и настройки внешнего флэш-загрузчика и т. д. Пользователи могут проверить или изменить настройки. После подтверждения правильности всех настроек можно нажать OK, чтобы начать отладку.

Затем STM32CubeIDE сначала загрузит программу в MCU, а затем начнет выполнение с входа программы, указанного в файле ссылки (*.ld). По умолчанию программа начинает выполнение с Reset_Handler и приостанавливается на первой строке основной функции, ожидая следующей отладочной инструкции.

Основные операции отладки

После запуска отладки STM32CubeIDE автоматически переключится в режим отладки, а кнопки отладки будут отображаться на панели инструментов в режиме отладки. Как показано на рисунке ниже.

Basic debugging operation of STM32CubeIDE
Basic debugging operation of STM32CubeIDE

4. Использование плагинов

STM32CubeIDE также поддерживает плагины Eclipse. Существует 2 способа их установки:

  1. Установка через «Eclipse Marketplace» в меню «Справка»;
  2. Установка с помощью «Установить новое программное обеспечение» в меню «Справка».
STM32CubeIDE plugins Installing
STM32CubeIDE plugins Installing

Пример программирования STM32CubeIDE

Давайте пройдемся по процессу разработки программного обеспечения с помощью STM32CubeIDE на примере программы мигания светодиода.

В этой программе используется плата разработчика NUCLEO-H743ZI, и с помощью STM32CubeIDE создается новый проект с нуля. Затем в проекте реализуется простая функция: встроенный светодиод LED1 мигает автоматически с интервалом 500 мс.

Из этого примера программирования мы можем извлечь следующие уроки:

  • Создание нового проекта STM32CubeIDE
  • Настройте микросхему STM32
  • Добавьте пользовательский код и скомпилируйте
  • Установите параметры отладки
  • Отладить код (просмотреть переменные и регистры)
  • Установите точки останова

Сначала выберите «Файл» —> «Новый» —> «Проект STM32», STM32CubeIDE откроет окно выбора микроконтроллера. В этом окне вы можете выбрать определенную модель микросхемы или определенную плату разработчика ST или подпрограмму. Здесь мы вводим STM32H743ZI в поле поиска, вы можете напрямую выбрать эту микросхему, а затем нажать «Далее».

Create STM32CubeIDE New Project and Select STM MCU model
Create STM32CubeIDE New Project and Select STM MCU model

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

После завершения настройки нажмите «Готово», и STM32CubeIDE создаст для нас проект и откроет интерфейс настройки микросхемы, который аналогичен STM32CubeMX.

В это время может появиться всплывающее окно с предложением открыть окно настройки CubeMX. Нажмите «Да», и все готово.

STM32CubeMX Configuration Perspective
STM32CubeMX Configuration Perspective

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

В окне Pinout view (Вид распиновки) можно быстро найти нужный вывод на схеме корпуса микросхемы с помощью панели поиска.

Выберите вывод, щелкните по нему правой кнопкой мыши и выберите функцию GPIO_Output.

Затем перейдите в окно System view, щелкните модуль GPIO, и вы увидите только что настроенный вывод PB0. В этом окне также можно продолжить настройку других параметров PB0, таких как подтяжка/понижение, скорость и т. д. Также можно определить для него пользовательскую метку LDE1, которую легко использовать в коде.

Configure GPIOs on Create STM32CubeIDE
Configure GPIOs on Create STM32CubeIDE

После завершения настройки выберите Project—>Generate Code, чтобы перегенерировать код. На этом этапе STM32Cube переключается в режим просмотра C/C++, и вы можете добавить файл пользователя или внести изменения в файл C.

Здесь мы добавляем фрагмент кода, который переворачивает PB0. Обратите внимание, что весь добавленный пользователем код должен быть помещен между декларациями «USER CODE BEGIN xxx» и «USER CODE END xxx». Таким образом, при повторном сгенерировании кода эта часть кода не будет утеряна.

После добавления кода нажмите «Build» (Сборка), чтобы начать компиляцию.

Generate Code and Compile Project
Generate Code and Compile Project

Если компиляция завершена и ошибок не обнаружено, можно нажать «Debug» (Отладка), чтобы начать отладку.

При первом запуске отладки откроется окно настройки параметров отладки. Убедитесь, что все параметры указаны правильно, нажмите «OK», и STM32CubeIDE автоматически переключится из интерфейса редактирования в интерфейс отладки. Как показано на рисунке ниже.

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

Дважды щелкните по крайней левой полосе маркера строки кода, чтобы добавить точку останова в этой строке кода.

Справа открываются несколько окон отладки, в том числе: локальные переменные, точки останова, глобальные переменные и регистры и т. д. Эти окна можно открыть или закрыть в меню «Window—>Show View» (Окно—>Показать вид).

STM32CubeIDE Debug Code
STM32CubeIDE Debug Code

STM32CubeIDE против STM32CubeMX

STM32Cube IDE — это интегрированная среда разработки (IDE) для создания приложений на микроконтроллерах STM32. Основанная на платформе Eclipse, STM32Cube IDE объединяет STM32CubeMX, отладчики, редакторы, компиляторы и другие инструменты, предоставляя разработчикам комплексную среду. STM32Cube IDE предлагает возможности отладки, управления версиями, редактирования кода и сборки, позволяя разработчикам выполнять весь процесс разработки в едином интерфейсе.

STM32CubeMX — это графический инструмент конфигурации, предназначенный для инициализации микроконтроллеров STM32 и генерации кода инициализации. Он предоставляет интуитивно понятный интерфейс, позволяющий пользователям выбирать модели микроконтроллеров, настраивать периферийные устройства, сопоставлять выводы и генерировать соответствующий код инициализации. STM32CubeMX также может генерировать файлы конфигурации FreeRTOS, настраивать дерево тактовых генераторов и устанавливать приоритеты прерываний. Сгенерированный код может быть интегрирован в различные интегрированные среды разработки (IDE), такие как Keil или IAR, для дальнейшей разработки приложений.

FeatureSTM32CubeMXSTM32Cube IDE
PurposeConfiguration tool for STM32 MCUsFull IDE for application development
FunctionalityInitializes MCUs, configures peripherals, generates codeCode writing, debugging, building, and compiling
PlatformStandalone, integrates with Keil, IARBuilt on Eclipse, integrates CubeMX, debugging tools
Code GenerationGenerates initialization code for external IDEsDevelops and compiles applications directly
User InterfaceGraphical interface for configurationFull IDE with editing and debugging tools
Use CaseSet up peripherals and generate base codeWrite, build, and debug applications

Часто задаваемые вопросы о STM32CubeIDE

Может ли STM32CubeIDE генерировать файлы BIN или HEX после компиляции?

По умолчанию STM32CubeIDE генерирует файлы ELF после компиляции. Однако он также поддерживает генерацию файлов HEX или BIN. Процесс настройки выглядит следующим образом: перейдите в главное меню Project > Properties > C/C++ Buildи откройте настройки, где можно настроить формат вывода.

generating BIN or HEX files by STM32CubeIDE
Generating BIN or HEX files by STM32CubeIDE

Да, конечно. STM32CubeIDE фактически интегрирует STM32CubeMX в качестве модуля в свою среду разработки. При создании нового проекта в CubeIDE автоматически запускается STM32CubeMX, что позволяет пользователям выполнять графическую настройку инициализации.

Может быть несколько причин, по которым STM32CubeIDE не генерирует код:

  • Убедитесь, что STM32CubeMX правильно интегрирован и вызван во время создания проекта.
  • Перед попыткой сгенерировать код убедитесь, что вы правильно настроили микроконтроллер и его периферийные устройства в STM32CubeMX.
  • Проверьте настройки в разделе Project > Properties , особенно параметры генерации кода.
  • Убедитесь, что нет ошибок или пропущенных настроек, которые могут помешать генерации кода.

Подписаться

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

Об авторе

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Нужна помощь?

Прокрутить вверх

Instant Quote