Guida alla migrazione a MicroPython 2.0

MicroPython 2.0 è la prossima versione principale di MicroPython (attualmente in sviluppo, non ancora disponibile).

Dopo aver mantenuto la compatibilità delle API per quasi un decennio con la serie 1.x, al fine di sbloccare alcuni miglioramenti a livello di progetto MicroPython 2.0 introdurrà un piccolo numero di modifiche incompatibili alle API che richiederanno l’aggiornamento di alcuni programmi. Questa guida spiega come aggiornare il tuo codice Python per adattarsi a queste modifiche.

Questo documento è un work-in-progress. Man mano che il lavoro su MicroPython 2.0 procede, verranno aggiunte più voci agli elenchi seguenti.

Nota: attualmente non sono disponibili per il download build del firmware MicroPython 2.0. Puoi compilarlo tu stesso abilitando l’opzione di configurazione MICROPY_PREVIEW_VERSION_2. Man mano che si avvicina la disponibilità per il rilascio, verranno fornite build sia per 1.x.y sia per 2.0.0-preview.

Hardware e periferiche

Panoramica

L’obiettivo è migliorare la coerenza nelle API di machine tra le diverse porte, rendendo più facile scrivere codice, documentazione e tutorial che funzionino su qualsiasi microcontrollore supportato.

Questo significa che le API di alcune porte devono cambiare per allinearsi a quelle di altre porte.

Modifiche

Nessuna ancora

OS e filesystem

Panoramica

L’obiettivo primario è supportare la capacità di eseguire i file .mpy direttamente dal filesystem senza prima copiarli nella RAM. Questo migliora i tempi di distribuzione del codice e riduce l’overhead di memoria e la frammentazione.

Inoltre, un ulteriore obiettivo è supportare un modo più flessibile di configurare partizioni, tipi di filesystem e opzioni come l’archiviazione di massa USB.

Modifiche

Nessuna ancora

Compatibilità con CPython

Panoramica

L’obiettivo è migliorare la compatibilità con CPython rimuovendo le estensioni MicroPython dalle API di CPython. Nella maggior parte dei casi questo significa spostare funzioni o classi specifiche di MicroPython in nuovi moduli.

Questo rende più facile scrivere codice che funzioni sia su CPython sia su MicroPython, il che è utile per lo sviluppo e i test.

Modifiche

Introduzione di un nuovo modulo vfs. Le seguenti funzioni e classi sono state spostate da os a vfs:

  • os.mount

  • os.umount

  • os.VfsFat

  • os.VfsLfs1

  • os.VfsLfs2

  • os.VfsPosix