MicroPython v1.13 版发布了

Spoony 54.75m2020-09-031057 次点击
今天 Damien 在英文论坛中宣布 MicroPython 发布 v1.13 版。

经过漫长的延迟和疯狂的一年,团队很高兴宣布发布了 MicroPython v1.13 版本!

可以从以下位置下载源码和固件
https://micropython.org/download/

完整的更新日志:
https://micropython.org/resources/micropython-ChangeLog.txt

主要的更新如下:

v1.13 版,新的uasyncio模块,代码格式化,支持unix的BTstack绑定

这个版本的MicroPython包含了uasyncio模块的新实现,该模块旨在与CPython的asyncio模块更加兼容。主要的改变是为每个协程使用一个Task对象,允许在不同的位置对任务进行排队,例如主运行循环、等待事件任务、锁或其他任务。它不再需要为主运行循环预先分配固定的队列大小。一个配对堆用于对任务进行排队,核心可以选择用C实现。

这个存储库中的大多数代码现在是自动格式化的,对于C代码使用uncrustify,对于Python代码使用Black。tools / codeformat.py脚本用于应用此格式。uncrustify的选项被选择来尽可能地与现有的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()函数来测试堆的状态;本机emitter中支持viper 操作二进制;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,并且不再支持硬件 pin IRQ。有关更多详细信息,请参见下面的重大更改。

esp32移植在IDF v3和v4版本上都启用了蓝牙支持(通过NimBLE)。还将默认文件系统从FAT更改为littlefs v2(但是具有FAT文件系统的现有设备将继续工作而不做任何更改)。

还有一个针对NXP i.MX RT系列CPU的新mimxrt移植。

**此版本中的重大更新包括:**

异步不再等待__aiter__的结果。__aiter__方法返回一个异步可迭代对象,但它本身不是可等待的。查看 https://github.com/micropython/micropython/commit/37e1b5c891f9964bb6c95228bc2d718511507a69

在ubluetooth中,IRQ事件常量的值都已更改(从位字段变为连续整数),Python代码应该相应地更新,方法是用新定义替换const定义。https://docs.micropython.org/en/latest/library/ubluetooth.html#ubluetooth.BLE.irq。另请参阅 https://github.com/micropython/micropython/commit/e6881f08292d03f089185718c131f543d095089b

在ubluetooth中,_IRQ_SCAN_RESULT事件的IRQ数据的“可连接”条目已更改为“ adv_type”。现有的可连接值是布尔值,True现在变成0x00,False变成0x02。https://github.com/micropython/micropython/commit/dd0bc26e65734b8a4fafa3769008e92e2ec6645d

对于esp8266,默认文件系统已从FAT更改为littlefs v2。固件和文件系统的闪存布局已更改,可以为固件和冻结的字节码提供更多空间。升级现有esp8266设备时,文件系统将重新格式化,因此应首先备份文件。https://github.com/micropython/micropython/commit/e0905e85a7ad2961aa9192f6130565860e531ad3

对于esp8266,machine.Pin不再支持将IRQ引脚配置为“ hard = True”(因为中断处理代码已移至iRAM)。使用引脚IRQ的现有代码应删除所有“ hard = True”参数。https://github.com/micropython/micropython/commit/0bd58a56137bd9124756ed0f57b4213daccfc7d5

对于unix移植,二进制文件被重命名为micropython-variant(不再是micropython_variant)。https://github.com/micropython/micropython/commit/977b532c8fcd1a9e12844dd4f9cc2d70341013d7
收藏 ♥ 感谢
暂无回复

登录注册 后可回复。



GitHub