Платформа разработки Simplicity Studio: все инструменты в единой оболочке

№ 6’2014
PDF версия
Платформа разработки Simplicity Studio — это автоматически обновляемый набор инструментов компании Silicon Labs, предназначенный для полного цикла разработки проектов для 32 разрядных ARM-контроллеров EFM32 и некоторых серий 8 разрядных микроконтроллеров C8051Fxxx. Главное отличие представленной платформы заключается в удобстве доступа ко всем имеющимся программным компонентам, примерам программ, документации и всему остальному, что может потребоваться при разработке программной части проекта. Платформа Simplicity Studio распространяется бесплатно и может быть использована еще до начала работы с микроконтроллерами Silicon Labs для оценки их ключевых характеристик.

После установки программы

При первом запуске программы и ее встроенного менеджера компонентов пользователю предлагается указать ассортимент поддерживаемых микроконтроллеров — любую комбинацию кристаллов EFM32 и C8051Fxxx (рис. 1), а программа сама выберет компоненты, которые поддерживают заданные кристаллы, и сама загрузит их из Интернета. При каждом последующем запуске Simplicity Studio будет осуществляться проверка обновления установленных компонентов и наличие новых компонентов и файлов, предназначенных для заданного набора микроконтроллеров.

Конфигурирование списка поддерживаемых устройств

Рис. 1. Конфигурирование списка поддерживаемых устройств

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

 

До начала разработки проекта

До начала разработки проекта можно сделать оценку предлагаемого ассортимента микроконтроллеров и выбрать кристалл, наиболее подходящий для поставленной задачи. Для этого в составе Simplicity Studio имеется параметрический поиск с функциями фильтрации по заданным критериям и сортировки результатов по столбцам (рис. 2). Единственное, чего не хватает системе, так это информации о стоимости кристаллов. Оценить соотношение их стоимости можно, выбрав требуемый артикул и нажав кнопку Buy: программа перенаправит на сайт интернет-магазина Silicon Labs, где указаны розничные цены. Реальную стоимость микросхем в России можно выяснить по запросу у дистрибьютора.

Параметрический поиск

Рис. 2. Параметрический поиск

После выбора определенного артикула в основном окне программы происходит привязка кнопок вызова документации к выбранному микроконтроллеру (рис. 3). При открытии документов осуществляется доступ к локальным файлам, а чтобы обеспечить их актуальность, программа Simplicity Studio при каждом запуске осуществляет проверку репозитория на наличие обновлений (при условии, что есть доступ к Интернету). В случае если появились новые версии документации или программных компонентов, система предлагает сделать их обновление.

Основное окно Simplicity Studio

Рис. 3. Основное окно Simplicity Studio

Помимо удобства доступа к документации (нет необходимости проверять наличие новых версий документов и программ на сайте производителя), пользователь избавлен от необходимости создания локального хранилища. Такое хранилище разработчик может создавать, например, перед командировкой, в которой предполагается наладка оборудования на объекте, где доступа к Интернету нет. В Simplicity Studio также размещается документация на аппаратные и программные средства, предназначенные для разработки проекта.

Simplicity Studio имеет набор примеров программ, готовых к компиляции и запуску на фирменных отладочных комплектах для кристаллов EFM32. Примеры программ включают готовые проекты для общепринятых коммерческих продуктов для микроконтроллеров ARM — от Keil и IAR Systems, а также для бесплатной среды разработки Simplicity IDE разработки фирмы Silicon Labs, о которой будет сказано позже. Эти примеры позволяют оценить возможности периферии, имеющейся на интересующем кристалле, еще до начала разработки проекта.

Так как микроконтроллеры EFM32 предназначены для задач с батарейным питанием, в состав Simplicity Studio включена утилита Energy Aware Battery, осуществляющая оценку длительности работы микроконтроллера при питании от типовых элементов (рис. 4). Утилита позволяет задать режимы работы микроконтроллера, выбрать периферийные блоки, которые будут использоваться в каждом из заданных режимов, указать длительность работы микроконтроллера в каждом из них и, что важно, дополнительные токи, которые будут создаваться через порты ввода/вывода на внешнюю периферию. При выборе режимов энергосбережения программа автоматически отображает только те периферийные блоки, которые могут быть активны в заданном режиме.

Расчет времени работы в Energy Aware Battery

Рис. 4. Расчет времени работы в Energy Aware Battery

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

 

Для разработки проекта

В состав платформы Simplicity Studio входят три основных компонента, предназначенных непосредственно для разработки проекта:

  • интегрированная среда разработки Simplicity IDE на базе платформы Eclipse;
  • графическая среда задания конфигурации периферии Energy Aware Designer;
  • набор библиотек EFM32 SDK (на текущий момент — версии 2.0).

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

Конфигурирование периферии в Energy Aware Designer

Рис. 5. Конфигурирование периферии в Energy Aware Designer

Другой компонент для разработки, Simplicity IDE, является классической интегрированной средой разработки, обеспечивающей написание кода на языке С, его компиляцию и линковку, пошаговую внутрисхемную отладку кода с использованием фирменных средств поддержки разработок, а также общепринятого для отладки микроконтроллеров с ядром ARM эмулятора J‑Link фирмы Segger (рис. 6).

Интерфейс Simplicity IDE

Рис. 6. Интерфейс Simplicity IDE

Построенная на базе платформы Eclipse, среда Simplicity IDE унаследовала ее функциональность и удобство использования: разработчику, уже знакомому с Eclipse, будет проще освоить новый инструментарий для микроконтроллеров EFM32.

Для компиляции и генерации исполняемого кода из исходных текстов программ в состав Simplicity IDE интегрирован GNU toolchain, который де-факто уже является стандартом для подобных бесплатных продуктов от производителей микроконтроллеров.

Третий, достаточно важный компонент — EFM32 SDK — является функционально насыщенным набором библиотек, ориентированных на разработку всех составляющих программного проекта для кристаллов EFM32. В EFM32 SDK содержатся файлы определения регистров специальных функций и файлы низкоуровневой инициализации всех серий микроконтроллеров, написанные для сред разработки IAR Embedded Workbench, Keil uVision, Atollic True Studio, CodeSourcery и GCC.

В EFM32 SDK также имеется набор библиотек CMSIS, распространяемый фирмой ARM в качестве стандартизованного интерфейса доступа к ресурсам процессоров Cortex-M0/M3/M4 (инструкциям, памяти, прерываниям) и периферии. CMSIS включает библиотеку (более 60 функций) цифровой обработки данных разных типов, причем оптимизация в библиотеке выполнена с учетом наличия SIMD-инструкций в процессоре Cortex-M4.

Для поддержки периферии, обвязывающей процессорное ядро, в EFM32 SDK реализован набор драйверов EMlib. Эти драйверы являются надстройкой над CMSIS и предлагают унифицированный доступ к периферийным блокам EFM32. Такой набор программных компонентов упрощает портирование проектов между различными сериями этих кристаллов.

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

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

Набор EFM32 SDK также включает исходные коды операционных систем реального времени FreeRTOS и двух операционных систем фирмы Micrium: uC/OS-II и uC/OS-III. Операционную систему FreeRTOS можно использовать в коммерческих целях бесплатно, а продукты Micrium требуют лицензионных отчислений при серийном выпуске изделий. Сюда же включена операционная система реального времени CMSIS-RTOS RTX фирмы ARM, распространяемая в объектных кодах и не требующая лицензионных отчислений.

Есть также библиотека EFM32 USB Stack, которая включает в себя поддержку интерфейса USB, представленную исходными кодами библиотеки нижнего уровня, объектными кодами библиотеки верхнего уровня, инсталлятором драйверов для операционных систем Windows и примерами программ по использованию этих библиотек. EFM32 USB Stack поддерживает следующие стандартные режимы передачи USB: Control, Interrupt и Bulk. Вне библиотеки реализованы загрузчики по USB, обеспечивающие обновление кода программы микроконтроллера:

c использованием класса USB MSD через доступ к файловой системе простой загрузкой файла «прошивки» (требуется загрузка bootloader при первоначальном программировании устройства);

через загрузчик, уже имеющийся в каждом серийно выпускаемом микроконтроллере EFM32.

Для реализации файловых систем на внешних носителях (SD-картах) в состав EFM32 SDK включен программный продукт Petit FatFs, обеспечивающий создание на носителе файловых систем FAT16 и FAT32 и манипуляции с файлами в рамках созданной или уже имеющейся файловой системы. Petit FatFs является компактным программным продуктом, разработанным изначально для 8‑разрядных микроконтроллеров, а значит, потребует совсем немного ресурсов кристаллов EFM32.

Набор EFM32 SDK еще содержит готовый к использованию программный комплекс для проведения всех типов тестирования микроконтроллеров EFM32 в составе устройств бытового и аналогичного назначения согласно требованиям стандартов IEC 60730 Annex H и IEC 60335 Class B. Эти стандарты приняты и в нашей стране. Комплекс включает в себя программы нижнего и верхнего уровней.

 

Отладка проекта

Помимо стандартной пошаговой внутрисхемной отладки, реализованной в Simplicity IDE, в составе Simplicity Studio имеется дополнительный инструмент — Energy Aware Profiler, который является средством поиска путей снижения энергопотребления путем оптимизации кода, разработанного для микроконтроллера EFM32.

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

Energy Aware Profiler работает в паре с измерителем тока, интегрированным на оценочных платах производства Silicon Labs (рис. 7). Он обеспечивает измерение тока в диапазоне от 100 нА до 50 мА. Для работы в широком динамическом диапазоне измеритель содержит два операционных усилителя. Один из них работает в диапазоне от 100 нА до 250 мкА (погрешность в пределах 100 нА), а другой — при более высоких токах (с погрешностью в пределах 1 мкА). Точность измерения достаточно высока благодаря автоматической компенсации токов смещения усилителей, а для уменьшения влияния помех осуществляется цифровая фильтрация и усреднение значений отсчетов. Итоговая частота следования результатов преобразования — 6250 отсчетов в секунду.

Фирменный отладочный комплект EFM32ZG-STK3200

Рис. 7. Фирменный отладочный комплект EFM32ZG-STK3200

Программа Energy Aware Profiler выводит в графическом виде значения потребляемого тока с течением времени (рис. 8). Установив курсор на определенную область, можно увидеть абсолютное значение. Для более точного рассмотрения диаграммы шкалу времени можно масштабировать. Если загрузить в Energy Aware Profiler объектный код исполняемой программы, то Energy Aware Profiler будет автоматически подставлять на диаграмме маркеры, указывающие переходы в функции основной программы и входы в обработчики прерываний, имеющиеся в коде. Благодаря высокой точности измерительной части отладочных средств вкупе с удачным решением для мониторинга потребляемого тока, такой программно-аппаратный комплекс можно использовать для детальной проработки проекта при оптимизации кода с целью снижения энергопотребления.

Измерение энергопотребления в Energy Aware Profiler

Рис. 8. Измерение энергопотребления в Energy Aware Profiler

 

Выводы

Платформа Simplicity Studio является инструментом, обеспечивающим поддержку полного цикла разработки проекта для микроконтроллеров EFM32. Для этого она содержит документацию на микросхемы и на программные и аппаратные средства поддержки разработки. Вся документация и программные компоненты поддерживаются в актуальном состоянии, поэтому у разработчика нет необходимости в регулярной проверке обновлений на сайте производителя. Средства для разработки программной части проекта требуют финансовых вложений в исключительных случаях, так как все программные компоненты распространяются бесплатно либо имеют альтернативу, распространяемую бесплатно. Сама Simplicity Studio и входящие в нее компоненты предлагаются бесплатно и доступны для скачивания на сайте производителя, что позволяет разработчику сделать проект, затратив лишь небольшие средства на покупку аппаратного отладочного средства от производителя либо от третьих фирм.

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

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