цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Решения для программирования микроконтроллеров с ядром ARM Cortex-M

Решения для программирования микроконтроллеров с ядром ARM Cortex-M

Автор: Mike(admin) от 29-10-2013, 18:00

Архитектура ARM и средства разработки


Все большее число производителей предлагают 32-разрядные микроконтроллеры на основе ядра ARM Cortex-M, и в то же время, имеются и новые среды разработки, предназначенные для таких микроконтроллеров. Некоторые языки программирования и инструменты, ранее доступные только для настольных компьютеров, в настоящее время портируются на ARM-микроконтроллеры.


Технические преимущества архитектуры ARM Cortex-M, такие как высокая производительность, высокая плотность кода, поддержка ОС и гибкость системы памяти, также позволяют использовать новые методы разработки программного обеспечения на ARM-устройствах. Использование этих методов с 16- или 8-разрядными микроконтроллерами может быть неэффективным или даже невозможным.


Открытость архитектуры ARM позволяет поставщикам программных сред разработки создавать среды для множества микроконтроллеров различных производителей, в то время как инструменты, разработанные для 8- и 16-разрядных устройств имеют ограниченный охват рынка.


Более широкая область внедрения также позволяет поставщикам программных инструментов создавать среды разработки приложений для определенных сегментов рынка встраиваемых решений, вроде M2M (межмашинное взаимодействие) и IoT (Интернет вещей), а также внедрять альтернативные языки программирования.


Технология Java


Технология Java ускоряет процесс разработки и прототипирования. Хотя существует несколько сред Java, здесь мы рассмотрим две.


Программирование с помощью программного комплекта разработки (SDK) Java ME (Micro Edition) идентично программированию с помощью Java SE (Standard Edition) Embedded (например, Eclipse/Netbeans IDE) за исключением того, что скомпилированный объект оптимизирован для встраиваемых систем, поддерживающих компактные носители, и библиотека графического пользовательского интерфейса или JavaFX не доступны на Java ME.


Например, если на микроконтроллере запущена Java ME Embedded, то Java-приложения могут быть сохранены на SD-карту или во внутреннюю память. При запуске системы Java ME Embedded может прочитать файл конфигурации и идентифицировать Java-приложение для последующей загрузки и выполнения.


JavaVM

процесс разработки с использованием Java ME Embedded

Как правило, для хранения приложения и виртуальной Java-машины (JVM) требуется 256 КБ оперативной памяти и от 1 до 1.5 МБ ПЗУ. Стоит заметить, что приложения, запущенные на JVM, не гарантируют работу в реальном времени. Тем не менее, JVM может работать как один из потоков операционной системы реального времени (ОСРВ) параллельно с другими задачами реального времени, которые могут общаться друг с другом с помощью событийного механизма связи.


Java хорошо портируема: код может работать как на микроконтроллерах, так и на интернет-шлюзах, домашних серверах или больших серверах баз данных. Java ME и Java SE позволяют разрабатывать приложения, которые функционируют на различных встраиваемых платформах.


Для устройств IoT и M2M Java ME также предоставляет API протокола TCP/IP, что позволяет Java-приложениям открывать сокеты TCP/IP, общаться с другими устройствами и добавлять дополнительные стеки вроде Bluetooth. Дополнительные интерфейсы для клиент-серверного взаимодействия позволяют небольшим микроконтроллерным системам общаться с Oracle-серверами баз данных.


Изолированная среда Java может повысить безопасность, но может быть неудобна для задач управления. Java ME имеет периферийные API для облегчения этого процесса, но в отличие от традиционного программирования на C, эти API достаточно высокоуровниевые и, возможно, не в состоянии поддерживать некоторые специальные функции устройств. Некоторые задачи управления портами ввода/вывода могут быть разделены и работать как потоки наряду с JVM в ОСРВ.


IS2T MicroEJ

процесс разработки с использованием IS2T MicroEJ, который доступен в качестве компонента STM32Java SDK компании STMicroelectronics

Существует довольно много микроконтроллеров Cortex-M с несколькими сотнями килобайтов flash и оперативной памяти. Если вы хотите использовать на этих устройствах Java, то MicroEJ компании IS2T будет наиболее подходящим средством. Процесс разработки для MicroEJ оптимизирован под небольшие контроллеры, потому как Java-объекты сначала оптимизируются, проходят предварительную обработку и связываются друг с другом до загрузки в микроконтроллер вместо непосредственной загрузки кода в виртуальную машину.


MicroJvm загружается за 2 мс, работает при частоте ядра ARM Cortex-M3/M4 120 МГц и требует 28 КБ flash-памяти и 1 КБ оперативной памяти (не включая код приложения). Даже библиотеке человеко-машинного взаимодействия с графическим интерфейсом пользователя (GUI) нужно от 90 до 140 КБ flash-памяти.


MicroEJ SDK содержит опции Java Platform (JPF), включая корневые компоненты вроде MicroJvm и стандартные библиотеки, а также пакеты типа MicroUI (интерфейс пользователя), MWT (Micro Widget Toolkit, фреймворк виджетов), декодер изображений PNG и графические инструменты. Все эти компоненты позволяют разработчикам в короткие сроки создавать GUI, а объектно-ориентированный характер Java и автоматическое управление памятью предоставляют отличную платформу для работы с динамическими компонентами GUI.


Java-приложения могут обращаться к функциям библиотеки драйверов устройства через SNI (simple native interface, простой встроенный интерфейс) или Shield Plug.


MicroJvm может работать в качестве одной задачи в рамках какой-то операционной системы или функционировать сама по себе, поскольку в ней содержится свой собственный планировщик задач, называемый green thread (зеленый поток).


MicroEJ предоставляет среду разработки на базе Eclipse для создания Java-приложений на рабочем столе и симулятор, называемый SimJPF, который имеет функцию, позволяющую производить симуляцию с реальными линиями ввода/вывода. Также имеется инструмент Front Panel Designer для разработки виртуальных устройств.


Java и C/asm

архитектура программы с использованием Java и «родных» языков (C, ассемблер)

Научные и математические приложения


В феврале 2013 года было объявлено, что программы, созданные в MATLAB и Simulink, будут поддерживаться микроконтроллерами с ядром ARM Cortex-M. Функция Embedded Coder позволяет генерировать код на C из проектов для MATLAB или Simulink, и для достижения лучшей производительности используется библиотека CMSIS-DSP.


Средства моделирования типа Simulink могут существенно сократить время разработки. Например, модель системы управления двигателем может быть создана и протестирована в Simulink. После проверки модели Embedded Coder может сгенерировать код на языке C, после этого можно проверить систему в «железе» с помощью конфигурации processor-in-the-loop (PIL), и в конечном итоге можно завершить проектирование, добавив необходимые строки кода для управления периферией. Поскольку код алгоритма управления генерируется автоматически, то ошибки, допущенные человеком, в данном случае исключаются.


Simulink и PIL

Работа системы управления в Simulink с PIL

LabVIEW


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


LabVIEW имеет библиотеку функций для цифровой обработки сигналов (фильтрация, спектральный анализ), математических расчетов, обработки массивов и матриц, и они позволяют разрабатывать приложение без глубоких знаний программирования или алгоритмов. Для сложных приложений программное обеспечение можно разбить на Virtual Instruments (VIs) и subVIs. Такое разделение на категории и подкатегории показано на рисунке ниже.


LabVIEW

Иерархическое разделение элементов в LabVIEW

Генератор C-кода в пакете LabVIEW берет графический код и преобразует его в процедурный код на языке C, который затем может использоваться в традиционных средах программирования (Keil MDK-ARM, IAR Embedded Workbench). В процессе разработки код можно протестировать, запустив его в среде LabVIEW на ПК.


Перевод © digitrode.ru


<Источник>


Теги: Cortex, ARM



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


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

Комментарии:

Оставить комментарий