评论
更改您的默认环境。在 platformio.ini 中改为“STM32F103RC_bigtree_512K_NOUSB”而不是 256k。它告诉您启用的东西太多,代码不适合。它与 STlink 一起工作,因为它在没有任何健全性检查的情况下进行原始数据上传 |
@brew99 非常感谢您提供的信息。虽然我的新板是STM32F103RCT6芯片的1.2版本,只有256k。
此外,即使选择了 STM32F103RC_bigtree_NOUSB 开发板,它也能正常编译,我可以通过 microSD 卡将它上传到开发板,而且它工作正常。编译器说代码是 245724 字节。(见上文)所以,代码小于 256k。 但是当我通过 STLINK 上传代码时 – 它停止工作了。我想知道 STLINK 是否覆盖了引导加载程序? |
即使你的新 V1.2 板有 RCT6 标签,它仍然有 512k,所以你应该可以使用“STM32F103RC_bigtree_512K_NOUSB”。如果你有标记为 RET6 的芯片,那么你需要使用“STM32F103RE”环境。基本上实际芯片都是 512,但出于营销目的,RCT6 的市场价为 256。 我相信引导加载程序是 0x0 到 0x7000。因此,如果您通过 STLINK 加载固件,则起始地址需要为 0x7000,大小为 80000。您应该始终通过 STLINK 读取(从 0x000 开始,以便也捕获引导加载程序),然后保存文件,然后再开始更改或加载新文件。 |
@brew99非常感谢您的明确解释。现在我知道如何解决尺寸问题了。我删除了一些未使用的代码,因此它适合两种配置。现在它可以在调试模式下完美编译。
在那里显示当前执行点一秒钟,然后退出调试器。
可能出了什么问题? |
除了编译 Marlin,然后放在 SD 卡上,我没有使用过 VSC/platformio。我不将它与 STLINK 硬件一起使用。 我使用 STlink 硬件通过此处找到的 STM ST-link 实用程序进行读/写: 如果你只想要没有引导加载程序的固件,那就是你放置起始地址 0x7000 的地方,否则如果你想要它,那么从 0x0000 开始。0x80000 应该是 32 个数据位的大小。 它建议阅读,然后保存一个默认文件,然后再开始弄乱它并编写新的固件/引导加载程序 |
啊,我明白了。谢谢。 |
您是在谈论调试 marlin 代码吗?如果是这样,我不调试它,只是更改/启用一些东西或参数,然后在 VSC/Platformio 中编译/构建。 我使用 STlink 的唯一目的是读取我的 V1.0 板,然后更改地址以使其达到 512k(它在引导加载程序中被硬锁定为 256k,因为它是 V1 的第一批生产运行之一.0 板)。我还尝试在其上加载 v1.2 引导加载程序,这也有效。 |
知道了。谢谢! |
我正在尝试调试 BigTreeTech SKR Mini E3 板上的代码。当我单击构建按钮时 – 它编译正常。当我单击“平台 IO:上传”按钮时,它会通过 STLINK 进行编译和上传。但是当我点击“开始调试”菜单时,它给了我一个错误:
可能出了什么问题?