来自官方论坛:https://forum.micropython.org/viewtopic.php?t=8979&p=50627#p50627
经过漫长的延迟和疯狂的一年,团队很高兴宣布MicroPython的下一版本v1.13!
v1.13新的uasyncio模块,代码格式,带有unix支持的BTstack绑定
此版本的MicroPython包括uasyncio模块的新实现,旨在与CPython的asyncio模块更加兼容。主要更改是为每个协程使用一个Task对象,从而允许在各个地方(例如主运行循环,等待事件的任务,锁或其他任务)的队列更加灵活。它不再需要为主运行循环预分配固定的队列大小。配对堆用于将Task排队,并且可以选择用C实现核心。
现在,使用uncrustify(针对C代码)和Black(针对Python代码)自动格式化了此存储库中的大多数代码。tools / codeformat.py脚本用于应用这种格式。选择了unrustify选项,以使其与现有的C样式尽可能地匹配,但是仍然进行了许多更改以使代码样式一致。
已为ubluetooth模块添加了BlueKitchen BTstack绑定,作为NimBLE堆栈的可选替代方案。现在可以使用这些绑定通过BLE支持构建unix端口,这些绑定可与USB蓝牙适配器一起使用(默认情况下,在dev和coverage变体上启用此功能)。
蓝牙的其他新增功能包括:用于服务/特性/描述符发现的新事件完成;阅读完成的新事件并表示已确认;并支持BLE.gap_scan()中的主动扫描。另请参见下文,了解对ubluetooth BLE API的重大更改。
已经实现了PEP 526,它为变量注释添加了新语法,例如“ x:int = 1”。PEP 572也已实现,它为赋值表达式添加了“:=”运算符,例如“ if x:= 1:...”。
整个代码库现在支持使用“常用字”方案压缩错误消息(那些字符串用作异常实例的参数),该方案可用于减小代码大小。
其他新功能包括:支持相等和不相等测试的非布尔结果;增加了micropython.heap_locked()函数来测试堆的状态;viper uint操作数在本机发射器中的二进制运算;littlefs v2文件系统上的mtime支持(如果需要,可以禁用)。
从.mpy文件导入ARM机器代码时,已进行了重要的错误修复:系统现在可以正确跟踪分配给机器代码的可执行内存,因此垃圾回收器不会回收该内存。
为了进行测试,添加了多实例测试运行程序(请参阅tests / run-multitests.py),该运行程序允许在两个或多个MicroPython目标上运行同步测试。当前用于需要多个设备之间通信的网络和BLE测试。
现在,在unix端口中,将不同的版本组织成不同的版本,类似于裸机上的板。PEP 475已实现,可重试EINTR失败的系统调用。
stm32端口获得了对STM32WB MCU的更好支持,并具有ADC,SPI和DMA支持,以及对这些MCU的mboot支持。Mboot还添加了可选的littlefs支持。
esp8266端口现在包括三个通用板定义:GENERIC_512K,GENERIC_1M和GENERIC,后者用于具有2M或更多闪存的模块。此端口还将默认文件系统更改为littlefs,并且不再支持硬管IRQ。有关更多详细信息,请参见下面的重大更改。
esp32端口现在在IDF v3和v4版本上都启用了蓝牙支持(通过NimBLE)。还将默认文件系统从FAT更改为littlefs v2(但是具有FAT文件系统的现有设备将继续工作而不做任何更改)。
还有一个针对NXP i.MX RT系列CPU的新mimxrt端口。
此版本中的重大更改是:
- 异步-不再等待__aiter__的结果。__aiter__方法应该返回一个异步可迭代对象,但它本身不是可等待的。查看提交
- 在ubluetooth中,IRQ事件常量的值都已更改(从位字段到顺序整数),并且应通过用新的const定义替换const定义来相应地更新Python代码。 https://docs.micropython.org/en/latest/ ... BLE.irq 另请参阅
- 在ubluetooth中,_IRQ_SCAN_RESULT事件的IRQ数据的“可连接”条目已更改为“ adv_type”。现有的可连接值是布尔值,现在True变为0x00,False变为0x02。查看提交
- 对于esp8266,默认文件系统已从FAT更改为littlefs v2。固件和文件系统的闪存布局已更改,可以为固件和冻结的字节码提供更多空间。升级现有esp8266设备时,文件系统将重新格式化,因此应首先备份文件。查看提交
- 对于esp8266,machine.Pin不再支持将IRQ引脚配置为“ hard = True”(因为中断处理代码已移至iRAM)。使用引脚IRQ的现有代码应删除所有“ hard = True”参数。查看提交
- 对于unix端口,二进制文件被重命名为micropython-variant(不再是micropython_variant)。查看提交
|