Дэмиен Джордж недавно объявил о выпуске MicroPython 1.20 с поддержкой платы Raspberry Pi Pico W, нового облегченного менеджера пакетов под названием mip, меньшего размера благодаря использованию структур сжатого типа и многих других изменениях.
менеджер пакетов mip
Новый менеджер пакетов mip использует собственный протокол, оптимизированный для встраиваемых систем, для запроса и установки пакетов и намеревается заменить upip для установки пакетов из micropython-lib или любого URL-адреса. Mip можно запускать непосредственно на устройстве, если оно подключено к сети, или через mpremote с хост-компьютера. Дэмиен объясняет, что все чистые драйверы Python были перемещены из репозитория micropython в репозиторий micropython-lib как часть изменения, чтобы упростить установку пакетов, необходимых для данного проекта.
MicroPython становится меньше
Размер двоичного файла MicroPython был уменьшен на много килобайт для всех портов, поскольку все базовые/встроенные типы были сжаты за счет включения в структуру типа уровня C столько слотов для указателей функций C, сколько необходимо для данного типа, как в отличие от хранения указателей NULL для неиспользуемых слотов.
Изменение размера кода по сравнению с предыдущим релизом для различных портов (абсолютное в байтах и процентное изменение в текстовом разделе) можно увидеть ниже:
1 2 3 4 5 6 7 8 9 10 11 |
bare-arm: -1124 -1.934% minimal x86: -4322 -2.967% unix x64: +264181 +50.533% standard stm32: -3592 -0.906% PYBV10 cc3200: -1832 -0.990% esp8266: -2284 -0.327% GENERIC esp32: +9659 +0.632% GENERIC nrf: -84 -0.045% pca10040 rp2: +13096 +4.291% PICO samd: +127776 +90.488% ADAFRUIT_ITSYBITSY_M4_EXPRESS |
Для голых рук, минимальных целей x86, stm32, cc3200 и esp8266 наблюдается уменьшение размера кода из-за структур сжатого типа, в то время как другие становятся больше из-за дополнительных функций:
- unix: переключение axtls на mbedtls, объединение параметров и функций конфигурации dev
- esp32: новые драйверы Ethernet для LAN8710, KSZ8081 и некоторые дополнительные функции машинных модулей.
- nrf: улучшения структуры сжатого типа и машинного модуля
- rp2: дополнительные функции и шифры mbedtls
- samd: множество новых функций, а также классы и функции машинных модулей.
Новые платы — Raspberry Pi Pico W, WeAct RP2040, плата Olimex ESP32 PoE и т. д.
Еще одно заметное изменение MicroPython 1.20 заключается в том, что порт rp2 реализует драйвер WiFi CYW43xx, используемый в новой плате Raspberry Pi Pico W (см. ссылку для загрузки MicroPython 12.0), но другие платы RP2040 также были добавлены в последнюю версию MicroPython, включая W5500- EVB-PICO , WeAct RP2040 и плата nullbits Bit-C PRO .
Порт ESP32 также получил еще несколько плат, таких как ESP32-S3 с восьмеричной SPIRAM, платы Olimex PoE и универсальную плату для чипов unicore. MicroPython 12.0 также получает поддержку кроссоверного процессора NXP i.MX RT1176 Cortex-M7 более высокого уровня и платы MIMXRT1170_EVK.
Вы найдете длинный список изменений в примечаниях к выпуску на GitHub . В твите Мэтта Трентини , который предупредил нас о выпуске MicroPython 1.20, говорится, что разработчику потребовалось 10 месяцев, и проект получил более 1000 коммитов от более чем 100 участников.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.