PPo :2042




Po :2042
Vissza

MicroPython Frissítés


Dinamikus USB-eszközök támogatása és Új Modulok Bevezetése

https://micropython.org/

Az új MicroPython kiadás támogatást nyújt a dinamikus USB eszközöknek, amelyeket Pythonban lehet definiálni. Új modulokat vezetnek be, mint az openamp, tls és vfs, teljesen átdolgozzák a webassembly portot, hogy lehetõvé tegyék a JavaScript és Python közötti proxyzást, valamint jelentõs kódméret-optimalizációkat hajtanak végre az állandó moduloknál.

Egy hosszú tervezés, fejlesztés és tesztelési folyamat után a MicroPython mostantól teljes támogatást nyújt a felhasználó által definiált USB eszközökhöz. Az interfész egy új machine.USBDevice osztályon keresztül érhetõ el, ami lehetõvé teszi a felhasználó számára a USB leírók meghatározását és Python callback-ek implementálását a USB végpont-transzferekhez. Ennek köszönhetõen tetszõleges USB eszköz tisztán Pythonban implementálható. Habár a machine.USBDevice interfész alacsony szintû és teljes, létezik egy magasabb szintû USB könyvtár a micropython-lib-ben, ami könnyebbé teszi az eszközök implementálását, példákkal billentyûzet, egér, MIDI és soros CDC eszközökhöz. Ez a funkció jelenleg elérhetõ rp2 és samd portokon, és más portok is követik majd a jövõben.

Támogatást nyer az OpenAMP (aszimmetrikus multiprocesszálás) protokoll a new openamp modulon keresztül. Ez lehetõvé teszi a MicroPythonnak, hogy vezérelje a rendszer más CPU magjait, hogy folyamatokat töltsön be és indítson, valamint kommunikáljon velük végpontokon keresztül. Ez a funkció jelenleg elérhetõ a mimxrt és stm32 portokon.

Két további új modult vezetnek be: vfs és tls. A vfs modul tartalmazza az összes VFS (virtuális fájlrendszer) kapcsolódó függvényt és osztályt, mint a mount, umount és VfsFat. Ezek eredetileg az os modulban voltak, de ezek ott való tartása nem kompatibilis a CPythonnal, így áthelyezték õket saját dedikált moduljukba. Jelenleg még léteznek az os modulban, de végül eltávolítják onnan, így már most ajánlott használni a vfs modult. Hasonlóan az új tls modul az ssl modul egy fejlettebb változata, ahol az összes meglévõ funkcionalitást az ssl modulból áthelyezték a tls modulba. Ezt azért tették, mert a MicroPython SSL interfésze egyre inkább különbözik a CPythonétól, és a SSL/TLS funkcionalitás áthelyezése az új tls modulba lehetõséget ad arra, hogy fejlõdjön és új funkciókat szerezzen, amelyek hasznosak az ágyazott alkalmazások számára. A normál Pythonnal való kompatibilitást továbbra is megõrzik egy tiszta Python implementációval az ssl modulhoz. Az új tls modul egyik új funkciója a tanúsítvány ellenõrzési visszahívás regisztrálásának képessége.

Egyéb hozzáadások közé tartozik több metódus a deque objektumon, így az duplán végzõdött és iterálható, valamint támogatás a féllebegõpontos 'e' formátumhoz a struct.pack/struct.unpack függvényekben. A dinamikus natív moduloknál néhány további futási metódus lett hozzáférhetõvé, és a .mpy részverziója v6.2-rõl v6.3-ra emelkedett (a .mpy fájlokban található natív kód újra kell fordítani, de a bájtkód nem, és továbbra is kompatibilis marad).

Jelentõs kódméret-optimalizációkat hajtottak végre a fagyasztott moduloknál is. Egy új belsõ mp_proto_fun_t típusú változót definiáltak, amely lehetõvé teszi a bájtkód függvények (szemben a natív kóddal) gyakori esetének tárolását fagyasztott kódban, a mp_raw_code_t leíró struktúra további overhead nélkül. Az összes fagyasztott modult használó firmware jelentõsen csökkent méretet mutat. A kódméret továbbá tovább javult a nagyon kis célpontok számára, egy lehetõség hozzáadásával a qstr hash byte-ok eltávolításához.

A forráskódban a "STATIC" makró definíció eltávolításra került. A kód mostantól csak "static" szót használjon. Ha olyan C/C++ kódja van, amely használja a "STATIC" szót, akkor cserélje le azt "static"-ra, vagy adjon meg egy saját #define-ot, hogy "STATIC"-ot "static"-ként definiáljon.

https://prog.hu/hirek/6700/micropython-1-23-dinamikus-usb-webassembly-js-barat-mikrokontroller-ertelmezo