Xiao77.论坛:micropython和sys.implementation-在XIAOSAMD21和XIAO RP2040

我在一个 SEEED XIAO (SAMD21) 的版本上使用了 micropython 的版本。我注意到使用版本 1.18 的一个版本 / i 检查 (SAMD21),并希望使用 '编译' 库 (.mpy) 来节省空间。我有 mpy-cross for version 5,这对我来说工作正常。我也希望有浮点,所以我用那个选项构建了一个新的

版本 1.18-由 micropython 20220117 在 XIAO SAMD21 上发布,给出了以下结果:

MicroPython v1.18 on 2022-01-17; Seeed Xiao with SAMD21G18A
Type "help()" for more information.
>>> import sys
>>> sys.implementation
('micropython', (1, 18, 0))
>>> type(sys.implementation)
<class 'tuple'>
>>> 

这返回了一个包含 2 个项目的元组-名称和一个包含版本信息的元组。但是没有关于mpy版本的信息。

然后我尝试了 RP2040 NANO 发布的 1.18 版本(并在我的 XIAO RP2040 上运行它):

MPY: soft reboot
MicroPython v1.18 on 2022-01-17; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>> import sys
>>> sys.implementation
(name='micropython', version=(1, 18, 0), mpy=5637)
>>> type(sys.implementation)
<class 'tuple'>
>>> 

这里返回的结果是具有 3 个属性的元组-名为属性-和mpy版本(5637 & amp;0xff = 5)。然后,我使用#define MICROPY_PERSISTENT_CODE_LOAD (1)选项重新编译了 micropython,以尝试匹配 RP2040 输出:

MPY: soft reboot
MicroPython v1.18-169-g665f0e2a6-dirty on 2022-03-02; Seeed Xiao with SAMD21G18A
Type "help()" for more information.
>>> import sys
>>> sys.implementation
('micropython', (1, 18, 0), 6)
>>> type(sys.implementation)
<class 'tuple'>
>>> 

现在有 3 个项目的元组返回mpy版本(6),但不是一个命名的元组,没有额外的数据与mpy版本。

我的问题是如何在我的 XIAO SAMD2 实现中获得一致的结果?我应该包括或排除哪个选项?或者我不应该担心它?我正在研究是否切换到 Python 或留在 C (++) 这个小型处理器-倾向于 C (++)。

非常感谢。

1

如果你想使用预编译 / 字节码.mpy 文件,那么你需要决定使用字节码或编译为本地代码为您的 mcu 平台。

对于字节码,您需要分发与运行时固件匹配的字节码版本,1.12-1.18 = = 5,下一个版本将增加

对于本机代码,您需要为要支持的每个平台分发版本。esp32c3 无法运行 stm32 本机代码,反之亦然

此外,不同的端口 / 板在某些 stdlib API 中确实会有差异。您的代码必须足够健壮以处理这些差异。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(959)
Win10删除重复文件:Packer未引导 Win10
上一篇
Cma培训班报名费:如何跟踪Linux内核上的CMA分配
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(79条)