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

 
 
 
«Design and programming are human activities; forget that and all is lost.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: 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, а также асинхронную передачу данных между уровнями.