Se ha publicado la versión 1.8 del proyecto PikaScript, que desarrolla un motor compacto para escribir aplicaciones para microcontroladores en Python. PikaScript no está vinculado a dependencias externas y puede funcionar en microcontroladores con 4 KB de RAM y 32 KB de Flash, como el STM32G030C8 y el STM32F103C8. En comparación, MicroPython requiere 16 KB de RAM y 256 KB de Flash, mientras que Snek requiere 2 KB de RAM y 32 KB de Flash. El código del proyecto está escrito en C y se distribuye bajo la licencia MIT.
PikaScript proporciona un subconjunto del lenguaje Python 3, que admite elementos de sintaxis como operadores de bifurcación y bucles (if, while, for, else, elif, break, continue), operadores básicos (+ - * / ), módulos, encapsulación, herencia, polimorfismo, clases y métodos. Los scripts de Python se ejecutan en los dispositivos después de una compilación previa: PikaScript primero transforma el código Python en un bytecode interno de Pika Asm, que se ejecuta en el dispositivo final en un Pika Runtime especial. una máquina virtual Se admite la operación directamente sobre el hardware o en entornos RT-Thread, VSF (Versaloon Software Framework) y Linux.

Se destaca la simplicidad de integración de los scripts de PikaScript con el código en C: se pueden vincular funciones escritas en C al código, lo que permite aprovechar el trabajo de proyectos antiguos desarrollados en C al implementar PikaScript. Para el desarrollo de módulos C, se pueden utilizar entornos de desarrollo existentes, como Keil, IAR, RT-Thread Studio y Segger Embedded Studio. Las vinculaciones se generan automáticamente en la etapa de compilación; basta con definir la API en el archivo de código Python y la vinculación de funciones C a los módulos de Python se realizará durante la ejecución del compilador Pika Pre-compiler.

PikaScript anuncia el soporte para 24 microcontroladores, incluidos varios modelos stm32g*, stm32f*, stm32h*, WCH ch582, ch32*, WinnerMicro w80*, Geehy apm32*, Bouffalo Lab bl-706, Raspberry Pico, ESP32C3 y Infineon TC264D. Para comenzar a desarrollar rápidamente sin hardware, se proporciona un simulador o se ofrece una placa para desarrolladores Pika-Pi-Zero basada en el microcontrolador STM32G030C8T6 con 64 KB de Flash y 8 KB de RAM, que soporta interfaces periféricas estándar (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Los desarrolladores también han preparado un generador de proyectos online y un gestor de paquetes PikaPackage.
En la nueva versión se implementó la gestión de memoria basada en conteo de referencias y se añadió soporte para constructores virtuales (factory method). Se realizó un diagnóstico de problemas de memoria utilizando la herramienta valgrind. Se añadió soporte para la compilación de archivos pc de Python a bytecode y su empaquetado en el firmware. Se implementó la posibilidad de usar varios archivos de Python en firmwares sin necesidad de utilizar un sistema de archivos.
Fuente: opennet.ru
