Vissza

MicroPython Frissts


Dinamikus USB-eszkzk tmogatsa s j Modulok Bevezetse

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 lehetvé tegyék a JavaScript és Python közötti proxyzást, valamint jelents 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 lehetvé 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önheten tetszleges 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 billentyzet, 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övben.

Támogatást nyer az OpenAMP (aszimmetrikus multiprocesszálás) protokoll a new openamp modulon keresztül. Ez lehetvé 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 lehetséget ad arra, hogy fejldjö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 megrzik egy tiszta Python implementációval az ssl modulhoz. Az új tls modul egyik új funkciója a tanúsítvány ellenrzé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égzdött és iterálható, valamint támogatás a féllebegpontos '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érhetvé, és a .mpy részverziója v6.2-rl 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).

Jelents 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 lehetvé 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 jelentsen csökkent méretet mutat. A kódméret továbbá tovább javult a nagyon kis célpontok számára, egy lehetsé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