Raspberry pico micropython 可以动态解释代码吗?

问题描述 投票:0回答:1

对于即将到来的项目,我需要一个可以“自我更新”的微控制器 - 在运行时加载新代码和逻辑。到目前为止,我的想法是使用两个 ESP 设备,一个作为“版本控制器/更新器”,另一个用于逻辑。 最近我发现了 Raspberry pico,发现它使用 micropython,基本上将 python 文件上传到 pico“存储”。我不熟悉这个系统,但是我可以正确地假设它可以自己“创建”这些文件并执行,因为它们似乎是由某些 micropython 加载器解释的?谷歌在这方面确实没有任何结果。

microcontroller micropython raspberry-pi-pico
1个回答
0
投票

您放置在主板闪存中的 MicroPython 源代码在运行时被解释,并且 MicroPython 可以访问闪存上的文件系统,所以答案是肯定的:您可以在设备文件系统上的文件中创建或修改 Python 代码,然后执行他们。

这是我在 Wokwi 在线模拟器中测试过的一个简单示例;我还没有在真正的板上测试过它,但没有理由相信它会有不同的表现:

import time
import os
time.sleep(0.1) # Wait for USB to become ready

os.mkdir('foo')
with open('foo/foo.py', 'w') as f:
    f.write('print("foo!")')
from foo import foo

当您运行此命令时,它会将

foo!
打印到 MicroPython 控制台。

您可以在 ESP8266(取决于内存)和 ESP32 板上以及 Pico 上运行 MicroPython,因此如果您已经在使用 ESP,您甚至可能不需要切换硬件。 MicroPython 文档描述了板之间的差异。

允许您的代码下载并运行外部代码当然会产生潜在的安全漏洞,因此您应该考虑这是否是您的项目中的问题。

© www.soinside.com 2019 - 2024. All rights reserved.