You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VSCode+PlatformIO编译Marlin固件时遇RuntimeError错误求助

解决Marlin固件编译时的deque mutated during iteration错误

错误详情

编译过程中触发RuntimeError,完整错误日志如下:

Building in release mode
RuntimeError: deque mutated during iteration:
  File "C:\Users\dobrevi\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 181:
    env.SConscript(env.GetExtraScripts("post"), exports="env")
  File "C:\Users\dobrevi\.platformio\packages\tool-scons\scons-local-4.5.2\SCons\Script\SConscript.py", line 598:
    return _SConscript(self.fs, *files, **subst_kw)
  File "C:\Users\dobrevi\.platformio\packages\tool-scons\scons-local-4.5.2\SCons\Script\SConscript.py", line 285:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "C:\Users\dobrevi\Documents\3D\SovolSV06\Firmware\hillsoftware\buildroot\share\PlatformIO\scripts\custom_board.py", line 14:
    marlin.relocate_firmware(address)
  File "C:\Users\dobrevi\Documents\3D\SovolSV06\Firmware\hillsoftware\buildroot\share\PlatformIO\scripts\marlin.py", line 26:
    replace_define("VECT_TAB_ADDR", address)
    for define in env['CPPDEFINES']:
================================================================== [FAILED] Took 23.78 seconds ================================================================== 

Environment               Status    Duration
------------------------  --------  ------------
GD32F103RET6_sovol_maple  FAILED    00:00:23.779

问题根源

错误是由于marlin.py中的replace_define函数在遍历env['CPPDEFINES'](一个deque类型集合)的同时修改了该集合,违反了Python迭代时不能修改原容器的安全规则。

修复步骤

  1. 打开固件目录下的buildroot/share/PlatformIO/scripts/marlin.py文件
  2. 定位到replace_define函数中的迭代代码(约第26行),将直接遍历原集合改为遍历其副本:
    原代码:
    for define in env['CPPDEFINES']:
    
    修改为:
    # 遍历副本避免迭代时修改原集合
    for define in list(env['CPPDEFINES']):
    
  3. 保存文件后重新执行编译

额外排查方案

若修改后仍无法编译,可尝试:

  • 更新PlatformIO核心:在VSCode的PlatformIO面板中执行PlatformIO: Upgrade PlatformIO Core
  • 清理编译缓存:点击PlatformIO面板中的Clean按钮后重新编译
  • 确认custom_board.py和marlin.py未被意外修改

内容的提问来源于stack exchange,提问作者kdobrev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:05:12