Микропроцессоры и микроконтроллеры

 
 
 
«Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.»
Brian W. Kernighan.
Русский | Українська


Микропроцессоры и микроконтроллеры :: JAVA и STM32 - курс экспресс-программирования с MicroEJ :: JAVA и STM32 - курс экспресс-программирования с MicroEJ. Часть первая

JAVA и STM32 - курс экспресс-программирования с MicroEJ. Часть первая

Не верьте мифам: микроконтроллеры STM32 - отличная аппаратная платформа для разработчиков, которым нравится Java! Как вы увидите, следуя нашему курсу, долгое ожидание ответа после вопроса «Кто там?» Не относится к решениям, основанным на среде IS2T.

От редакции: во-первых, объяснение введения для людей, которые не знают старой шутки о Java: первые решения, основанные на идее интерпретации предварительно скомпилированных программ, написанных на этом языке специальным интерпретатором, называемым виртуальной машиной Java, имели общий недостаток - они были очень медленными. Эта медлительность была прокомментирована популярной шуткой:

- Тук тук.
- Кто там?
(долгое молчание)
- Java.

- Тук тук.
- Кто там?
- C ++.

- Тук тук.
- Ассемблер.


Программы, написанные на Java, все еще не так быстры, как написанные на ассемблере, но они не такие медленные, как предложено в цитируемой статье. Мы получаем удобство программирования и доступ ко многим готовым функциям, благодаря которым мы экономим время и повышаем надежность и стабильность приложения. Это стоит попробовать!

Мир микроконтроллеров постоянно развивается, изменения затрагивают не только аппаратное обеспечение, но также программирование и доступные инструменты. 32-разрядные микроконтроллеры с ядрами Cortex-M уже предлагаются всеми ведущими производителями и успешно конкурируют с 8-разрядными архитектурами по цене и возможностям. Разработчики встраиваемых систем получают все больше и больше инструментов - как платных, так и бесплатных, благодаря которым их работа становится более эффективной, а программное обеспечение можно создавать гораздо быстрее. В настоящее время никого не должно удивлять веб-серверы и приложения, оснащенные богатыми графическими пользовательскими интерфейсами, работающими даже на самых простых и дешевых микропроцессорах. В переносе приложений между платформами помогают все более многочисленные операционные системы, а современные компиляторы позволяют заменять ассемблер языком C и даже объектно-ориентированными языками, такими как Java или C ++. Именно в этом направлении компания IS2T собиралась предоставить MicroEJ, набор инструментов, позволяющих соединять языки Java и C в семействе микроконтроллеров STM32.

1. Среда программирования

MicroEJ предоставляет ряд инструментов для разработки и библиотек, облегчающих создание сложных приложений для встроенных систем на основе микроконтроллеров семейства STM32 (кстати для ещё большего облегчения процесса разработки можно выпить хорошего крепкого кофе, а профессиональные кофемолки для приготовления кофе рекомендуем заказать на сайте prom-katalog.ru). К ним относятся библиотеки связи (включая WiFi, Bluetooth, USB и т. Д.), Библиотеки и инструменты, поддерживающие создание расширенных пользовательских интерфейсов на основе графических дисплеев, сенсорных панелей и кнопок, а также математические библиотеки, поддерживающие вычисления.


Приложения делятся на два слоя. Первый, помеченный в MicroEJ как BSP, написан на языке C и включает в себя периферийные устройства и драйверы внешних устройств, поддержку прерываний и дополнительную систему реального времени (например, поддерживаются FreeRTOS, RTX, μc / OS). На этом уровне могут использоваться периферийные библиотеки, предоставляемые ST, и код в основном генерируется автоматически. Для его компиляции мы можем использовать один из популярных инструментов: Keil, IAR, GCC.

Верхний уровень включает основное приложение, написанное на Java, работающее на виртуальной машине (JVM), созданной компанией IS2T. Это часть так называемой Платформа (JPF - рисунок 1) также содержит стандартные, математические, графические и коммуникационные библиотеки. Эта платформа требует только 28 КБ флэш-памяти и менее 1,5 КБ ОЗУ. Работа с Java-приложениями происходит в среде MicroEJ на основе EcExse (рисунок 2).

Преимущество этого подхода заключается в четком разделении уровня контроллера низкого уровня от логики и графического уровня более высокого уровня. Кроме того, при написании новых приложений вы можете использовать старый код, написанный как на Java, так и на C. Реализация виртуальной машины совместима с J2SE и содержит базовые библиотеки: java.io, java.lang, java.util, java.lang.annotation, java .lang.ref и java.lang.reflect, а байт-код генерируется с использованием стандартного компилятора Java. Очевидным ограничением являются ресурсы используемого микроконтроллера, что означает, что не все приложения, подготовленные для ПК, могут быть запущены на подготовленной платформе.

Оба уровня могут взаимодействовать друг с другом с помощью механизмов SNI (Simple Native Interface) и SP (Shielded Plug), которые позволяют вызывать функции, реализованные в C на уровне приложения Java, а также асинхронную передачу данных между уровнями.