我在一个 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)
<cl '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)
<cl '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)
<cl 'tuple'>
>>>
现在有 3 个项目的元组返回mpy
版本(6),但不是一个命名的元组,没有额外的数据与mpy
版本。
我的问题是如何在我的 XIAO SAMD2 实现中获得一致的结果?我应该包括或排除哪个选项?或者我不应该担心它?我正在研究是否切换到 Python 或留在 C (++) 这个小型处理器-倾向于 C (++)。
非常感谢。
如果你想使用预编译 / 字节码.mpy 文件,那么你需要决定使用字节码或编译为本地代码为您的 mcu 平台。
对于字节码,您需要分发与运行时固件匹配的字节码版本,1.12-1.18 = = 5,下一个版本将增加
对于本机代码,您需要为要支持的每个平台分发版本。esp32c3 无法运行 stm32 本机代码,反之亦然
此外,不同的端口 / 板在某些 stdlib API 中确实会有差异。您的代码必须足够健壮以处理这些差异。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(13条)