分页: 1 / 1

MicroPython版本1.13发布了

发表于 : 2020年 9月 2日 15:42
shaoziyang
来自官方论坛: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端口。

此版本中的重大更改是: