Die Version 1.8 des PikaScript-Projekts wurde veröffentlicht, das eine kompakte Engine zur Entwicklung von Anwendungen für Mikrocontroller in der Programmiersprache Python bietet. PikaScript ist nicht an externe Abhängigkeiten gebunden und kann auf Mikrocontrollern mit 4 KB RAM und 32 KB Flash, wie dem STM32G030C8 und dem STM32F103C8, betrieben werden. Zum Vergleich: MicroPython benötigt 16 KB RAM und 256 KB Flash, während Snek 2 KB RAM und 32 KB Flash benötigt. Der Code des Projekts ist in C geschrieben und steht unter der MIT-Lizenz.
PikaScript bietet eine Teilmenge der Programmiersprache Python 3 und unterstützt Syntaxelemente wie Verzweigungs- und Schleifenoperatoren (if, while, for, else, elif, break, continue), grundlegende Operatoren (+ — * / ), Module, Kapselung, Vererbung, Polymorphismus, Klassen und Methoden. Python-Skripte werden auf den Geräten nach einer Vorabkompilierung ausgeführt — PikaScript wandelt zunächst Python-Code in einen internen Bytecode namens Pika Asm um, der dann auf dem Endgerät in einer speziellen Pika Runtime ausgeführt wird. virtuellen Maschine Es wird unterstützt, direkt über der Hardware oder in den Umgebungen RT-Thread, VSF (Versaloon Software Framework) und Linux zu arbeiten.

Besonders hervorzuheben ist die einfache Integration von PikaScript-Skripten mit C-Code – C-Funktionen können an den Code gebunden werden, was es ermöglicht, beim Einsatz von PikaScript auf die Ergebnisse früherer Projekte in C zurückzugreifen. Bei der Entwicklung von C-Modulen können gängige Entwicklungsumgebungen wie Keil, IAR, RT-Thread Studio und Segger Embedded Studio verwendet werden. Die Bindungen werden automatisch während des Kompilierungsvorgangs generiert; es genügt, die API in der Python-Code-Datei zu definieren, und die Bindungen der C-Funktionen an die Python-Module werden beim Start des Pika Pre-compilers erstellt.

PikaScript unterstützt 24 Mikrocontroller, darunter verschiedene Modelle von stm32g*, stm32f*, stm32h*, WCH ch582, ch32*, WinnerMicro w80*, Geehy apm32*, Bouffalo Lab bl-706, Raspberry Pico, ESP32C3 und Infineon TC264D. Um den Einstieg in die Entwicklung ohne Hardware zu erleichtern, wird ein Simulator bereitgestellt oder ein Entwicklerboard Pika-Pi-Zero auf Basis des Mikrocontrollers STM32G030C8T6 mit 64 KB Flash und 8 KB RAM angeboten, das gängige Peripherie-Interfaces (GPIO, TIME, IIC, RGB, KEY, LCD, RGB) unterstützt. Die Entwickler haben zudem einen Online-Projektgenerator und einen Paketmanager namens PikaPackage erstellt.
In der neuen Version wurde das Speichermanagement basierend auf Referenzzählung implementiert und die Unterstützung für virtuelle Konstruktoren (Factory Method) hinzugefügt. Zudem wurde eine Diagnose der Speicherprobleme mit dem Tool valgrind durchgeführt. Es wurde die Unterstützung für die Kompilierung von Python .pc-Dateien in Bytecode und deren Verpackung in Firmware integriert. Es ist jetzt möglich, mehrere Python-Dateien in Firmwares zu verwenden, ohne auf das Dateisystem zugreifen zu müssen.
Quelle: opennet.ru
