我正在使用 Pyboard(D 系列),需要自动化准备固件更新的过程(启动模式)。具体来说,我想通过 Python 脚本以编程方式控制 Micropython REPL(读取-求值-打印循环)。这将允许我执行诸如触发引导加载程序和在 Micropython 中的 Pyboard 上执行命令之类的任务。我使用的是 M1 Mac。 如果不自动化,该过程将是:
screen /dev/*usb*
>>> import machine
>>> machine.bootloader()
然后 pyboard 将自行完成 REPL 会话并进入启动模式。
我尝试过的:
screen_process = pexpect.spawn("screen /dev/*usb*")
或
fd = os.open("/dev/tty.usbmodem355B317230372", os.O_RDWR|os.O_NONBLOCK|os.O_NOCTTY)
m = pexpect.spawn(fd)
m.send("import machine")
m.send("machine.bootloader")
但是,串行设备似乎需要特殊处理,我遇到了问题。
ser = serial.Serial('/dev/tty.usbmodem355B317230372', 115200, timeout=1)
ser.write(b'\x03\x01')
ser.write(b'import machine\n')
ser.write(b'machine.bootloader()\n')
这似乎运行良好。它不会抛出任何错误,但也不会将 pyboard 设置为启动模式。
我在寻找:
有关如何有效实施此自动化的指南,包括示例代码或最佳实践。如果您有以编程方式控制 Pyboard D 系列或类似设备上的 Micropython REPL 的经验,我将非常感谢您在解决我面临的问题方面的见解和帮助。
我想使用 Python 脚本自动执行以下操作:
实现这些目标的任何帮助或代码示例都非常有价值。 预先感谢您!