我们目前在设计中使用 H745,我们注意到引导加载程序手册 (AN2606) 中的这个小摘录:
“关闭/打开
电源后需要额外的重置才能连接到 BL 接口”
似乎并不是所有的复位都是相等的,如果在芯片已经在引导加载程序中等待时应用复位,则复位被计入此要求。
目前,我们的程序是这样的(我们使用 STLink v3:
- 进入调试模式
- 使用 Keil uVision IDE 发出三个重置(调试配置将此分配给 HWReset)
- 按“运行代码”运行我们的应用程序
- 在此之后,我们发出“Enter bootloader command”(如 ST 的文章中所述)
- 控制器准备进入引导加载程序并停止
- 我们按下“run code”,开发板进入bootloader
- 我们可以使用 FDCAN 命令
如您所见,我们依靠 IDE 来获得一个正常运行的引导加载程序。我们需要能够以编程方式执行此操作。
关于如何做到这一点的任何想法?
我们还以不同的方式做到了这一点:
- 让电路板在连接调试适配器的正常环境中启动(此阶段不涉及 IDE)
- 发出“输入引导加载程序命令”
- 例如使用 STM32CubeProgrammer 重置开发板
- 控制器正在响应 FDCAN 引导加载程序命令
我们已将两个内核设置为同时启动,CM4 只是在 main 中等待(我们使用信号量来阻止进程),直到 CM7 完成系统配置。
我们可以通过编程方式访问 Boot0 引脚,但不幸的是,我们没有连接 nRST 引脚(仅连接到 jtag)。
另外,图 58 中的 AN2606 可能有错误,FDCAN 没有简单地通过,我认为状态机像其他接口一样循环回到它。