М. Сыркин m.syrkin@angioscan.ru; И. Степанов; С. Ступников; В. Смерек smerek@niiet.ru; Ф. Макаренко philipp.makarenko@niiet.ru

Введение

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

Рыночные условия предполагают высокую скорость отклика от инженеров и программистов, чтобы иметь возможность реализовать продукцию, — ведь гибкость операций в разработке напрямую связана с успехом всей организации. Переход на микроконтроллер нового поколения К1921ВК01 с ядром ARM Cortex-M4F, созданный АО «НИИЭТ» в первую очередь для задач управления электропривода, а также для использования в средствах связи, измерений, наблюдения, безопасности, автоматизации производства, медицине, энергетике, различных системах управления, влечет необходимость создания нового кода поддержки, сопутствующей документации и последующего изучения новых интерфейсов дискретных программ. Освоение каждой из них в условиях быстрого изменения рыночного спроса на изделия электронной техники, является процессом трудо- и финансозатратным.

Оптимальным решением является применение универсальной интегрированной среды разработки (IDE), обычно представляющей собой единственную программу, в которой ведется весь проект. Она, как правило, содержит много функций для создания, изменения, компилирования, развертывания и отладки программного обеспечения. Цель интегрированной среды заключается в том, чтобы объединить различные утилиты в одном модуле, который позволит абстрагироваться от выполнения вспомогательных задач, сосредоточиться на решении собственно алгоритмической задачи и избежать потерь времени при выполнении типичных технических действий (например, вызове компилятора). Таким образом, повышается производительность труда разработчика. Кроме того, тесная интеграция проектных задач может увеличить производительность за счет введения дополнительных функций на промежуточных этапах работы. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках.

В сегодняшних сложных и многофункциональных разработках встроенных систем использование удобных сред программирования (например, семейство CodeMaster от ООО «Фирма Фитон»: CodeMaster-52; CodeMaster-96), методов интегрирования дополнительных программных библиотек и инструментов становится все более важным для специалистов.
CodeMaster++[ARM] — это мощная интегрированная среда разработки (IDE) для микроконтроллера К1921ВК01Т, сохранившая привычный интерфейс и объединяющая средства компиляции и сборки загружаемого кода, средства симуляции и аппаратной отладки, а также функциональность по управлению проектами и редактированию исходных текстов.
CodeMaster++[ARM] IDE обладает интуитивно понятным интерфейсом, проста в использовании и позволяет быстро создавать программы для микроконтроллера К1921ВК01T.
Современный компилятор и средства анализа исполнения программ помогают разработчикам создавать высокоэффективный программный код. Отладчик и многофункциональный трассировщик способен быстро находить и исправлять ошибки в программах. Основные компоненты CodeMaster++ [ARM] представлены на рис. 1.

CodeMaster++[ARM] IDE предназначена для работы на персональном компьютере под операционными системами Windows XP, Windows 7, 8 и 10 (как 32-разрядных, так и 64-разрядных версий).

Текстовый редактор.

Окно текстового редактора в режиме редактирования представлено на рис. 2.

Текстовый редактор синтаксически ориентирован на языки C/C++ и обеспечивает комфортную работу с файлами исходных текстов программ на этих языках.
Помимо стандартных функций редактирования редактор поддерживает следующую специфическую функциональность:
• выделение цветом синтаксических элементов языков C/C++ и ассемблера (скобок, чисел, текстовых строк, стандартных библиотечных функций, ключевых слов, директив препроцессора, типов данных, многострочных и однострочных комментариев (в том числе вложенных), имен регистров специального назначения, имен битов, ассемблерных меток, а также специальных слов);
• автоматическую поддержку отступа;
• поддержку механизма поиска парной скобки или начала/конца комментария;
• поддержку режима сжатого текста с возможностью настройки параметров.Кроме того, в режиме отладки дополнительно предусмотрено:
• цветовое выделение строки текста, соответствующей положению счетчика команд микроконтроллера (PC), строк, соответствующих различным типам точек останова, в режиме непрерывного выполнения — строки, с которой произошел запуск;
• отображение маркеров строк, для которых компилятор сгенерировал код;
• отображение маркеров строк, код которых был выполнен (при отладке по программным симулятором);
• всплывающая подсказка с отображением текущего значения имени в различных форматах при наведении курсора на символьное имя;
• смешанный режим отображения текста. Помимо строк исходного текста на C/C++ в окне редактора отображается сгенерированный компилятором для этих строк дизассемблированный код;
• добавление объекта («имени под курсором») в окна переменных и детального просмотра;
• просмотр списка классов, методов и функций языков С/C++, исходный текст которых находится в файле, с возможностью перехода на соответствующую строку файла.

Менеджер проектов

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

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

Кросс-средства

Входящий в состав CodeMaster++[ARM] кросс-компилятор C/C++ имеет следующие характеристики:
• реализует языки С и С++ в полном соответствии со стандартами ANSI/ISO 9899-1990 и ANSI/ISO 14882:1998 соответственно;
• выполняет удобные при разработке ПО встраиваемых систем расширения (размещение переменных по абсолютным адресам, управление инициализацией статических переменных, набор встроенных функций для доступа к ресурсам процессора и генерации специальных инструкций, встроенный ассемблер);
• генерирует высокоэффективный код с использованием широкого диапазона инструкций целевого микроконтроллера, включая расширения ARMv7E-M и FPv4-SP;
• предоставляет возможности управления оптимизацией генерируемого кода, как по скорости исполнения, так и по размеру;
• обеспечивает поддержку CMSIS и ARM EABI;
• создает расширенную символьную информацию для отладки по исходному тексту.

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

Отладка

Отладчик CodeMaster++ [ARM] поддерживает как высокоуровневую (в терминах языков C/C++), так и низкоуровневую (в терминах языка ассемблера) отладку. Интерфейс отладчика с примером окон доступа к ресурсам микроконтроллера представлен на рис. 4.

В обоих режимах поддерживается следующая функциональность:
• сброс процессора;
• установка/снятие точки останова;
• выполнение шага с заходом в подпрограмму;
• выполнение шага без захода в подпрограмму;
• исполнение программы до указанного в тексте места (до курсора);
• изменение значения PC (в режиме низкоуровневой отладки);
• просмотр/модификация переменных; • просмотр/модификация регистров микроконтроллера;
• просмотр/модификация памяти микроконтроллера.
Отладчик CodeMaster++ [ARM] позволяет отлаживать программы как на целевом микроконтроллере (с использованием аппаратного JTAG-отладчика), так и автономно (с использованием программного симулятора).
При отладке с помощью программного симулятора доступны программный трассировщик и анализатор эффективности (рис. 5).

Аппаратный отладчик

Аппаратный отладчик (эмулятор) JEM-NT-CM4 (рис. 6) — это электронное устройство, позволяющее работать с микроконтроллером К1921ВК01Т в режиме отладки пользовательской программы.

JEM-NT-CM4 выполнен в пластиковом корпусе, имеет разъем для подключения к USB-порту персонального компьютера с одной стороны и разъем для подключения через шлейф к целевой плате (рис. 7) с другой стороны.

Электропитание эмулятора осуществляется от USB-порта персонального компьютера. JEM-NT-CM4 имеет средства индикации в виде трех светодиодов, отображающих:
• наличие питания на плате отладчика (красный светодиод);
• наличие сигнала сброса на выходе отладчика (желтый светодиод);
• режим выполнения пользовательской программы: ход или останов (зеленый светодиод).
Информационный обмен при взаимодействии с целевым микроконтроллером, на отладочной плате (рис. 7) осуществляется по одному из отладочных портов: JTAG или SWD.

Средства автоматизации

В процессе разработки программного кода может возникнуть необходимость в автоматизации некоторых процессов. Например, таких как тестирование, специфическая настройка целевого микропроцессора перед запуском программ, фиксация и визуализация результата исполнения программ, генерация внешних событий, и т. п. Для этих целей в состав CodeMaster++ [ARM] включен интерпретатор скриптового C-подобного языка, обладающего следующими характеристиками:
• поддержка всех значимых конструкций языка C, за исключением структур, союзов и указателей;
• поддержка исполнения нескольких скриптов одновременно;
• возможность определения глобальных переменных, доступных всем одновременно запущенным скриптам. CodeMaster++ [ARM] предоставляет возможность отладки программ на скриптовом языке, включая пошаговое выполнение, точки останова и просмотр переменных.

Заключение

Процесс развития современных микроконтроллеров, в частности предназначенных для управления двигателей, идет семимильными шагами.
Великолепным решением этой задачи является новый отечественный разработанный АО «НИИЭТ» микроконтроллер К1921ВК01Т с ядром ARM Cortex-M4F, который действительно позволяет добиться отличных результатов при создании электропривода. До недавнего времени отечественные микроконтроллеры не удовлетворяли потребителей или слабой периферией, или слабым ядром. В настоящий момент ситуация кардинально изменилась — полная свобода возможностей для самых сложных структур управления и силовой части. Этот микроконтроллер также прекрасно подойдет для изготовления полностью отечественного многокоординатного прецизионного станочного сервопривода.

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

Отличным выбором является использование предназначенной для К1921ВК01Т интегрированной среды CodeMaster++[ARM] от ООО «Фирма Фитон» с интуитивно понятным интерфейсом, обладающей всем необходимым арсеналом средств для решения таких задач в кротчайшие сроки и с минимальными человеческими и иными затратами. Это полностью отечественная среда разработки, включая компиляторы. Данная среда, быстрая и оптимизированная, непременно будет интересна программистам, в частности, благодаря специализированному текстовому редактору, синтаксически ориентированному на языки С/С++, удобному менеджеру проектов, поддерживающему рабочие области и конфигурации, и пользовательской документации на русском языке на все компоненты пакета.