Выпуск PikaScript 1.8, варианта языка Python для микроконтроллеров

Опубликован выпуск проекта PikaScript 1.8, развивающего компактный движок для написания приложений для микроконтроллеров на языке Python. PikaScript не привязан к внешним зависимостям и может работать на микроконтроллерах с 4 МБ ОЗУ и 32 КБ Flash, таких как STM32G030C8 и STM32F103C8. Для сравнения для работы MicroPython требуется 16 МБ ОЗУ и 256КБ Flash, а для Snek – 2 МБ ОЗУ и 32 КБ Flash. Код проекта написан на языке Си и распространяется под лицензией MIT.

PikaScript предоставляет подмножество языка Python 3, поддерживающее такие элементы синтаксиса, как операторы ветвления и циклов (if, while, for, else, elif, break, continue), базовые операторы (+ – * / ), модули, инкапсуляцию, наследование, полиморфизм, классы и методы. Python-скрипты выполняются на устройствах после предварительной компиляции – PikaScript вначале преобразует Python-код во внутренний байткод Pika Asm, который на конечном устройстве выполняется в специальной виртуальной машине Pika Runtime. Поддерживается работа напрямую поверх оборудования или в окружениях RT-Thread, VSF (Versaloon Software Framework) и Linux.


Отдельно отмечается простота интеграции скриптов PikaScript с кодом на языке Си – к коду могут привязываться написанные на языке Си функции, что позволяет при внедрении PikaScript использовать наработки старых проектов, написанных на языке Си. Для разработки Си-модулей могут использовать существующие среды разработки, такие как Keil, IAR, RT-Thread Studio и Segger Embedded Studio. Привязки генерируются автоматически на этапе компиляции, достаточно определить API в файле с Python-кодом и привязка Си-функций к модулям Python будет выполнена во время запуска компилятора Pika Pre-compiler.


В PikaScript заявлена поддержка 24 микроконтроллеров, включая различные модели stm32g*, stm32f*, stm32h*, WCH ch582, ch32*,
WinnerMicro w80*, Geehy apm32*, Bouffalo Lab bl-706, Raspberry Pico, ESP32C3 и Infineon TC264D. Для быстрого начала разработки без оборудования предоставляется симулятор или предлагается плата для разработчиков Pika-Pi-Zero на основе микроконтроллера STM32G030C8T6 с 64 КБ Flash и 8 КБ ОЗУ, поддерживающая типовые периферийные интерфейсы (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Разработчики также подготовили online-генератор проектов и пакетный менеджер PikaPackage.

Release. Ссылка here.