Çfarë është PikaScript? PikaScript 1.8 tani është publikuar, duke zhvilluar një motor të kompakt për shkrimin e aplikacioneve për mikro-kontrollorët në gjuhën Python. PikaScript nuk është i varur nga varësitë e jashtme dhe mund të funksionojë në mikro-kontrollorët me 4 KB RAM dhe 32 KB Flash, si STM32G030C8 dhe STM32F103C8. Për krahasim, MicroPython kërkon 16 KB RAM dhe 256 KB Flash, ndërsa Snek kërkon 2 KB RAM dhe 32 KB Flash. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën MIT.
PikaScript ofron një nënshtrirje të gjuhës Python 3, duke mbështetur elemente të sintaksës si operatorët e degëzimit dhe cikleve (nëse, ndërsa, për, tjetër, elif, ndal, vazhdo), operatorët bazikë (+ - * / ), modulet, inkapsulimin, trashëgiminë, polimorfizmin, klasat dhe metodat. Skriptet Python ekzekutohen në dispozita pas kompilimit paraprak – PikaScript fillimisht e transformon kodin Python në kodin e brendshëm të bytes Pika Asm, i cili ekzekutohet në pajisjen përfundimtare në një Pika Runtime të veçantë. makinën virtuale Funksionon drejtpërdrejt mbi pajisjet ose në mjediset RT-Thread, VSF (Versaloon Software Framework) dhe Linux.

Veçanërisht, theksohet thjeshtësia e integrimit të skripteve PikaScript me kodin në gjuhën C – funksionet e shkruara në gjuhën C mund të lidhën me kodin, duke lejuar që në implementimin e PikaScript të përdoren burimet e projekteve të vjetra të shkruara në gjuhën C. Për zhvillimin e modulave në gjuhën C mund të përdoren mjediset e zhvillimit ekzistuese, si Keil, IAR, RT-Thread Studio dhe Segger Embedded Studio. Lidhjet krijohen automatikisht gjatë fazës së kompilimit, mjafton të përcaktohen API-të në skedarin me kodin Python dhe lidhja e funksioneve të gjuhës C me modulet Python do të realizohet gjatë kohës së ekzekutimit të kompilatorit Pika Pre-compiler.

Në PikaScript është deklaruar mbështetje për 24 mikro-kontrollorë, duke përfshirë modele të ndryshme stm32g*, stm32f*, stm32h*, WCH ch582, ch32*, WinnerMicro w80*, Geehy apm32*, Bouffalo Lab bl-706, Raspberry Pico, ESP32C3 dhe Infineon TC264D. Për një fillim të shpejtë të zhvillimit pa pajisje ofrohet një simulator ose një bord zhvillimi Pika-Pi-Zero i bazuar në mikro-kontrollorin STM32G030C8T6 me 64 KB Flash dhe 8 KB RAM, që mbështet periferi të zakonshme (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Zhvilluesit gjithashtu kanë përgatitur një gjenerator online të projekteve dhe një menaxher paketash PikaPackage.
Në versionin e ri është implementuar menaxhimi i memories mbi bazën e numërimit të referencave dhe është shtuar mbështetje për konstruktorët virtualë (factory method). Janë kryer diagnostikime të problemeve me memorien, të realizuara me mjete si valgrind. Është shtuar mbështetje për kompilimin e skedave .pc Python në kod bytes dhe paketimin në firmware. Është realizuar mundësia e përdorimit të shumë skedave Python në firmware pa nevojën e një sistemi skedar.
Burimi: opennet.ru
