此版本的MicroPython为客户端和服务器端引入了asyncio对SSL/TLS支持。接口与CPython匹配:asyncio.open_connection()和asyncio.start_server()现在都接受ssl参数来提供SSLContext对象。作为其中的一部分,向SSLContext中添加了新方法来加载证书,并在所有使用mbedTLS的端口上启用了证书日期/时间验证。
现在对Qstr池进行了排序,这为Qstr_find_strn() 提供了显著的性能提升,在解析和加载.mpy文件以及字符串对象的内部处理过程中经常调用Qstr_find_strn(),这发生在大多数返回新字符串的方法中。静态池(.mpy ABI的一部分)当前未进行排序,但将来可能会进行排序。
对machine模块(以及一些移植版的os模块)进行了许多内部更改,以将Python绑定到一个公共位置,减少代码重复,并使API在所有端口之间更加一致。此外,还添加了一个新的boardgen.py脚本,以促进 machine.Pin 生成和跨平台一致性。为了保持一致性,已经进行了如下的更改:
此版本中删除了 teensy 移植。因为它基本上没有人维护,功能也有限(唯一的硬件支持是GPIO和定时器,没有machine模块),只支持很少数的 Teensy 开发板。
引入了一个新的预览版本控制方案,其中非发布版本是下一个即将发布的版本的预览。该方案有助于消除文档和固件版本号匹配等方面的混乱。
Black已被ruff格式取代,成为 Python 代码格式化程序。这需要对 Python 代码进行一些小的更改,现在允许使用 ruff 进行 linting 和格式化。
绑定方法实例现在支持比较和哈希,匹配CPython语义。由于原生 .mpy ABI的变化,.mpy 子版本已从 6.1 更新到 6.2。添加了一个新选项MICROPY_PREVIEW_VERSION_2,它提供了一种通过运行 make MICROPY-PREVIEW-VERSION_2=1 来启用为 MicroPython 2.x 指定的功能和更改的方法。这是2.x开发分支的替代方案,并且任何功能或更改都将“隐藏”直到2.x使用此标志。
LittleFS 已更新到v2.8.1版本。相关的MicroPython VfsLfs2 驱动程序可以读取现有的 LFS2 文件系统,但任何写入操作都会将文件系统更新到较新的LFS2版本,而旧的驱动程序无法读取该版本,因此在更新时要考虑这一点,例如先更新mboot。
VFS 子系统有一个新的文件 ioctl 来设置读取缓冲区大小,mpremote 使用它来显著提高 “mpremote-mount” 功能的性能。 Manifest 文件现在允许通过add_library(name, path) 注册外部库路径。sys.stdout.buffer.write() 现在返回实际写入的字节数(尽管当输出到多个目标时,这会很复杂)。
esp32 移植已更新为使用 IDF 版本 5.0.4,并调整了初始 GC 堆大小,以便在将堆大小增加一倍后,仍然可以启动 WiFi 并建立 SSL 连接。RMT.source_freq() 现在是一个类方法,套接字连接超时已经实现,RTC 用户内存在大多数复位后保留,并启用了hashlib.md5。
mimxrt 移植添加了 RTC alarm/wakeup 功能,并支持 machine.deepsleep()。
rp2 引入了一个新的 rp2.DMA 类,用于控制 DMA 传输。它已切换为使用与其他硬件相同的数学库,以获得更准确的浮点数。启用 os.dupterm_notify() 以供 WebREPL 使用。TinyUSB 堆栈现在计划从 IRQ 处理程序运行(而不是在 VM 中轮询),这略微提高了 VM 和 USB 的性能。更好地利用了事件调度和WFE,以提高效率。增加了对外部 ADC 通道的支持(例如,当使用ninaw10驱动程序时)。
stm32 改进了对 STM32H5xx MCU的支持,包括以太网支持、HSI频率扩展、睡眠模式和SD卡支持等。NUCLEO_WL55 开发板现在冻结了 LoRa 驱动程序,I2S驱动程序提高了时钟频率的准确性,mboot 现在支持 Microsoft WCID 来设置 USB 驱动程序。
此版本中添加的新开发有:UM_TINYWATCHS3(esp32)、POLOLU_3PI_2040_ROBOT、POLOLO_ZUMO_240_ROBOT和SIL_RP2040_SIM(rp2)、NUCLEO_H563ZI(stm32)。
自上一版本以来,各种硬件的代码大小的变化是(文本部分的绝对变化和百分比变化):
bare-arm: +216 +0.381%
minimal x86: +624 +0.340%
unix x64: +8283 +1.050%
stm32: +1368 +0.350%
cc3200: +1184 +0.649%
esp8266: +800 +0.114%
esp32: +35348 +2.100%
mimxrt: +2172 +0.602%
renesas-ra: +96 +0.015%
nrf: +1460 +0.785%
rp2: +6100 +1.880%
samd: +1476 +0.568%
这些数字的变化主要来自:
新的排序qstr池,大量qstr操作的性能显著提高,提高幅度在+50%到+200%之间。其他领域的性能自上次发布以来没有变化。
感谢所有为本次发布做出贡献的人:Alessandro Gatti、Andrew Leech、Angus Gratton、Carlosgg、Christian Walter、Damien George、Daniël van de Giessen、Elias Wimmer、Glenn Moloney、iabdalkader、Ihor Nehrutsa、Jeff Epler、Jim Mussared、Kwabena W.Agyeman、Maarten van der Schrick、Mark Blakeney、Mathieu Serandour、Matthias Urlichs、MikeTeachman、Ned Konz、Nicko van Someren,Pascal Brunot、Patrick Van Oosterwijck、Paul Grayson、Peter Züger、Rene Straub、robert-hh、Scott赵、Sebastian Romero、Seon Rozenblum、stijn、Thomas Ackermann、Thomas Wenrich、ThomHPL、Trent Piefho。
捐款来自以下时区:0800、0700、0600、0500、+0000、+0100、+0200、+1000、+1100。
https://github.com/micropython/micropython/releases/tag/v1.22.0
引用: 极限零 发表于 2023-12-29 08:52 esp8266居然还在支持,乐鑫几乎都不卖了
那是别家卖的太便宜了。
引用: 极限零 发表于 2023-12-29 11:10 话说这次看更新也不少,为什么这次发布的这么快啊
也差不多两个月了,按照官方最初设想,时每两个月发布一个小版本升级的。
此版本的MicroPython为客户端和服务器端引入了asyncio对SSL/TLS支持。接口与CPython匹配。
最近感觉好象cpy的厂家接入在增长呢。
引用: lugl4313820 发表于 2024-1-2 09:33 此版本的MicroPython为客户端和服务器端引入了asyncio对SSL/TLS支持。接口与CPython匹配。 最近感觉好象 ...
通用性好