Чем открыть файл mcu
Чем открыть файл mcu
MCU Файлы: Что это такое и как его открыть
Если вы получили файлы MCU и не можете их открыть по какой-либо причине, и вы хотите знать, что это такое и что с этим делать, продолжайте читать!
Файлы MCU обычно представляют собой тип двоичного файла, используемого определенным программным обеспечением, и многие программные пакеты могут совместно использовать общее расширение файла. В случае файлов с расширением MCU может быть открыт популярный программный пакет, такой как Binary Data.
Как открыть файл MCU
Как вы уже знаете, если у вас есть Binary Data, вы можете просто дважды щелкнуть по своему MCU и открыть его. Но что, если ваше программное обеспечение не открывает файл?
Обратите внимание, что расширения MCU не могут быть ограничены только Binary Data. Вы всегда можете выполнить поиск Google, чтобы найти другое программное обеспечение, которое использует файлы MCU, и загрузить его, чтобы попытаться открыть файл.
Еще не повезло? Свяжитесь с разработчиком названия программного обеспечения, чтобы узнать, могут ли они помочь. Если ваше программное обеспечение не имеет идентифицированного разработчика в приведенной ниже таблице, быстрый веб-поиск названия программного обеспечения должен дать вам некоторые подсказки о том, с кем связаться.
Спроси себя: Всегда ли я хочу пройти этот процесс, когда получаю необычный файл? Должен ли я загружать новое программное обеспечение каждый раз, когда у меня нет программного обеспечения, связанного с файлом? Если нет, загрузите универсальный просмотрщик файлов (File Magic), чтобы открыть сотни разных типов файлов с помощью одной программы.
Программного обеспечения | разработчик |
---|---|
Binary Data | Microsoft Developer |
Рекомендуем
Расширение файла MCU
Оглавление
Мы надеемся, что вы найдете на этой странице полезный и ценный ресурс!
1 расширений и 0 псевдонимы, найденных в базе данных
✅ Nokia DCT4 MCU Firmware Flash Data
Другие типы файлов могут также использовать расширение файла .mcu.
По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:
Это возможно, что расширение имени файла указано неправильно?
Мы нашли следующие аналогичные расширений файлов в нашей базе данных:
Если дважды щелкнуть файл, чтобы открыть его, Windows проверяет расширение имени файла. Если Windows распознает расширение имени файла, файл открывается в программе, которая связана с этим расширением имени файла. Когда Windows не распознает расширение имени файла, появляется следующее сообщение:
Windows не удается открыть этот файл:
Чтобы открыть этот файл, Windows необходимо знать, какую программу вы хотите использовать для его открытия.
Если вы не знаете как настроить сопоставления файлов .mcu, проверьте FAQ.
🔴 Можно ли изменить расширение файлов?
Изменение имени файла расширение файла не является хорошей идеей. Когда вы меняете расширение файла, вы изменить способ программы на вашем компьютере чтения файла. Проблема заключается в том, что изменение расширения файла не изменяет формат файла.
Если у вас есть полезная информация о расширение файла .mcu, напишите нам!
Простые бесплатные программные средства разработки ПО для STM32
Одна из причин популярности микроконтроллеров STM32 производства STMicroelectronics – разнообразие инструментов разработки и отладки. Это касается как аппаратных, так и программных средств. Существует возможность создания и отладки резидентного ПО для STM32 без материальных затрат с помощью набора бесплатных программ. В статье дан обзор наиболее значимых бесплатных программных инструментов разработки: ST MCU Finder, STM32CubeMX, SW4STM32, STM32 Studio.
Компания STMicroelectronics (ST) является крупнейшим производителем микроконтроллеров в мире, при этом большая часть приходится на семейства STM32. При разработке новых линеек контроллеров STMicroelectronics преследует несколько стратегических целей:
Для любого инженера очевидно, что эти цели очень часто оказываются взаимоисключающими. По этой причине STMicroelectronics выпускает семейства и линейки микроконтроллеров с акцентом на то или иное из приведенных выше свойств. В настоящее время номенклатура STM32 включает десять семейств, каждое из которых имеет свои достоинства и занимает определенную нишу на рынке (рисунок 1).
Рис. 1. Портфолио микроконтроллеров STM32 от ST
Дадим краткую характеристику семействам микроконтроллеров STM32 от ST.
Малопотребляющие микроконтроллеры семейств STM32L. Данная группа объединяет семейства, ориентированные, в первую очередь, на достижение минимального уровня потребления. Для этого используются различные методы: динамическое управление напряжением питания, гибкая система тактирования, специализированная периферия (LP-Timer, LP-UART), развитая система режимов пониженного потребления и так далее.
STM32L0 – семейство, построенное на базе ядра Cortex®-M0+ с рабочей частотой до 32 МГц и объемом Flash 8…192 кбайт. Представители семейства являются прямыми конкурентами 16-битным контроллерам и в большинстве случаев превосходят их как по производительности, так и по минимальному уровню потребления.
STM32L1 – семейство с ядром Cortex®-M3 с рабочей частотой до 32 МГц и объемом Flash 32…521 кбайт. При равной рабочей частоте данное семейство по уровню производительности мало уступает традиционным линейкам STM32F с тем же ядром, но отличается более малым потреблением.
STM32L4 – микроконтроллеры со сверхпроизводительным ядром Cortex®-M4 и объемом Flash 128 кбайт…1 Мбайт. Производительность этого семейства достигает 177 ULPMark/273 CoreMark, что превосходит даже производительность контроллеров из базовых семейств STM32F.
Базовые семейства STM32F0, STM32F1, STM32F3. Данная группа включает семейства со сбалансированными характеристиками и компромиссным значением производительности/потребления/цены.
STM32F0 – наиболее маломощное с точки зрения производительности семейство. Оно построено на базе ядра Cortex®-M0 с рабочей частотой всего 48 МГц и имеет объем Flash-памяти 16…256 кбайт. Основное назначение этих микроконтроллеров – вытеснение 8- и 16-битных систем из традиционных бюджетных приложений. Стоимость отдельных представителей STM32F0 составляет всего 0,5$.
STM32F1 – исторически первая линейка 32-битных микроконтроллеров от ST. Именно семейство STM32F1, построенное на ядре Cortex-M3 с рабочей частотой до 72 МГц, подтолкнуло многих разработчиков уйти от 8-битных ядер. В настоящий момент семейство объединяет представителей с объемом Flash 16 кбайт…1 Мбайт.
STM32F3 – семейство микроконтроллеров для работы с аналоговыми сигналами. Для этого к услугам разработчиков – ядро Cortex®-M4 с рабочей частотой до 72 МГц, блоком вычислений с плавающей запятой и поддержкой DSP-инструкций. Кроме того, STM32F3 обладают наиболее богатой аналоговой периферией, в том числе – 16-битными ΣΔ-АЦП, сверхбыстродействующими АЦП последовательного приближения со скоростью преобразования до 5 миллионов выборок в секунду.
Высокопроизводительные семейства STM32F2, STM32F4, STM32F7, STM32H7 ориентированы на достижение максимального быстродействия. Впрочем, стоит отметить, что существуют и отдельные линейки внутри указанных семейств, которые были нацелены на снижение динамического потребления, например, STM32F401.
STM32F2 построено на базе «разогнанного» до 120 МГц ядра Cortex®-M3. По характеристикам и набору периферии STM32F2 представляет собой дальнейшее развитие STM32F1. Объем памяти для представителей семейства составляет 128 кбайт…1 Мбайт.
STM32F4 – чрезвычайно богатое семейство, построенное на ядре Cortex®-M4 и объединяющее почти полторы сотни микроконтроллеров. Представители семейства объединены в несколько линеек, оптимизированных по различным параметрам: уровню интеграции, уровню потребления, производительности. Сейчас к услугам разработчиков предоставлены модели с рабочими частотами 168…180 МГц и объемом памяти до 2 Мбайт. Перечень периферии очень сильно отличается от линейки к линейке. Самые скромные микроконтроллеры имеют на борту только самое нужное: коммуникационные интерфейсы, таймеры, порты ввода/вывода. Самые продвинутые модели могут похвастаться графическим ускорителем, контроллером TFT, развитой аудиосистемой, продвинутым контроллером внешней памяти и тому подобным.
STM32F7 – сверхпроизводительное семейство на базе ядра Cortex®-M7 с рабочей частотой до 216 МГц и объемом Flash до 2 МБайт. Перечень периферии данного семейства поражает своим многообразием: USB, Ethernet, CAN, HDMI, DFSDM, ЕАЕ-контроллер, графический ускоритель, контроллер внешней памяти FMC и так далее. Семейство STM32F7 оставалось наиболее мощным в номенклатуре STMicroelectronics до появления STM32H7.
STM32H7 – флагманское семейство производства компании STMicroelectronics. Микроконтроллеры этой серии выполняются по топологическим нормам 40 нм, что позволило повысить быстродействие и снизить потребление. Так, например, производительность STM32H743 имеет рекордное значение 856 DMIPS.
Ключевыми нововведениями STM32H7 по сравнению с STM32F7 являются:
Компания STMicroelectronics использует пять различных модификаций ARM Cortex:
Популярность платформы STM32 во многом определяется огромным выбором моделей. В настоящий момент в номенклатуре STM32 насчитывается более семи сотен представителей, и каждый инженер сможет подобрать оптимальный микроконтроллер практически для каждого приложения, исходя из предъявляемых требований к производительности/уровню интеграции/потреблению/стоимости. Однако у микроконтроллеров STM32 есть еще как минимум четыре преимущества, которые делают их очень привлекательными для разработчиков:
Рассмотрим бесплатные программные средства разработки и отладки для STM32: ST MCU Finder, STM32CubeMX, SW4STM32, STM32 Studio. Отдельное внимание уделим краткому обзору отладочных плат производства компании STMicroelectronics. Именно с них и стоит начать данный обзор.
Аппаратные средства разработки
Наличие широкого выбора отладочных наборов – одна из главных причин популярности STM32. Число произведенных отладочных комплектов для STM32 и STM8 перешагнуло отметку в 1 миллион экземпляров. Стоит отметить, что эти платы не являются разобщенным набором, а входят в состав открытой программно-аппаратной платформы STM32 Open Development Environment (ODE), которая значительно упрощает освоение и использование не только микроконтроллеров STM32, но и других продуктов компании.
В настоящий момент к услугам разработчиков предлагается почти сто различных фирменных отладочных наборов трех групп: Discovery, Nucleo и Evaluation Boards. Дадим краткую характеристику каждой из групп.
Платы Discovery. STMicroelectronics предлагает 18 различных плат Discovery для микроконтроллеров практически всех семейств (кроме STM32F2 и STM32H7). Название “Discovery” говорит само за себя – «открытие». То есть эти платы необходимы в первую очередь для того чтобы разработчик мог ознакомиться с особенностями того или иного микроконтроллера с минимальными затратами времени. По этой причине они выполнены в виде законченных устройств со встроенным отладчиком ST-LINK, кнопками сброса, штыревыми колодками и прочим. Каждый из наборов имеет свои уникальные особенности. Если набор Discovery для микроконтроллеров STM32F0 включает минимальный набор дополнительных элементов (всего пара дополнительных кнопок), то Discovery для STM32F7 имеет огромный выбор периферии (цветной TFT-дисплей, USB, Ethernet и так далее) и впечатляющий внешний вид (рисунок 2).
Рис. 2. Примеры наборов Discovery производства ST
Платы Nucleo. Сейчас к услугам разработчиков предлагается 30 различных плат Nucleo трех основных типов: Nucleo-32, Nucleo-64, Nucleo-144, внешний вид которых представлен на рисунке 3 [1, 2, 3]. Название Nucleo, опять же, выбрано не случайно («ядро»), они предназначены не для автономной работы, а для совместного использования с различными платами расширения в популярных стеках. При этом Nucleo выступают в качестве вычислительного ядра и основы стеков. Например, Nucleo-32 совместимы со стеком Arduino™ nano, Nucleo-64 работает с Arduino™ Uno V3, Nucleo-144 также совместим с Arduino™ Uno V3. Функционал плат Nucleo может отличаться. Если Nucleo-32 и Nucleo-64 включают только отладчик ST-LINK и базовый набор элементов (кнопки сброса, пользовательская кнопка, светодиоды), то Nucleo-144 имеет расширенные коммуникационные возможности (Ethernet, USB).
Рис. 3. Наборы Nucleo
Дополнительный функционал платам Nucleo добавляют платы расширения. Это могут быть как платы производства STMicroelectronics, так и платы с поддержкой Arduino от сторонних разработчиков. В качестве примера можно упомянуть программно-аппаратный комплекс на базе программного пакета BLUEMICROSYSTEM1, который работает со стеком из системных плат STM32 Nucleo-64 (NUCLEO-F401RE или NUCLEO-L476RG), платами расширения МЭМС-датчиков X-NUCLEO-IKS01A1 и платами Bluetooth X-NUCLEO-IDB04A1 или X-NUCLEO-IDB05A1 (рисунок 4).
Рис. 4. Пример реализации стека на базе STM32 Nucleo-64
Отладочные платы Evaluation Boards. Данный тип плат предназначен для максимально полного ознакомления с особенностями различных микроконтроллеров STM32. Если на платах Discovery размещали минимальный набор дополнительных компонентов, то на Evaluation Boards стараются вместить все, что только возможно: отладчик ST-LINK, дисплеи, приемопередатчики (CAN, USB, Ethernet и прочее), разъемы, светодиоды, датчики и так далее (рисунок 5). Сейчас к услугам разработчиков предлагается 27 различных наборов для представителей всех семейств STM32 (за исключением STM32H7). Как и платы Discovery, наборы Evaluation Boards могут использоваться автономно.
Рис. 5. Пример отладочных плат производства STMicroelectronics
Используя отладочные платы и наборы производства компании STMicroelectronics, разработчики получают не только готовую аппаратную реализацию, но и существенную информационную поддержку:
При разработке резидентного ПО большим плюсом становится наличие бесплатных средств разработки. Это не удивительно, так как коммерческая лицензия на использование популярных сред (ARM Keil, IAR и другие) стоит не менее нескольких тысяч долларов. Другими словами, чтобы создать простейший датчик стоимостью 500 рублей, нужно вложить как минимум 200…300 тысяч рублей в среду разработки. В этом смысле компания STMicroelectronics и ее партнеры просто спасают небольшие независимые компании со скромным бюджетом, предлагающие полноценный набор бесплатного ПО для разработки программного обеспечения встроенных систем.
Обзор бесплатных программных средств от STMicroelectronics
В настоящий момент вниманию разработчиков встраиваемого ПО для STM32 предлагается богатый выбор программных инструментов, в том числе такие мощные среды как ARM Keil ил IAR. Они имеют широчайший функционал, позволяют создавать проекты и использовать огромное число готовых программных модулей (операционные системы, файловые системы, стеки популярных протоколов). Однако у них есть один большой недостаток – цена. Хочешь полноценно использовать ARM Keil ил IAR – будь готов выложить круглую сумму.
В случае небольших и средних компаний стоимость программных средств разработки является жизненно важным и определяющим фактором при выборе типа микроконтроллеров. Используя контроллеры STM32 и бесплатные программные инструменты производства STMicroelectronics и партнеров компании, можно существенно снизить затраты.
Процесс разработки ПО состоит из четырех основных ступеней. В первую очередь выбирается микроконтроллер, оптимальный для данного конкретного приложения. На втором этапе происходит создание ПО нижнего уровня: создаются драйвера и библиотеки, происходит написание функций инициализации (настройка тактирования, системной и общей периферий). Далее происходит написание ПО среднего и верхнего уровней. На заключительном этапе происходит отладка созданного кода.
Компания STMicroelectronics позволяет пройти этот путь, не потратив ни единого рубля. Для этого к услугам разработчиков предлагается четыре инструмента:
Рассмотрим перечисленные программные инструменты более подробно.
ST MCU Finder – простой инструмент подбора оптимального микроконтроллера
Компания STMicroelectronics выпускает более семи сотен микроконтроллеров STM32. Такое многообразие неизбежно влечет путаницу при выборе оптимальной модели. Чтобы упростить жизнь разработчикам, предлагается три простых способа поиска подходящего контроллера: через параметрический поиск на сайте компании, с помощью утилиты ST MCU Finder или с помощью STM32CubeMX:
Рис. 6. Главный экран мобильного приложения
ST MCU Finder
STM32CubeMX – графический генератор кода для микроконтроллеров STM32
Графические генераторы кода позволяют уйти от рутинного написания программ. Вместо самостоятельного создания текстовых файлов разработчик использует графические утилиты, которые автоматически формируют программный код. Примером такого подхода является кросплатформенный графический редактор STM32CubeMX (рисунок 7), работающий на всех популярных ОС: Windows®, Linux и OS X®.
Рис. 7. Состав и возможности STM32CubeMX
STM32CubeMX позволяет [4]:
STM32CubeMX является частью платформы STMCube™. Кроме STM32CubeMX, в состав STMCube™ входят отдельные фирменные наборы библиотек (рисунок 8). Так, например, набор библиотек STM32CubeF2 предназначен для работы с микроконтроллерами семейства STM32F2, а набор STM32CubeF4 объединяет библиотеки для STM32F4.
Рис. 8. Структура программной платформы STM32Cube
В свою очередь отдельные пакеты STMCube включают:
Чтобы понять, как происходит взаимодействие между составляющими программной платформы STM32Cube, следует обратиться к примеру, представленному на рисунке 9. В этом примере пользователь конфигурирует микроконтроллер STM32F429ZIT с помощью STM32CubeMX. После окончания визуальной настройки (выводов, тактирования и прочего) STM32CubeMX генерирует С-код, для этого используются библиотеки из программного пакета STM32CubeF4. В результате пользователь получает завершенный С-проект, сформированный для конкретной интегрированной среды разработки: IAR™ EWARM, Keil™MDK-ARM, Atollic® TrueSTUDIO и AC6 System Workbench (SW4STM32). В этот проект уже включены все необходимые библиотеки и файлы.
Рис. 9. Взаимодействие компонентов программной платформы STM32Cube
Программа STM32CubeMX значительно упрощает работу программистов, однако ее возможности не безграничны. Прежде чем двигаться дальше, стоит отметить существующие ограничения [4]:
Теперь, когда состав, принцип действия и ограничения STM32CubeMX описаны, можно привести пример работы с данной программой, создать «скелет» простейшего проекта и продемонстрировать работу отдельных утилит.
Создание простейшей программы с помощью STM32CubeMX
Рассмотрим подробнее создание скелета проекта в среде STM32CubeMX [5]. Для начала требуется скачать саму среду STM32CubeMX. Это можно сделать абсолютно бесплатно с сайта ST. После установки на диске пользователя будут размещены как сам STM32CubeMX, так и папки с библиотеками STM32Cube.
Процесс создания скелета проекта выполняется по шагам.
Шаг первый. Скачивание актуальных версий библиотек с помощью специальной утилиты. Для этого вначале нужно настроить параметры сети (Help → Updater Settings) и далее запустить автоматическое обновление (Help → Check for Updates). Если ПК не подключен к сети – обновлять библиотеки придется вручную.
Шаг второй. После запуска STM32CubeMX на стартовом экране или в меню “File” необходимо создать новый проект, нажав “New Project”. Далее STM32CubeMX предложит выбрать целевую платформу: контроллер с заданными параметрами или отладочную плату. На рисунке 10 в качестве примера демонстрируется, как встроенный поиск подобрал список контроллеров по параметрам: семейство STM32F4, корпус TQFP100, объем Flash не менее 592 кбайт, ОЗУ более 214 кбайт.
Рис. 10. Процесс выбора оптимального микроконтроллера в STM32CubeMX
Шаг третий. На третьем этапе разработчику предстоит определить назначение выводов с помощью Pin Wizard (рисунок 11). Данная утилита помогает создавать требуемую конфигурацию и проверять ее на ошибки. Стоит отметить и удобную систему подсветки, например, системные выводы закрашиваются бледно-желтым цветом.
Рис. 11. Работа с утилитой Pin Wizard
Шаг четвертый. Настройка системы тактирования производится с помощью вкладки Clock Configuration (утилита Clock Wizard). При этом пользователь работает с визуализированным деревом тактирования (рисунок 12). С помощью Clock Wizard удается за нескольких щелчков мыши выбрать источник системного тактового сигнала, значения определителей и умножителей, а также источники тактирования периферийных блоков. При написании кода вручную для этого потребовалось бы приложить много усилий.
Рис. 12. Работа с деревом тактирования в Clock Wizard
Шаг пятый. Создание С-кода начинается с выбора целевой интегрированной среды в настройках проекта (Project → Settings). В настоящий момент к услугам пользователя предлагаются: IAR™ EWARM, Keil™MDK-ARM, Atollic® TrueSTUDIO и AC6 System Workbench (SW4STM32) (рисунок 13). Далее на вкладке Code Generator следует определиться с составом копируемых в директорию проекта библиотек, настройками обработки пользовательского кода при регенерации (например, сохранять или удалять), настройками использования HAL (рисунок 13).
Рис. 13. Выбор целевой среды разработки и базовые настройки С-генератора
Для более детальной настройки генератора следует перейти на вкладку Advanced Settings (рисунок 14). Главной особенностью С-генератора в STM32CubeMX является возможность использования как HAL-, так и LL-драйверов. На этом моменте следует остановиться подробнее.
Рис. 14. Расширенные настройки С-генератора
HAL – набор абстрактных драйверов, обеспечивающих максимальную кроссплатформенность среди контроллеров STM32. При этом некоторые драйверы являются абсолютно универсальными (подходят ко всем контроллерам STM32), а часть применима только к отдельным линейкам с соответствующими периферийными блоками (например, блоками шифрования). Главными достоинствами HAL являются [6]:
Вместе с тем, у HAL есть и недостатки: значительный объем кода, недостаточная оптимизация выполнения задач, сравнительно малое быстродействие. Если эти недостатки являются критичными, то следует использовать LL-драйверы.
Low Layer APIs (LL) – аппаратно зависимые драйверы, позволяющие напрямую работать с периферией контроллера, в том числе – использовать inline-функции и выполнять атомарный доступ к регистрам [6]. Такой подход не требует значительных затрат памяти, функции получаются максимально короткими и эффективными по скорости. Очевидными недостатками LL-драйверов являются снижение совместимости кода при переходе от одного контроллера к другому и необходимость глубокого знания особенностей архитектуры контроллера.
В рамках одно и того же проекта на STM32CubeMX можно одновременно использовать как HAL так и LL, но для разных периферийных блоков. Например, на рисунке 15 показаны настройки С-генератора, при которых для UART/TIM/RTC используются LL-драйверы, а для остальных блоков – HAL.
Рис. 15. Пример неустранимой несовместимости при миграции
Шаг шестой. После настройки проекта следует выполнить генерацию кода, зайдя в меню Project → Generate Code. В результате этого в указанной директории проекта будет сгенерирован скелет проекта для заданной среды разработки.
Иногда возникает необходимость миграции проекта с одной платформы на другую. С помощью STM32CubeMX это можно сделать с минимальными затратами времени.
Миграция проектов с помощью STM32CubeMX
Для миграции проекта с одной платформы на другую используется дополнительная утилита File → Import Project (рисунок 15). В ней требуется указать тип нового микроконтроллера и режим миграции. После этого программа автоматически генерирует новый код либо, при наличии неполной совместимости ядер, указывает на возникшие сложности, предлагая пользователю их устранить.
Несовместимость, обнаруживаемая при миграции, может быть устранимой и неустранимой. Неустранимый случай возникает, когда состав периферии контроллеров значительно отличается. Например, ранее использовался модуль Ethernet, который отсутствует на новом МК (рисунок 15). Очевидно, что в таком случае миграция невозможна.
Но зачастую несовместимость имеет локальный характер, когда, например, необходимо всего лишь перенастроить параметры дерева тактирования, чтобы согласовать рабочие частоты, либо изменить номер канала АЦП или DMA и так далее (рисунок 16). В таких случаях STM32CubeMX предложит выполнить миграцию в ручном режиме с устранением появившихся сложностей с помощью редактирования проекта в рассмотренных выше утилитах. При этом STM32CubeMX будет сигнализировать пользователю о наличии проблем до их устранения.
Рис. 16. Пример устранимой несовместимости при миграции от STM32L053R8T6 к STM32L476RGT6
После получения итогового скелета проекта останется добавить пользовательскую алгоритмическую часть кода, провести компиляцию и выполнить отладку. Для этого используются специализированные среды. Среда SW4STM32 для STM32 производства компании AC6 позволяет делать это абсолютно бесплатно.
AC6 System Workbench – бесплатная IDE для STM32
Для редактирования, компиляции и отладки программ предназначены специальные интегрированные среды IDE. Большая часть из них является коммерческими продуктами (IAR™ EWARM, Keil™MDK-ARM, Atollic® TrueSTUDIO и другие), но есть и бесплатные инструменты, например, System Workbench производства компании AC6. В рамках системы названий STMicroelectronics данная IDE носит название SW4STM32.
Интегрированная среда SW4STM32 предназначена для работы с микроконтроллерами STM32. Она основана на базе платформы Eclipse и является бесплатной и кроссплатформенной. Основными ее достоинствами являются [6]:
При работе с проектами, созданными в STM32CubeMX, следует размещать пользовательский код в специальных секциях:
Это необходимо делать, чтобы при повторной генерации кода в STM32CubeMX не произошло затирание рукописной части программы. Повторная генерация необходима в двух случаях:
Таким образом, при работе в связке STM32CubeMX + SW4STM32 пользователь может в любой момент перенастроить контроллер и произвести миграцию с сохранением пользовательского кода при минимальных затратах времени.
При отладке программ в SW4STM32 доступна возможность широкого мониторинга состояния памяти, регистров, переменных. Также среда имеет поддержку точек останова (рисунок 17). Для запуска процесса отладки требуется нажать значок “Debug” (в виде жука), выбрать тип проекта “Ac6 STM32 C/C++ Application”, определить тип отладчика и интерфейс, нажать кнопку “OK”.
Рис. 17. Интерфейс среды разработки SW4STM32
SW4STM32 имеет поддержку систем контроля версий SVN/GIT. Это важно для больших проектов, над которыми работает несколько разработчиков. Система контроля версий позволяет: регистрировать все изменения, производимые в проекте; сравнивать версии проектов; восстанавливать предыдущие версии; разрешать конфликты при работе нескольких программистов над одним файлом; вести параллельно несколько версий и так далее.
В рамках данной статьи не имеет смысла углубляться в разбор тонкостей и различий между SVN и GIT. Скажем лишь, что GIT, являясь распределенной системой, позволяет программистам работать локально, имея на рабочей машине полный репозиторий проекта. При этом GIT сохраняет метаданные изменений, что упрощает слияние версий и переключение между версиями. SVN требует наличия сетевого соединения между разработчиками и сохраняет файлы целиком. SW4STM32 обеспечивает поддержку как SVN, так и GIT.
Рассмотрим последовательность действий при подключении проекта к SVN (рисунок 18).
Рис. 18. Подключение SVN в SW4STM32
В дальнейшем для синхронизации файла или всего проекта необходимо щелкнуть по его названию на панели директорий правой кнопкой мыши и выбрать Team → Commit. В открывшемся окне следует написать пояснение к изменениям и нажать “OK”.
Для отключения SVN следует использовать команду Team → Disconnect.
Для импорта проекта из SVN применяется команда меню Import → SVN → Project from SVN. Далее требуется выполнить ряд настроек по импорту во всплывающих диалоговых окнах.
SW4STM32 имеет очень широкие возможности, но у среды есть и недостатки, достаточно характерные для бесплатных сред:
Впрочем, стоит отметить, что данные недостатки могут оказаться не такими критичными, особенно для простых проектов.
Отладка кода может производиться не только в SW4STM32, но с помощью дополнительных средств. Рассмотрим некоторые из них.
STMStudio – простой способ отладки приложений на STM32
STM Studio – фирменная утилита производства компании STMicroelectronics, которая помогает проводить отладку программы и позволяет отслеживать значения пользовательских переменных при выполнении кода в реальном времени. Данная программа запускается под ОС Windows и использует отладчик ST-LINK для связи с микроконтроллером.
STM Studio имеет следующие возможности [7]:
Окно STM Studio состоит из нескольких панелей (рисунок 19).
Рис. 19. Окно программы STM Studio
Как говорилось выше, STM Studio позволяет отображать переменные в трех формах: в виде текста, диаграммы и графика (рисунок 20). Настройка типа отображения может быть изменена в любое время. Кроме того, все данные дополнительно записываются в лог-файл для дальнейшего анализа. Интересной особенностью STM Studio является возможность отображения зависимостей одних переменных от других, а также построения выражений из переменных.
Рис. 20. Пример отображения переменных в STM Studio
Популярным средством передачи отладочной информации является использование консоли и функции вывода printf().
Реализация терминального вывода printf() через USART
Использование стандартной функции printf() – один из наиболее популярных методов вывода отладочной информации. С помощью данной функции вывода пользователь может передавать любые данные на консоль среды разработки или терминал. Большинство интегрированных сред поддерживает эту возможность. При использовании STM32 есть два способа реализации этого метода: традиционный, с помощью UART, и дополнительный, через SWO-интерфейс с помощью отладчика ST-LINK. Реализация каждого из них максимально упрощается при использовании STM32CubeMX и SW4STM32.
Рассмотрим вначале первый вариант реализации – через UART. Для этого придется выполнить следующую последовательность действий:
Подключение к ПК можно выполнить тремя путями: через COM-порт и микросхему приемопередатчика RS-232; через USB-порт и микросхему конвертера UART-USB (например, FT232); с помощью USB-интерфейса отладчика ST-LINK. Вне зависимости от того, какой способ выбран, далее необходимо сконфигурировать аппаратный UART.
C помощью STM32CubeMX настройка UART выполняется в несколько кликов (рисунок 21). Сначала на вкладке Pin Wizard соответствующие выводы контроллера переводятся в режим работы UART. Далее во вкладке “Configuration” настраиваются параметры UART: тип обмена, скорость, наличие стоп-битов и так далее. После этого генерируется С-код.
Рис. 21. Настройка USART в STM32CubeMX для работы с printf()
В среде SW4STM32 необходимо подключить стандартную библиотеку и определить функции _io_putchar() и _write(), например, так: