È stata pubblicata la versione 1.8 del progetto PikaScript, che sviluppa un motore compatto per la scrittura di applicazioni per microcontrollori in Python. PikaScript non è legato a 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 richiede 2 KB di RAM e 32 KB di Flash. Il codice del progetto è scritto in linguaggio C e distribuito con licenza MIT.
PikaScript fornisce un sottoinsieme del linguaggio Python 3, supportando elementi di sintassi come operatori di branched 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 compilazione preliminare: PikaScript prima trasforma il codice Python in bytecode interno Pika Asm, che viene eseguito sul dispositivo finale in Pika Runtime. macchina virtuale È supportato il funzionamento direttamente sull'hardware o in ambienti RT-Thread, VSF (Versaloon Software Framework) e Linux.

Si segnala in particolare la semplicità di integrazione degli script PikaScript con il codice in linguaggio C: le funzioni scritte in linguaggio C possono essere associate al codice, permettendo l'utilizzo di ciò che è stato realizzato in progetti passati scritti in linguaggio C. Per lo sviluppo di moduli C possono essere utilizzati ambienti di sviluppo esistenti, come Keil, IAR, RT-Thread Studio e Segger Embedded Studio. I binding vengono generati automaticamente durante la compilazione; è sufficiente definire l'API nel file contenente il codice Python e il binding delle funzioni C ai moduli Python sarà eseguito durante l'avvio del compilatore Pika Pre-compiler.

PikaScript annuncia il supporto per 24 microcontrollori, incluse varie 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 hardware, è fornito un simulatore o è disponibile una scheda per sviluppatori Pika-Pi-Zero basata sul microcontrollore STM32G030C8T6 con 64 KB di Flash e 8 KB di RAM, che supporta interfacce periferiche standard (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Gli sviluppatori hanno anche preparato un generatore di progetti online e un gestore pacchetti PikaPackage.
Nella nuova versione è stata implementata la gestione della memoria basata sul conteggio dei riferimenti e aggiunto il supporto per i costruttori virtuali (factory method). È stata effettuata una diagnostica dei problemi di memoria, eseguita utilizzando lo strumento valgrind. È stato aggiunto il supporto per la compilazione di file .pc Python in bytecode e per l'imballaggio nel firmware. È stata realizzata la possibilità di utilizzare più file Python nei firmware senza la necessità di un file system.
Fonte: opennet.ru
