Foi lançado o PikaScript 1.8, que desenvolve um motor compacto para criar aplicativos para microcontroladores em Python. O PikaScript não está vinculado a dependências externas e pode operar em microcontroladores com 4 KB de RAM e 32 KB de Flash, como STM32G030C8 e STM32F103C8. Para comparação, o MicroPython requer 16 KB de RAM e 256 KB de Flash, enquanto o Snek precisa de 2 KB de RAM e 32 KB de Flash. O código do projeto é escrito em C e é distribuído sob a licença MIT.
O PikaScript fornece um subconjunto da linguagem Python 3, suportando elementos de sintaxe como operadores de ramificação e laços (if, while, for, else, elif, break, continue), operadores básicos (+ — * / ), módulos, encapsulamento, herança, polimorfismo, classes e métodos. Os scripts em Python são executados em dispositivos após uma pré-compilação — o PikaScript primeiro converte o código Python em bytecode interno Pika Asm, que é executado no dispositivo final em um runtime Pika. máquina virtual Suporta a execução diretamente sobre o hardware ou em ambientes como RT-Thread, VSF (Versaloon Software Framework) e Linux.

Destaca-se a simplicidade de integração dos scripts PikaScript com o código em C — funções escritas em C podem ser vinculadas ao código, permitindo a adoção de conceitos de projetos antigos desenvolvidos em C ao implantar o PikaScript. Para o desenvolvimento de módulos em C, podem ser utilizadas IDEs existentes, como Keil, IAR, RT-Thread Studio e Segger Embedded Studio. As ligações são geradas automaticamente na fase de compilação, bastando definir a API no arquivo de código Python, e a vinculação das funções em C aos módulos Python será realizada durante a execução do compilador Pika Pre-compiler.

O PikaScript declara suporte a 24 microcontroladores, incluindo vários modelos stm32g*, stm32f*, stm32h*, WCH ch582, ch32*, WinnerMicro w80*, Geehy apm32*, Bouffalo Lab bl-706, Raspberry Pico, ESP32C3 e Infineon TC264D. Para iniciar o desenvolvimento sem hardware, é fornecido um simulador ou uma placa de desenvolvimento Pika-Pi-Zero com base no microcontrolador STM32G030C8T6, com 64 KB de Flash e 8 KB de RAM, que suporta interfaces periféricas padrão (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Os desenvolvedores também prepararam um gerador de projetos online e o gerenciador de pacotes PikaPackage.
Na nova versão, foi implementado um gerenciamento de memória baseado em contagem de referências e adicionada a suporte a construtores virtuais (factory method). Foi realizada uma diagnóstico de problemas de memória utilizando a ferramenta valgrind. A compatibilidade com a compilação de arquivos pc do Python em bytecode e seu empacotamento em firmware foi adicionada. Foi implementada a possibilidade de usar vários arquivos Python em firmwares sem a necessidade de utilizar um sistema de arquivos.
Fonte: opennet.ru
