[STM32H7] 在 CubeIDE 中卡在 RCC_FLAG_D2CKRDY

[复制链接]
309|13
Treasure101 发表于 2025-11-3 16:35 | 显示全部楼层 |阅读模式
STM32H745 双核启动在 CubeIDE 中卡在 RCC_FLAG_D2CKRDY。

我们已根据 AN5361 文档仔细检查了设置。


由于 CM7 的 main.c 中存在超时问题,我使用了下面这行代码来替代超时后就退出的代码,以便观察调试器行为:
while(__HAL_RCC_GET_FLAG(RCC_FLAG_D2CKRDY) != RESET) {asm("NOP");}
当在开发板上启动应用程序时,我按以下步骤操作:
启动 CM7 的配置,将编译好的代码下载到两个内核。
在 CM7 上运行代码。
启动 CM4 的配置。
刚执行完最后一步,就出现了在地址 “0xa05f0000” 处中断的情况,并且弹出消息:
Target is not responding, retrying...
这条消息不断重复出现。
要想再次尝试,必须给开发板重新上电,并且重启 CubeIDE。



jf101 发表于 2025-12-12 13:13 | 显示全部楼层
强制置位一下
豌豆爹 发表于 2025-12-12 16:42 | 显示全部楼层
可能是双核启动时序冲突
classroom 发表于 2025-12-12 17:43 | 显示全部楼层
M7内核在启动时会等待CM4内核的D2域时钟就绪,但若CM4未正确初始化或未进入预期状态,CM7会因超时进入错误处理,导致调试器失去连接。
cr315 发表于 2025-12-12 17:43 | 显示全部楼层
调试器配置可能有错误
duo点 发表于 2025-12-12 18:44 | 显示全部楼层
CM7和CM4需通过HSEM同步启动流程。若HSEM未初始化或信号量未正确释放,CM4可能无法被唤醒,导致CM7卡死。
elephant00 发表于 2025-12-12 16:45 | 显示全部楼层
修正CM7的启动等待逻辑,用&&而非&
flycamelaaa 发表于 2025-12-12 20:45 | 显示全部楼层
建议增加超时后的错误处理
jcky001 发表于 2025-12-12 21:46 | 显示全部楼层
CM4需在初始化后进入低功耗模式,避免与CM7竞争资源。
onlycook 发表于 2025-12-12 22:46 | 显示全部楼层
在CM7的启动流程中,释放HSEM以唤醒CM4
powerantone 发表于 2025-12-12 17:20 | 显示全部楼层
HSE晶振是否正常工作,PLL配置是否正确
probedog 发表于 2025-12-12 18:15 | 显示全部楼层
检查PCB布线,避免高频时钟信号受干扰。
solty 发表于 2025-12-12 19:10 | 显示全部楼层
原因可能在于双核启动时序和调试器配置错误。
xinxianshi 发表于 2025-12-16 16:02 | 显示全部楼层
程序卡在此处,本质是代码一直在等待该标志置 1,但标志始终为 0,原因是 D2 域时钟未正确生成或电源域未满足时钟工作条件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

150

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部
0