ST意法半导体
直播中

李维嘉

7年用户 1405经验值
私信 关注
[问答]

STM32MP1:OpenOCD无法停止所有内核要如何解决?

我目前正在研究基于 STM32MP157C 的设计(安装在Seeed SoM - STM32MP157C 中)。
我正在尝试连接到目标上的 M4 Core,但无法停止。当我尝试这样做时,调试器可以停止 A7 CPU0 但无法停止 A7 CPU1(错误:超时等待 DSCR 位更改)。
M4 完全无法访问。
当我尝试从 OpenOCD telnet 接口访问核心时,我可以列出目标并在发出重置暂停命令后获得以下输出。
  • > reset halt
  • stlink_dap_op_connect(connect)
  • SWD DPIDR 0x6ba02477
  • Deferring arp_examine of STM32MP157CACx.cm4
  • Use arp_examine command to examine it manually!
  • Target not examined, will not halt after reset!
  • stlink_dap_op_connect(connect)
  • stlink_dap_op_connect(reconnect)
  • SWD DPIDR 0x6ba02477
  • SWD DPIDR 0x6ba02477
  • STM32MP157CACx.cpu0: ran after reset and before halt ...
  • STM32MP157CACx.cpu1: ran after reset and before halt ...
  • STM32MP157CACx.cm4: hardware has 6 breakpoints, 4 watchpoints
  • STM32MP157CACx.cpu0 rev 5, partnum c07, arch f, variant 0, implementor 41
  • target halted in Thumb state due to debug-request, current mode: Supervisor
  • cpsr: 0x800001f3 pc: 0x00010bbc
  • MMU: enabled, D-Cache: disabled, I-Cache: enabled
  • timed out while waiting for target halted
  • TARGET: STM32MP157CACx.cpu1 - Not halted
  • > targets
  •    TargetName        Type      Endian TapName           State
  • -- ------------------ ---------- ------ ------------------ ------------
  • 0 STM32MP157CACx.ap1 mem_ap    little STM32MP157CACx.tap halted
  • 1 STM32MP157CACx.ap2 mem_ap    little STM32MP157CACx.tap halted
  • 2 STM32MP157CACx.axi mem_ap    little STM32MP157CACx.tap halted
  • 3 STM32MP157CACx.cpu0 cortex_a  little STM32MP157CACx.tap halted
  • 4 STM32MP157CACx.cpu1 cortex_a  little STM32MP157CACx.tap running
  • 5* STM32MP157CACx.cm4 cortex_m  little STM32MP157CACx.tap reset
命令发出前,除cm4外的所有target都处于running状态(cm4一直卡在reset状态)。
如何访问内核并将程序加载到其中?
工具版本和配置:
  • Ubuntu 20.04 上的 STM32CubeIDE 1.4.0(我使用提供的 OpenOCD)
  • 带有最新固件的 STlink V2
  • 调试连接:1.8 MHz 时的 SWD(较高的时钟速率会由于电气限制导致通信失败,较低的时钟速率不会改变结果)
  • 调试模式设置:在复位下连接在低功耗模式下启用调试在暂停时停止看门狗计数器都启用







更多回帖

发帖
×
20
完善资料,
赚取积分