MicroPython Cross Compiler
Motivácia
Jazyk MicroPython je interpretovaný jazyk. To znamená, že kód je napísaný v textovej podobe a je interpretovaný pomocou interpretéra.
To však môže byť problém, ak sa budeme snažiť naše know-how uchrániť, pretože kód zostane vždy čitateľný vo svojej textovej podobe. Stačí totiž, aby sa niekto dostal na súborový systém mikrokontroléra a potrebné súbory prevzal.
mpy-cross je nástroj na preklad (cross-kompiláciu)
Python zdrojových súborov (.py) do
MicroPython bytekódu (.mpy). Preložené súbory sú
menšie a načítavajú sa rýchlejšie, čo je dôležité pri obmedzených
zdrojoch mikrokontroléra.
Inštalácia
Nástroj je potrebné nainštalovať do systému samostatne pomocou niektorého z nasledovných príkazov:
# pomocou príkazu uv
$ uv add mpy-cross --group dev
$ uv sync --group dev
# pomocou pr9kazu pip
$ pip install mpy-cross
Použitie
Základné použitie príkazu je veľmi jednoduché:
$ mpy-cross source.pyVýsledkom bude bytecode súbor source.mpy.
Zoznam parametrov príkazu je nasledovný:
-o <file>- Výstupný súbor (predvolene<vstup>.mpy)-march=<arch>- Cieľová architektúra (armv6m,armv7m,xtensa, …)-O<n>- Úroveň optimalizácie (0–3)--version- Verzia nástroja
Výber cieľovej architektúry
Výsledná podoba vytvoreného bytecode súboru sa môže líšiť od
architektúry zariadenia, na ktorom bude kód spúšťaný. Architektúru
výsledného bytecode súboru je možné nastaviť pomocou voľby
-march.
Pre Raspberry Pi Pico 2 W (RP2350, ARM Cortex-M33):
$ mpy-cross -march=armv6m source.pyZoznam podporovaných architektúr je uvedený v nasledujúcej tabuľke:
| Architektúra | Opis |
|---|---|
x86 |
32-bit x86 |
x64 |
64-bit x86-64 |
armv6m |
ARM Cortex-M0/M0+ (napr. RP2040 — Pico 1) |
armv7m |
ARM Cortex-M3 |
armv7em |
ARM Cortex-M4/M7 |
armv7emsp |
ARM Cortex-M4F (single precision FP) |
armv7emdp |
ARM Cortex-M4/M7 (double precision FP) |
xtensa |
ESP8266 |
xtensawin |
ESP32 |
Optimalizácia
# vypnutie informácii o zdrojovom kóde (menší súbor)
$ mpy-cross -O2 source.pyPoznámka
Verzia mpy-cross musí presne zodpovedať verzii jazyka
MicroPython na zariadení. Formát bytecode súboru sa mení medzi
verziami jazyka MicroPython. Ak sa verzie nezhodujú, dôjde k
odmietnutiu načítania .mpy súboru.
Nástroj mpy-cross je možné nainštalovať pre konkrétnu
verziu jazyka MicroPython príkazom:
$ pip install mpy-cross==1.24.0Verziu nástroja mpy-cross je možné zistiť pomocou voľby
--version:
$ mpy-cross --version
MicroPython v1.27.0 on 2025-12-13; mpy-cross emitting mpy v6.3Odkazy
- mpy-cross - domovská stránka prekladača