国庆期间MicroPython最近(2023-10-05)刚刚更新到1.21.0版

国内正在忙着休国庆长假 MicroPython官方悄悄更新了版本。这次更新的版本是1.21.0,相比于1.20.0版本,鹿戴马物联平台在线烧录MicroPthon固件已经同步更新到1.21.0版本。这次更新的内容还是比较多的,主要是修复了一些bug,增加了一些功能,具体的更新内容如下:

在这次版本的MicroPython我们看到了内置模块的重命名以删除u前缀,具有可选压缩支持的新放气模块,引入了板变体,将esp32端口切换为使用IDF 5以及改进的堆管理,支持RPi Pico W板上的BLE以及STM32H5xx支持。该项目现在还使用codespell和ruff来提高代码质量。

此版本中新增的主板包括:ARDUINO_NANO_ESP32和UM_NANOS3(esp32端口)、ADAFRUIT_METRO_M7(mimxrt端口)、ARDUINO_PORTENTA_C33和VK_RA6M5(renesas-ra端口)、ADAFRUIT_METRO_M4_EXPRESS(samd端口)、NUCLEO_L4A6ZG和STM32H573I_DK(stm32端口)。

重命名内置模块以删除u前缀 - 例如utime变成time,uasyncio变成asyncio - 是为了提高与CPython的兼容性,并消除关于是导入u版本还是非u版本名称的混淆。现在,应该始终导入非u版本,不再考虑u命名。唯一剩下的带有u前缀的模块是uctypes,因为它与CPython ctypes模块不兼容。以下模块仍然可以通过其u-name向后兼容:array,asyncio,binascii,bluetooth,collections,cryptolib,errno,hashlib,heapq,io,json,machine,os,platform,random,re,select,socket,ssl,struct,time,websocket。这些模块(asyncio 除外)也是可扩展的,可以被具有相同名称的文件覆盖,例如 time.py。要强制导入内置,必须首先清除(然后恢复)sys.path;写入 sys.path 属性的功能也已在此版本中实现。有关更多信息,请参阅#9018 中的讨论。

此外,导入本身已经过调整和优化,内置导入不再涉及文件系统,这使得典型的内置导入需要 ~0.15 毫秒而不是 3-5 毫秒。对于导入失败的模块,它们现在将从 sys.modules 中删除,允许再次尝试导入。这需要添加“NLR 跳转回调”,以便在引发异常时有效地运行某些代码。

对核心运行时的其他改进包括支持 f 字符串中的转换说明符(例如 !r)、通过跟踪上次使用的块来加速增量 GC 周期、添加新的MICROPY_GC_SPLIT_HEAP_AUTO“自动增长堆”模式以及对结构格式的填充字节的支持。文档、示例和测试也进行了普遍的改进和添加。

对于扩展模块,zlib C 模块已被移除,取而代之的是一个新的 MicroPython 专用 deflate 模块和 DeflateIO 类,该类经过优化以提供高效的流压缩和解压缩。zlib(和gzip)模块现在在deflate模块之上的纯Python中实现。timeq 模块已被删除,它只存在于 (u)asyncio 的先前版本中,不再使用。在SSL模块中,添加了SSLContext,以便与CPython更加兼容。select 模块现在支持尽可能使用 system/POSIX 轮询,unix 端口现在使用此实现而不是自己的实现。这意味着 unix 端口现在可以选择/轮询实现相应 ioctl 的自定义 Python 对象。套接字模块现在支持 SO_BROADCAST,sys.std*.buffer 对象现在存在于 unix 上。还有一个新的 esp 托管网络驱动程序,用于基于 ESP32 的外部网络协处理器。

MPY-Cross现在允许从stdin读取源文件并将编译的代码写入stdout。

esp8266 和 esp32 端口增加了对乐鑫 ESP-NOW 协议的支持,以及设置/获取 WLAN 硬件省电模式的功能。esp8266 端口增加了板变体支持,将所有板卡组合成一个具有 FLASH_512K、FLASH_1M 和 OTA 变体的ESP8266_GENERIC。

esp32 端口现已独占切换到 ESP-IDF 5,并且所有现有组件都已更新以配合此新 IDF() 功能(已删除的 esp32.hall_sensor() 除外)。FSM ULP 已为 S2 和 S3 芯片启用,插座现在支持 SO_BINDTODEVICE,并且已实现以板命名的引脚和 Pin.board 字典。MicroPython 堆已在此端口上进行了重新设计,以支持各种内存配置:它现在从 64KB 开始,并根据需要自动增长,并从 IDF 堆中分配新的段。这意味着,如果仅使用少量 RAM,则带有 SPIRAM 的电路板具有更快的 GC 收集时间,如果需要,可以使用所有可用的 RAM,并且 IDF 可以访问足够的 RAM 用于 SSL 套接字等内容。有关更多信息,请参阅 #12141。esp32 端口还整合了其通用板并重命名为 ESP32_GENERIC、ESP32_GENERIC_C3、ESP32_GENERIC_S2 和 ESP32_GENERIC_S3,有些现在有 SPIRAM 等变体。

鹿戴马物联平台在线烧录MicroPthon固件已经同步更新到1.21.0版本,欢迎大家使用。

mimxrt端口对PWM和Pin.irq进行了修复和改进,并支持UART硬件流控制和UART.deinit。它还通过CYW43驱动程序集成了WiFi,并通过NimBLE集成了蓝牙。mbedTLS 绑定已启用证书的时间验证。

瑞萨电子-RA端口已更改电路板名称以匹配产品名称,更新为使用FSP v4.4.0,增加了对以下方面的支持:RA6M5 MCU,机器PWM,DAC,RNG和SDCard类,TinyUSB,通过NimBLE的蓝牙,通过lwIP的网络和mbedTLS。

蓝牙支持也已添加到 Pico W 板的 rp2 端口中。RPi板已从PICO重命名为RPI_PICO,PICO_W重命名为RPI_PICO_W.Lightsleep已固定在此端口上,因此它可以在WiFi关闭电源时工作,并且time.time_ns()现在具有微秒级分辨率。

samd 端口增加了 SPI 和 QSPI 闪存驱动程序,以支持外部闪存上的文件系统。

stm32端口增加了对STM32H5xx MCU的支持,对OCTOSPI外设的基本支持,以及对STM32L1xx MCU的USB支持。STM 模块添加了新功能,以支持STM32WL55上的 sub-GHz 无线电。

在micropython-lib中,添加了广泛的LoRa模块以及SX126x和SX127x芯片组的驱动程序,以及STM32WL55。此模块支持同步和异步 (异步) 模式。此外,作为 u 模块重命名的一部分,urequests 已重命名为请求(但为了向后兼容,“导入 urequests”目前仍然有效)。

自上一版本以来,各种端口的代码大小变化为(文本部分中的绝对和百分比变化):

芯片代码变化变化率
bare-arm:+192+0.340%
minimal x86:+310+0.169%
unix x64:+4784+0.610%
stm32:-524-0.134%
cc3200:+280+0.154%
esp8266:+8016+1.151%
esp32:+112133+7.293%
mimxrt:+3624+1.015%
renesas-ra:-2184-0.348%
nrf:+616+0.332%
rp2:+1920+0.595%
samd:-7904-2.953%

主导这些数字的变化是:

bare-arm, minimal, cc3200, nrf:NLR 跳转回调和对可扩展模块的支持
unix:mbedTLS 更新到 v2.28.1,支持在选择模块中轮询 Python 对象
STM32:移除TimeQ模块
ESP8266:新增 ESPNOW 模块
ESP32:切换到 ESP-IDF 5
mimxrt:UART功能,SSL证书的时间验证
renesas-ra:移至FSP v4.4.0,删除TimeQ模块
RP2:机器。脉宽调制增强功能
samd:删除对 VfsLfs1 的支持
自上一版本以来,性能实际上没有变化。

请注意,这是对夜间/不稳定版本使用当前版本控制方案的最后一个版本,其中版本之间的版本版本为 v1.20.0–g(在 v1.20.0 发布之后)。今后,每晚版本现在将称为预览版本,并使用下一个版本号进行版本控制。例如,如果最后一个版本是 v1.21.0,则预览版本的形式将是 v1.22.0-preview。g.有关讨论,请参阅#12127。

以下是从 git 提交历史记录生成的更改的详细列表,并按部分进行组织。

主要部件

所有:

根据代码拼写检查修复拼写错误
使用原始字符串文本修复带有反斜杠的字符串
修复 ruff 发现的各种 Python 编码不一致
修复已分配但从未使用的 Python 变量的情况
将MP_QSTR_umodule重命名为“MP_QSTR_module无处不在”
重命名 mp_umodule*、mp_module_umodule* 以删除“U”前缀
重命名 mod_umodule*, ^umodule* 以删除“u”前缀
在预处理器/生成文件变量中将 UMODULE 重命名为 MODULE
重命名 umodule.h 以删除“u”前缀
重命名 umodule.c 以删除“u”前缀
将MP_REGISTER_EXTENSIBLE_MODULE用于可覆盖的内置
替换 Python 代码中 umodule 的所有用法
删除 ZLIB 模块
删除查询变体成为目标
为 micropython.const 添加缺少的导入
将黑色配置部分添加到 pyproject.toml
将 ruff 添加到预提交
代码约定:要求提交由作者签名

py 核心:

Ringbuf:实现put_bytes/get_bytes函数
parse:修复 COMP_CONST_FOLDING=0 和 COMP_MODULE_CONST=1 时的生成
compile:删除元组的过度优化,就像条件一样
stackctrl:添加 GCC 杂注以忽略悬空指针警告
GC:改进MICROPY_GC_HOOK_LOOP
obj:删除mp_generic_unary_op()
objslice:确保切片不可哈希
objdict:修复dict_view类型的哈希
objarray:不允许内存视图添加
objstr:返回不受支持的 binop 而不是引发 TypeError
runtime:如果就地 binop 失败,则尝试相应的正常 binop
将MP_UNARY_OP_INT更改为MP_UNARY_OP_INT_MAYBE
OBJ:接受mp_obj_get_int_maybe中的用户类型
objint:允许 int() 使用缓冲区协议解析任何内容
builtinimport:正确处理空的 sys.path
builtinimport:优化子包加载
builtinimport:允许内置模块成为包
objModule:不要使用 sys.modules 来跟踪内置的初始化
NLRSETJMP:使用MP_NLR_JUMP_HEAD宏简化代码
NLR:删除注释掉的调试代码
NLR:实现跳转回调
使用 NLR 跳转回调优化编译/执行函数
builtinimport:从 sys.modules 中删除部分加载的模块
builtinimport:删除薄弱环节
makemoduledefs.py:添加注册可扩展内置模块的方法
objmodule:添加具有委派功能的内置模块表
objmodule:没有模块委派的 MSVC 的解决方法
mpconfig:如果系统需要,启用模块委派
modsys:允许将 sys.path 分配给
mkrules.mk:设置清单时自动配置冻结选项
解析:修复 #endif 注释中的拼写错误
NLRAarch64:修复输入寄存器的危险使用
makemoduledefs.py:修复了声明多个模块委托的问题
makemoduledefs.py:自动声明委托属性函数
词法分析器:允许在 f 字符串中使用转换说明符(例如 !r)
mkrules.mk:允许 $(AFLAGS) 将标志设置为 $(AS)
编译:修复迭代器表达式的异步堆栈处理
builtinimport:修复禁用外部导入时的内置导入
流:添加调用mp_stream_close的mp_stream___exit___obj
运行时:始终在mp_init中初始化sched_state
MPCONFIG:添加MICROPY_PY_PLATFORM,在额外功能级别启用
GC:通过跟踪上次使用的模块来加速增量气相色谱循环
GC:应用一些代码格式清理
GC:添加新MICROPY_GC_SPLIT_HEAP_AUTO“自动增长堆”模式
配置文件:删除禁用MICROPY_COMP_CONST的要求
mpconfig:如果启用了终结器,则启用 SSL 终结器
对象:修复边缘情况str % {}
modstruct:支持结构格式的垫字节
Dynruntime.h:实现MP_OBJ_NEW_QSTR
modthread:从 start_new_thread() 返回线程 ID
malloc:修复m_realloc_maybe中的DEBUG_print()参数
运行时:添加帮助程序以在 NLR 跳转回调上调用常规函数
parse:即使引发异常,也始终免费词法分析
持久代码:即使引发异常,也始终关闭读取器
GC:在 gc.mem_free() 的结果中添加“最大新拆分”值
NLRX64:尽可能将nlr_push()标记为裸函数
mkrules.mk:如果未设置 STRIP 变量,则不要去除二进制文件
将 ifdef DEBUG_PRINT更改为 if DEBUG_PRINT
词法分析器:为fstring_args_idx添加缺少的初始化

扩展模块:

utime_mphal:提供通用的 mktime 函数
模组时间:提供通用时间模块
machine_pwm:删除PWM_INIT和PWM_DUTY_U16_NS配置选项
network_cyw43:添加电源管理常量
vfs_lfsx:修复范围检查前使用的偏移量
extmod.mk:禁止弃用非原型警告
moduos:将 os.sync() 移动到 extmod/moduos.c
modtimeq:删除timeq模块
btstack:添加对 BTstack 的 cmake 支持
BTSTACK:修复了set_random_address中静态地址的标记
asyncio:将 uasyncio 重命名为 asyncio
asyncio/uasyncio.py:添加向后兼容的 uasyncio 别名
modbinascii:修复缓冲区长度错误
更新以支持 mbedtls 3.x
ModPlatform:在RISCV平台上设置MICROPY_PLATFORM_ARCH
modbtree:在包含Berkeley-DB之前取消定义队列宏
modssl:添加 SSLContext 类
moddeflate:添加 Deflate 模块,提供 DeflateIO 类
modssl_mbedtls:从SSLSocket引用SSLContext
vfs_posix_file:添加对缺少 ERR、HUP、NVAL 值的轮询支持
modselect:抽象出一个poll_set_t结构和函数
modselect:将低级轮询代码分解为通用函数
modselect:添加优化以尽可能使用系统轮询
modselect:删除对要轮询的标志参数的未记录支持
modssl_mbedtls:拒绝不支持的 IOCTL
modssl_mbedtls:修复处于关闭/错误状态的套接字的 IOCTL
modselect:正确跟踪 FD 的轮询对象数量
modssl_mbedtls:如果创建 SSL 时出错,则清除袜子成员
修改压缩:更改默认窗口大小
vfs_posix_file:修复 macOS 上的刷新处理问题
vfs_posix_file:实现 sys.std*.buffer 对象
Modlwip:添加对SO_BROADCAST套接字选项的支持
modsocket:添加对SO_BROADCAST套接字选项的支持
modssl_mbedtls:如果使用 PSA,则调用函数psa_crypto_init
modssl_mbedtls:忽略错误ERR_SSL_RECEIVED_NEW_SESSION_TICKET
修改:修复IP选项SOF_BROADCAST的设置
network_esp_hosted:添加 ESP 托管网络接口
modssl_axtls:仅关闭一次使用的基础套接字
asyncio/event.py:修复 ThreadSafeFlag.ioctl 返回
btstack/btstack_hci_uart:在发送UART数据后触发轮询
asyncio/stream.py:修复了start_server的取消处理
Modnetwork:将最大主机名长度增加到 32
modnetwork:将 if.config(hostname) 转发到 network.hostname
vfs_posix_file:修复 msvc 版本中的刷新处理

共享:

upytesthelper:修正“默认”的拼写
libc/printf:修复 putchar 和 put 的 stdout 目标
tinyusb:避免使用外部TinyUSB在目标上发生符号冲突
tinyusb:支持 HS 端点大小
Netutils/DHCPserver:回复正确的 Netif

驱动:

cyw43:使 CYW43 蓝牙 HCI 驱动程序更便携
ESP 托管:为 ESP 托管固件添加主机驱动程序
ninaw10/nina_bt_hci:对HCI驱动程序进行一些小修复
ESP 托管:固定引脚 IRQ
ESP 托管:修复 MTU 大小
esp托管:增加对WiFI LED活动指示灯的支持

MPY-cross:

允许指定以 - 开头的源文件
允许从标准输入读取和写入标准输出
从标准输入读取时,将输出写入标准输出
允许将 stdin 指定为输入,而无需 –
修复“找不到文件”错误的源文件名

库:

mbedtls_errors:更新当前版本的 mbedtls 的错误列表
mbedtls:更新到 mbedtls v2.28.1
mbedtls_errors:添加 esp32 特有的 mbedtls 错误文件
mbedtls_errors:更新新 mbedtl 的修补程序和错误列表
mbedtls:更新到 mbedtls v2.28.3
FSP:将瑞萨电子 RA 的 FSP 更新至最新版本 v4.4.0
cyw43-driver:将驱动程序更新到最新版本v1.0.1
BTSTACK:更新到 v1.5.6.2
Pico-SDK:更新至版本 1.5.1
stm32lib:H5 v1.0.0 的更新库
oofatfs:修复create_name中的推测性读取
uzlib:添加内存效率高的流式 LZ77 压缩支持
UZLIB/LZ77:始终使用单独的历史缓冲区
UZLIB/defl_static:实现一些代码大小改进
Uzlib:清理 tinf -> uzlib 重命名
UZLIB:结合 zlib/gzip 标头解析以允许自动检测
Uzlib/Tinflate:实现更紧凑的查找表
UZLIB/defl_static:优化zlib_start/finish_block
Uzlib:添加一个要传递给source_read_cb的source_read_data var
Tinyusb:更新到最新的母版
protobuf-c:添加 protobuf-c 库
cyw43-driver:将驱动程序更新到最新版本v1.0.2
micropython-lib:将子模块更新到最新版本

支持组件

文档:

参考:删除词汇表中的双“是”
根据最近的 API 改进更新 PWM 示例
samd:在示例中使用引脚名称更加一致
reference/mpyfiles:在 v6.1 上添加发布信息
library/espnow: 更新 ESPNOW 文档 for WLAN.config(pm=x) 选项
开发/移植:将缺少的代码添加到示例 main.c 和 Makefile
reference/speed_python:删除蝰蛇的 4 Arg 限制
mimxrt:为 Adafruit Metro M7 板添加引脚
samd:为Adafruit Metro M4空运板添加引脚
library/index:更新内置扩展文档
reference/包:将 GitHub 存储库添加到包示例依赖项
reference/mpremote.rst:扩展 MPremote 指南
library/index:uModule 重命名后更新文档
将 uasyncio 重命名为 asyncio
ESP32:根据 IDF v5 的更改更新 ESP32 文档
library/SSL:为 SSLContext 添加文档
esp32/快速参考:为 WT32-ETH01 版本 1.4 添加局域网示例
library/deflate:添加用于放气的文档。放气IO
develop/gettingstarted:阐明子模块初始化
develop/gettingstarted:更新 ARM 包列表
library/neopixel:将链接更改为micropython-lib参考
库/平台:为平台库添加文档
库/网络:阐明 network.hostname() 行为
ESP32/教程:添加通过寄存器访问引脚的示例
库/ESP32:更新 ESP32 idf_heap_info文档以匹配行为
library/gc:澄清mem_alloc和mem_free仅适用于 Python 堆
conf.py:将sphinxcontrib.jquery添加到扩展
添加需求.txt 文件与狮身人面像的依赖项
将剩余的“urequests”引用更改为“请求”

例子:

usercmodule:添加子包示例
natmod:将umodule重命名为模块
HWAPI:将 UASYNCIO 重命名为 Asyncio
natmod/deflate:将 deflate 添加为动态原生模块
将ASM、PIO等标记为NOQA:F821(未定义名称)
hwapi:为 96 板添加缺少的导入 碳示例
蓝牙:当广告数据过大时引发 ValueError
蓝牙:链接到 BLE 示例中的 aioble
natmod:添加功能4作为类定义示例
UNIX/machine_bios.py:修正拼写错误

测试:

run-tests.py:确保 MPY 测试的 CWD 正确
基础知识:为各种类型的哈希添加更多测试
基础知识:从特殊方法测试中删除索引和 INV
导入/builtin_ext.py:为内置模块覆盖添加测试
导入/import_pkg9.py:为子包属性添加测试
随处更换模块
run-multitests.py:不允许从CWD进口
run-perfbench.py:不允许从CWD进口
run-natmodtests.py:不允许从CWD进口
float:测试域错误,以获取更多参数到数学功能的组合
将 uasyncio 重命名为 asyncio
extmod/uctypes_array_assign_le:修复缓冲区
extmod/framebuf:修复缓冲区大小问题
extmod:添加 SSL 测试。SSLContext
extmod:添加将 cadata 传递到 ssl.wrap_socket() 的测试
扩展:添加放气。放气IO测试
extmod:为选择模块添加覆盖率测试
extmod:如果无法创建UDP套接字,则跳过选择/套接字测试
extmod/select_poll_eintr.py:提高测试的鲁棒性
杂项/sys_settrace_features.py:修复了在较新的CPython上运行的问题
UNIX/mod_os:让 OS.System() 测试在 Windows 上工作
run-tests.py:在CPython上运行时捕获标准输出
multi_net:增加异步测试超时
压力/bytecode_limit.py:病例的倒序
float/float_format_ints.py:将 10 次幂测试放在单独的文件中
extmod/deflate_decompress.py:内存不足时跳过测试
extmod/ssl_cadata.py:跳过 axtls 上的测试
浮点/math_domain.py:调整测试以通过 obj-repr-C
extmod/vfs_fat_finaliser.py:调整测试以便收集文件
自述文件:文档 ./run-internalbench.py
run-internalbench.py:删除旧的CPython引用
multi_net/ssl_cert_rsa.py:更新测试证书
extmod/asyncio_threadsafeflag.py:UNIX Select 的更新

工具:

pyboard.py:将ProcessPtyTo终端成员“ser”重命名为“serial”
MPremote:删除未使用的串行导入
pyboard.py:导入serial.tools.list_ports
pyboard.py:导入 errno 以修复 Pyboard 错误中未定义的名称
manifestfile.py:修复许可证捕获
MPremote:添加 repl 选项以转义不可打印的字符
pydfu.py:使用 getattr 检索 getargspec 函数
MPREMOTE:添加命令sleep
mpremote:允许快捷命令的终止符
mpremote:添加命令以获取和设置 RTCrtc
MPremote:无目的地句柄cp
mpremote:将 mpremote 与 pyboard.py 分离
MPREMOTE:修复了stdout_write_bytes功能的使用
mpremote:修复exec_ -> exec in commands.py
自动构建:更新自动构建代码,使用 IDF v5 构建 ESP32 端口
自动构建:增加对 ESP32 应用程序.bin文件的支持
mpy-tool.py:使用 isinstance() 进行类型检查
codeformat.py:跳过格式化 ESP-IDF 托管组件
codeformat.py:使用 pyproject.toml 进行黑色配置
MPremote:使软重置计为操作
自动构建:自动构建每个电路板的所有变体
mpy_ld.py:预先声明一些局部变量以安抚棉绒
mpy-tool.py:忽略 Python 2 兼容代码中的 linter 故障
mpy_ld.py:支持更复杂的 Rodata 部分
metrics.py:重命名后修复 NRF 和 RP2 板名
自动生成:在瑞萨电子-RA构建输出中包含.bin固件
自动构建/构建 downloads.py:验证标准功能
mpremote:添加对 RFC2217 的支持,通过 TCP 串连
metrics.py:修复重命名后的 ESP32 和 ESP8266 板名
将剩余的“urequests”引用更改为“请求”
词:

ci.sh:构建SAMD21和SAMD51板作为samd CI的一部分
ci.sh:添加函数以使用代码拼写检查代码拼写
ci.sh:将 mimxrt 和 samd 端口添加到代码大小构建中
ci.sh:构建PICO_W板作为 rp2 CI 的一部分
ci.sh:在stm32 CI构建中添加H5板
ci.sh:将ARDUINO_PORTENTA_C33添加到 RA CI 构建
工作流:获取 MPremote 工作流的完整历史记录
工作流:向代码格式设置工作流添加拼写检查
工作流:使用 ruff 将 GitHub 操作添加到 lint Python 代码
工作流:强制将 Ubuntu-20.04 用于 Unix 32 位版本
工作流程:更新 esp32 CI 以使用 IDF v5.0
工作流程:碰撞操作/签出从 3 到 4

芯片端口

所有芯片:

使用 Extmod 版本的 MKtime 而不是特定于端口的版本
从 STM32 和瑞萨电子-RA 中删除 OS.sync() 实现
为 ESP32、ESP8266、RP2、Mimxrt、SAMD51 启用 os.sync()
标准化帮助文本中的文档链接
在 machine_i2s.c 中,将 UASYNCIO 重命名为 Asyncio
简化 board.json 中的主板功能标记
/boards//board.json:删除“id”字段
将 board.json 限制为标准功能
重命名 Arduino 板 LED 引脚以保持一致
裸臂端口:无特定于此组件/端口的更改

CC3200 端口:

mods/modutime:使用时间模块的extmod版本。
工具:修复进程失败时引发的异常
生成文件:构建固件.zip
嵌入端口:没有特定于此组件/端口的更改

ESP8266 端口:

modutime:使用时间模块的扩展版本。
新增对乐鑫 ESP-NOW 协议的支持
machine_pwm:实现 duty_u16() 和 duty_ns() 以实现一致性
增加对WLAN的设置/获取省电模式的支持
更改网络。从功能到类型的 WLAN
允许 Ctrl-C 中断损坏的 fs while 循环
machine_pin:接受整数参数以mp_obj_get_pin_obj
添加主板变体支持
看板/ESP8266_GENERIC:添加图像文件名
板:确保 ModeSpnow.o 放置在 iROM0 中
板/ESP8266_GENERIC:从 2MiB 清单中删除 urllib

ESP32 端口:

modutime:使用时间模块的扩展版本。
新增对乐鑫 ESP-NOW 协议的支持
增加对WLAN的设置/获取省电模式的支持
更改网络。从功能到类型的 WLAN
板:为两个 UM 板添加一些缺少的板配置
esp32_ulp:为 S2 和 S3 芯片启用 FSM ULP
UART:使用 Xtal 作为 S3 和 C3 上的 UART 时钟源
ModeSpnow:将缓冲区大小配置选项的名称更改为“RxbuF”
CMake:将PROJECT_DIR更改为CMAKE_CURRENT_LIST_DIR
esp32_ulp:修复对 S2 和 S3 的 ULP (FSM) 支持
允许 Ctrl-C 中断损坏的 fs while 循环
从UART驱动程序切换到UART HAL
ppp_set_auth:从 ESP-IDF 添加pppapi_set_auth
ModeP32:删除esp32.hall_sensor功能
更新端口以支持 IDF v5.0.2
在recv_cb,从recv_info->rx_ctrl获取ESPNOW RSSI
network_wlan:激活后等待WIFI_EVENT_STA_START
生成文件:提供更多 IDF 快捷方式
板:将 SDK 配置参数从已弃用更改为新参数
modules/inisetup.py:如果分区的标签是 ffat,则将其格式化为 FAT。
machine_uart:始终在UART配置中选择一个source_clk值
迁移到 IDF v5.0.2 后重新启用 mDNS
板/GENERIC_OTA:启用静默检查以减小固件大小
network_wlan:等待 STA/AP START/STOP 事件在 WLAN.active 中
machine_timer:从传统驱动程序切换到计时器 HAL
machine_pin:添加一个引脚查找功能并在machine_pin_get_id中使用它
使用始终machine_pin_get_id获取 PIN 码 ID
添加对板命名引脚和 Pin.board 字典的支持
还从 IDF 管理的组件中收集属性
modmachine:add generic machine.bootloader()
USB:添加自定义TinyUSB回调支持
板/ARDUINO_NANO_ESP32:添加对 Arduino Nano ESP32 的支持
CMakeLists:在构建中启用多个额外的组件目录
板/ARDUINO_NANO_ESP32:修复部署说明
主:删除未使用的 mbedtls 调试函数
machine_wdt:允许从线程馈送 WDT
machine_hw_spi:修复 SPI(2) 的访问权限
machine_hw_spi:删除不必要的重复SPI引脚默认值
machine_hw_spi:删除 C3 和 S3 变体的 SPI 主机重命名
machine_hw_spi:在构造函数中检查有效的 SPI ID,而不是初始化
板:删除 board.md 文件中对 IDF 版本的引用
自述文件:指定仅支持 IDF v5.0.2
允许 malloc() 从 SPIRAM 分配
启用自动 Python 堆增长
GCCOLLECT:使电平参数易失性以强制递归函数
生成文件:实现以匹配其他端口make submodules
boards/GENERIC: 与 GENERIC_{SPIRAM,OTA,D2WD,UNICORE} 合并
板/GENERIC_C3:与GENERIC_C3_USB合并
板/GENERIC_S2:与ESP32_S2_WROVER合并
板/GENERIC_S3:与GENERIC_S3_{SPIRAM,SPIRAM_OCT}合并
分区.csv:重命名为分区-4MiB.csv
使用大写变体名称
生成文件:将板变体附加到构建
将通用* 板重命名为 ESP32_GENERIC*
板/ESP32_GENERIC_C3:启用 UART REPL
modsocket:添加对SO_BROADCAST套接字选项的支持
modnetwork:添加对SO_BINDTODEVICE套接字选项的支持
支持JTAG控制台,释放UART
machine_uart:释放 GIL 以阻止读取
板:将引脚.csv添加到 UM 板和其他次要更改
板/UM_NANOS3:添加新的 UM NanoS3 板
network_ppp:删除任务后阻止
板/ARDUINO_NANO_ESP32:阐明恢复说明
电路板/UM_FEATHERS3:将 I2C 引脚固定在引脚中.csv
从深度睡眠启动时跳过映像验证
machine_pin:修复machine_pin_find中的空指针访问
MPHALPORT:将功能/行/文件信息添加到异常check_esp_err
修复分区.写块() 部分写入损坏
板:修复 UM S3 板的 VBAT 电压计算
板:为所有构建添加引导加载程序回滚支持
main:允许开发板覆盖MicroPython任务堆栈大小
板/ARDUINO_NANO_ESP32:使用 Arduino USB ID
板/清单.py:默认情况下将AIOESpnow冻结为固件

Mimxrt 端口:

modutime:使用时间模块的扩展版本。
machine_pwm:仅在设置频率和占空比时才启动PWM
flash:将低级驱动程序代码与flash对象分开
mpconfigport: add back lost uos.urandom()
添加缺少的UART定义并删除过时的配置
machine_spi:忽略 len=0 时的传输
machine_pin:在machine_pin_set_mode中执行完整配置
SD卡:使用sdcard_cmd_set_bus_width修复GCC 13构建错误
LED:添加对最多四个 LED 的支持
板/ADAFRUIT_METRO_M7:添加 Adafruit Metro M7 板定义
machine_pwm:修复频率更改、PWM 打印和错误检查
Makefile:对 mimxrt1062 使用特定的 fsl_flexspi_nor_boot.c
machine_pin:修复在没有处理程序的情况下调用 Pin.irq 时的错误
hal/pwm_backport:修复 PWM duty_u16的 0 和 65536 边缘情况
machine_uart:添加 uart.deinit 方法和machine_uart_deinit_all
machine_uart:增加对UART硬件流控制的支持
板:增加对 SNVS 引脚的 GPIO 控制的支持
HAL:使闪存时钟频率可配置
修复 OLIMEX 和 Adafruit 板的 UART RTS/CTS 分配
machine_pin:扩展引脚配置功能
SDIO:添加 SDIO 驱动程序
通过 CYW43 驱动程序集成对 WiFi 的支持
将蓝牙支持与 NimBLE 绑定集成
IRQ:将所有与 IRQ 相关的定义移动到专用标头
machine_uart:修复并完成UART.deinit和uart_deinit_all
板:修复了 MIMXRT1176.ld 中MICROPY_HW_SDRAM_AVAIL的使用
machine_uart:支持 UART 的慢波特率
machine_uart:添加辅助函数以更改波特率
SDIO:移动配置防护,以便仅在使用时才包含标头
制作文件:更新以使用最新的TinyUSB
mpconfigport:不要覆盖解析块分配
SDIO:添加对 117X 系列的支持
mimxrt_sdram:允许主板覆盖默认的 SDRAM 配置
生成文件:为支持的 MCU 系列启用 FSL USDHC
删除SD卡生成文件配置选项
MPBTHCIPORT:为 BT HCI UART 启用流量控制
mbedtls:启用证书有效性时间验证
machine_uart:将UART时钟设置为固定的40MHz值
板/MIMXRT1176_clock_config:修复有关UART时钟的评论
板:修复SD卡配置选项的命名
mpbthciport:允许禁用BLE的UART流控制
machine_rtc:改进启动时的 RTC 初始化
最小端口:没有特定于此组件/端口的更改

NRF 端口:

模块/utime:使用时间模块的 extmod 版本
板:重命名所有 nRF 板以使用大写
PIC16位端口:无特定于此组件/端口的更改

电源端口:

mpconfigport:不要覆盖解析块分配
QEMU-arm 端口:没有特定于此组件/端口的更改

renesas-ra port:

将MICROPY_HW_BOARD_NAME定义更改为产品名称
modutime:使用时间模块的扩展版本。
更新主板和 RA 目录文件以支持 FSP v4.4.0
添加宏定义以避免FSP v4.4.0编译错误
IRQ:修复有关 IRQ 优先级的评论中的拼写错误
合并hal_entry.c 代码并删除 hal_entry() 函数
电路板/pins.py:修复 PA/PB 引脚支持
将所有fsp_cfg头文件合并到一个位置
支持更改UART的波特率
增加对RA6M5的支持,并增加机器PWM,DAC,SD卡
板/VK_RA6M5:添加新的板定义
从常量列表中删除重复的机器模块
machine_spi:始终使用machine_pin_find获取引脚
看板:删除 make-pins.py 中无法访问的代码
生成文件:生成二进制固件输出
添加 TinyUSB 支持
使用 NimBLE 添加蓝牙支持
添加 RNG 驱动程序
使用 lwIP 添加网络支持
添加 mbedTLS 支持
fsp_cfg:添加常用 FSP 配置文件
板/ARDUINO_PORTENTA_C33:添加对 Portenta C33 的支持
主板/ARDUINO_PORTENTA_C33:更新 WiFi 配置
调整 LWIP 缓冲区和时序以提高网络性能

RP2 端口:

modutime:使用时间模块的扩展版本。
machine_pwm:在构造函数中启用关键字参数并添加 init 方法
machine_pwm:添加对反相PWM通道输出的支持
machine_pwm:添加 duty_x() 检查,如果未启动 PWM 则返回 0
使rp2_state_machine_exec接受整数
CMakeLists:调用 cmake 时允许相对MICROPY_BOARD_DIR
MPALPORT:仅将 CYW43 MAC 用于 WLAN0 接口
CMake:规范化MICROPY_PORT_DIR
通过 cyw43 添加蓝牙支持
MPBTHCIPORT:取消现有警报
主板/PICO_W:启用低功耗蓝牙支持
machine_pin:从machine_pin_make_new中剔除引脚查找代码
使用大写变体名称
生成文件:将板变体附加到构建
将 PICO, PICO_W 重命名为 RPI_PICO, RPI_PICO_W
machine_timer:修复定时器周期的打印
MPBTHCIPORT:切换到静态调度程序节点
mpbthciport:修复HCI UART配置
mpconfigport:启用时禁用 BLE 锁定MICROPY_PY_BLUETOOTH
板/ARDUINO_NANO_RP2040_CONNECT:使用标准 HCI UART 波特率
ModMachine:在WiFi断电时修复LightSleep问题
msc_disk:允许配置 USB MSC 查询响应
自述文件:修复RPI_PICO_W板的名称
CMakeLists:在所有生成中启用调试符号
使用time_us_64实施time.time_ns,使其具有美国分辨率

samd port:

modutime:使用时间模块的扩展版本。
machine_pwm:将 init() 方法添加到 PWM 并简化 PWM 代码
mpconfigport:对 SoftSPI 最大速度的丢弃支持
主板/MINISAM_M4:用于迷你 SAM M4 主板的更新引脚.csv
重新排列特定于 MCU 的加载程序文件
MCU/SAMD51:启用MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF
板:添加默认部署说明
主:修复软重置中的 Sercom deinit 排序
modmachine:将machine.deepSleep添加为machine.lightSleep的别名
Modmachine:使一些机器类可以通过 #defines 进行配置
板/SEEED_WIO_TERMINAL:重命名两个以数字开头的引脚
MCU:减少硬复位后的启动时间
machine_uart:增加对UART硬件流控制的支持
板/ADAFRUIT_METRO_M4_EXPRESS:添加地铁M4快速空运
主板:一致地重命名 QSPI 和 SPI 的闪存引脚
samd_spiflash:添加SPI闪存驱动程序并相应地进行配置
samd_qspiflash:添加QSPI闪存驱动程序并相应地进行配置
调整现有的 SAMD。闪存并在引导中与(Q)SPI闪存集成
电路板:扩展带外部闪存的电路板的代码大小限制
在 mpconfigmcu.mk 而不是 mpconfigboard.mk 中设置 LFS 类型
生成文件:将数学库文件从 mpconfigmcu.mk 移动到生成文件
生成文件:打印内存区域使用情况而不是总计
mpconfigport:在所有MCU/板上启用DHT和OneWire驱动器
mpconfigport:提供平台模块
模块/_boot.py:将 /lib 添加到 sys.path
mpconfigport:不要覆盖解析块分配

STM32 端口:

modutime:使用时间模块的扩展版本。
电路板/ARDUINO_PORTENTA_H7:启用 FDCAN
板/stm32h723_af.csv:修复 ADC 自动对焦定义
mboot:修复了打包的最终缓冲区的对齐方式
IRQ:修复有关优先级的评论中的拼写错误
USB:修复STM32G4上的 USB 支持
主板/NUCLEO_G474RE:使启用 USB 变得更加容易
ADC:增加对STM32L4A6 MCU的支持
板/NUCLEO_L4A6ZG:添加新板定义
帮助:不要在帮助()中包含不可用的功能
帮助:从帮助中排除旧条目,并调整常量名称
mpconfigboard_common:提供默认的 spidev 配置
开发板:在适当的情况下使用默认的 spibdev 配置
生成文件:将相关的 CPU 标志传递给汇编程序
make-stmconst.py:名称以 _t 结尾的支撑结构
主:尽早启动UART REPL
usbd_conf:将 G0 USB 外围设备视为 MICROPY_HW_USB_IS_MULTI_OTG=0
machine_adc:在所有MCU上处理小于8位的ADC分辨率
添加对 H5 MCU 的初始支持
电路板:为 H5 MCU 添加 LD、AF.csv 和 hal_conf_base.H 文件
Octospi:添加对OCTOSPI外设的初步支持
板/STM32H573I_DK:添加 H5 板定义文件
增加对STM32L1 MCU 的 USB 支持
直接修改 RCC->APB2ENR 而不是 HAL API
修改机器:删除重复的machine_timer_type声明
模组机器:公开machine_reset_cause_obj
DAC:修复 G4 MCU 上的dac.write_timed以使用 32 位 DMA 访问
ADC:修复用于G4 MCU的ADC时钟预分频器
ADC:修复 PYB。G4 微控制器ADCAll.read_core_temp
ADC:修复G4 MCU上的内部ADC通道读数
machine_adc:修理机器。ADC 将在 G4 MCU 上工作
ADC:为 G4 MCU 的 ADC 勘误表添加解决方法
ADC:修复 PYB。G4 和 L4 MCU 上的ADCAll.read_core_bat
QSPI:允许qspi_write_cmd_data写入具有 1 个数据字节的 CMD
mpconfigport:始终定义MICROPY_SOFT_TIMER_TICKS_MS
从常量列表中删除重复的机器模块
板/B_L072Z_LRWAN1:为内部SX1262添加引脚定义
板/B_L072Z_LRWAN1:将默认ROM级别降低到“核心”
SPI:添加STM32WL5 SUBGHZ SPI 外设
powerctrlboot:支持从HSE+PLL STM32WL系统时钟
DMA:修复 WL55 板上的 DMA 完成问题
subghz:将 STM32WL55 subghz 无线电接口添加到 STM 模块
modstm:添加MICROPY_PY_STM_CONST标志,清除它以STM32WL5
使用大写变体名称
生成文件:将板变体附加到构建
mboot:通过将 zlib 替换为新的 deflate 模块来修复 fwupdate,修复
UART:修复 G4 MCU 上波特率低的 UART 超时问题
定时器:修复高级定时器外设上的死区时间配置
DMA:在H5 MCU上增加对SPI1 DMA的支持
Octospi:增加对双线SPI接口的支持
powerctrlboot:允许在H5 MCU上使用PLL3作为USB时钟
定时器:修复在 H5 MCU 上使用 TIM8 的问题
UART:当 UART10 是 USART 时,添加对 UART10 的支持
powerctrlboot:允许在 H5 上启用 PLL1 Q 和 R 输出
ADC:修复STM32H5支持
ADC:增加对STM32H5 ADC2 输入的支持
ADC:优化 G4、H5、L4 和 WB MCU 的采样时间
machine_adc:修复和改进STM32H5支持
DAC:通过dma_nohal实现添加STM32H5 DAC 支持。
板:在所有 hal_conf.h 文件中将包含到定义之后
UART:通用 H5 和 H7 MCU 的 UART 源时钟计算
DMA:去除不平衡)
usbd_msc_interface:允许配置 MSC 查询响应
主板/ARDUINO_GIGA:更新主板配置
i2c:在 H7 MCU 上增加对 I2C4 的支持
Teensy 端口:没有特定于此组件/端口的更改

Unix 端口:

modutime:使用时间模块的扩展版本。
生成文件:允许变体添加QSTR_DEFS
主:添加用于检查模块路径的 NLR 范围
自述文件:修复降价链接标记
modsocket:添加对缺少 ERR,HUP、NVAL 轮询值的轮询支持
modselect:删除 Unix 特定的选择模块实现
modjni:修复类型定义和错误字符串的构建错误
主:修复禁用MICROPY_USE_READLINE时的内存泄漏

webassembly port:

modutime:使用时间模块的扩展版本。
使mp_js_do_str异步
使mp_js_process_char异步
将窗口检查类型替换为ENVIRONMENT_IS_NODE标志

windows port:

Makefile:允许变体添加QSTR_DEFS
zephyr port:

modutime:使用时间模块的扩展版本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值