Дэмиен Джордж недавно объявил о выпуске 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 для неиспользуемых слотов.
Изменение размера кода по сравнению с предыдущим релизом для различных портов (абсолютное в байтах и процентное изменение в текстовом разделе) можно увидеть ниже:
Crayon Syntax Highlighter v_2.7.2_beta
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
|
[Format Time: 0.0003 seconds]
Для голых рук, минимальных целей 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.
Оригинал статьи вы можете прочитать здесь.