È stata pubblicata la versione 1.8 del progetto PikaScript, che sviluppa un motore compatto per scrivere applicazioni per microcontrollori in linguaggio Python. PikaScript non dipende da dipendenze esterne e può funzionare su microcontrollori con 4 KB di RAM e 32 KB di Flash, come STM32G030C8 e STM32F103C8. A titolo di confronto, MicroPython richiede 16 KB di RAM e 256 KB di Flash, mentre Snek necessita di 2 KB di RAM e 32 KB di Flash. Il codice del progetto è scritto in linguaggio C ed è distribuito con licenza MIT.
PikaScript fornisce un sottoinsieme del linguaggio Python 3, supportando elementi di sintassi come operatori di branching e cicli (if, while, for, else, elif, break, continue), operatori di base (+ - * / ), moduli, incapsulamento, ereditarietà, polimorfismo, classi e metodi. Gli script Python vengono eseguiti sui dispositivi dopo una previa compilazione: PikaScript converte inizialmente il codice Python in bytecode interno Pika Asm, che viene eseguito sul dispositivo finale in modo speciale. macchina virtuale Pika Runtime. È supportata l'esecuzione direttamente sull'hardware o in ambienti RT-Thread, VSF (Versaloon Software Framework) e Linux.

Si segnala la semplicità di integrazione degli script PikaScript con il codice in linguaggio C: le funzioni scritte in C possono essere collegate al codice, consentendo di utilizzare le risorse dei vecchi progetti scritti in C durante l'implementazione di PikaScript. Per lo sviluppo di moduli C possono essere utilizzati ambienti di sviluppo esistenti, come Keil, IAR, RT-Thread Studio e Segger Embedded Studio. I collegamenti vengono generati automaticamente durante la fase di compilazione; è sufficiente definire l'API nel file di codice Python, e il collegamento delle funzioni C ai moduli Python verrà effettuato al momento dell'avvio del compilatore Pika Pre-compiler.

PikaScript supporta 24 microcontrollori, tra cui diversi modelli stm32g*, stm32f*, stm32h*, WCH ch582, ch32*, WinnerMicro w80*, Geehy apm32*, Bouffalo Lab bl-706, Raspberry Pico, ESP32C3 e Infineon TC264D. Per un rapido avvio dello sviluppo senza attrezzature, è disponibile un simulatore oppure una scheda per sviluppatori Pika-Pi-Zero basata sul microcontrollore STM32G030C8T6 con 64 KB di Flash e 8 KB di RAM, che supporta le interfacce periferiche standard (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Gli sviluppatori hanno anche preparato un generatore di progetti online e un gestore di pacchetti PikaPackage.
Nella nuova versione è stata implementata la gestione della memoria basata sul conteggio dei riferimenti e aggiunto supporto per i costruttori virtuali (factory method). È stata effettuata una diagnosi dei problemi di memoria utilizzando lo strumento valgrind. È stato aggiunto il supporto per la compilazione dei file pc di Python in bytecode e per l'imballaggio nel firmware. È stata implementata la possibilità di utilizzare più file Python nei firmware senza la necessità di utilizzare il file system.
Fonte: opennet.ru
