2406992_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2406992_zh-CN

2406992_zh-CN

在深度掉电状态下,将 J-Link/Ozone 连接到 LPC55(S)28 时,DM-AP 连接行为不一致

您好,

我们发现,当使用 Debug.SetConnectMode(CM_ATTACH_HALT) 将 Ozone (J-Link) 连接到处于关机或深度关机模式的 LPC5528 或 LPC55S28 时,SWD 连接行为不一致。我们在两块运行 LPC5528 的“相同”定制板和一块运行 LPC55S28 的 NXP 评估板上重现了不同的结果(均为 1B 版本),因此希望澄清预期的调试邮箱恢复流程。

设置

MCU:LPC5528 和 LPC55S28
调试探针:J-Link
工具:Ozone,Debug.SetConnectMode(CM_ATTACH_HALT)
测试的电源模式:掉电和深度掉电(通过 POWER_EnterPowerDown() / POWER_EnterDeepPowerDown() 进入)


观察结果 1 — 板 A,定制板,LPC5528,掉电和深度掉电

DM-AP IDCODE始终无法解析;重试4次后连接彻底失败,未发生重置:

InitTarget() start
ERROR: Wrong DM-AP IDCODE detected: 0xFFFFFFFF
InitTarget() end - Took 101ms
(重复4次,然后:)
 
Connection failed.

观察结果 2 — 板 B,定制板,LPC5528,掉电和深度掉电

DM-AP IDCODE 读取 0x00000000 第一次尝试失败后,第二次尝试报告了明确的调试邮箱恢复消息并成功:

InitTarget() start
ERROR: Wrong DM-AP IDCODE detected: 0x00000000
InitTarget() end - Took 101ms

ConfigTargetSettings() start
InitTarget() start
CPU halted successfully after enabling debug access
InitTarget() end - Took 7.40ms

Found SW-DP with ID 0x6BA02477
...
Connected to target device.

观察 3 — NXP 评估板,LPC55S28,掉电和深度掉电

DM-AP IDCODE 也读取 0x00000000 第一次尝试失败,但第二次尝试成功了。 没有 打印“启用调试访问”消息后,程序直接进入正常的AP扫描:

InitTarget() start
ERROR: Wrong DM-AP IDCODE detected: 0x00000000
InitTarget() end - Took 112ms

ConfigTargetSettings() start
InitTarget() start
InitTarget() end - Took 3.93ms

Found SW-DP with ID 0x6BA02477
Scanning AP map to find all available APs
AP[0]: AHB-AP (IDR: 0x84770001, ADDR: 0x00000000)
...
Connected to target device.

在所有能够到达目标设备的情况下,设备都会因连接而发生可观察的副作用——重置,因此设备会退出掉电/深度掉电状态。

补充信息

  • 这两个定制板的硬件版本相同,运行相同的软件,并且具有相同的掉电/深度掉电配置。
  • 对于评估板,我们修改了示例 power_manager_lpc.c,使其使用与自定义板相同(或非常相似)的掉电/深度掉电配置。
  • 所有设备均可通过其配置的唤醒源唤醒,并且在活动状态下(非低功耗模式)均可正常连接到 Ozone/调试器。
  • 所有开发板都运行相同的 SDK 版本(24.12.00)。

问题

  1. 将调试器(SWD/Ozone/J-Link)连接到处于掉电或深度掉电状态的 LPC55S28 时,是否总是需要完全 RESET 芯片?或者,在这些模式下,是否有无需重置即可检查/停止内核的受支持方法?
  2. 当目标处于睡眠状态时,是什么因素决定了 DM-AP ID 寄存器读取的是 0xFFFFFFFF 还是 0x00000000?
  3. 报告“启用调试访问后 CPU 已成功停止”(观察 2)的调试邮箱恢复路径与不显示此类消息而静默恢复的路径(观察 3)之间有什么区别?
  4. 是否有办法配置设备或调试会话,以便在目标不可达(睡眠、DP 完全断电)时连接成功,并且连接过程能够干净利落地失败(如观察结果 1 所示),而不是重置设备,从而在所有电路板上保持一致?或者观察结果 1 是异常情况,不应该在正常的硬件上发生?

提前感谢!

宝拉

Re: Inconsistent DM-AP attach behavior when attaching J-Link/Ozone to LPC55(S)28 in (Deep)Power Down

Hello

睡眠、深度睡眠、断电或深度断电模式下不支持调试模式;此信息来自LPC552x 用户手册第 13.3.1 章;

要将调试器连接到 LPC55S28,必须先将其唤醒,如果处于掉电模式,则需要使用 RESET;当设备处于掉电模式时,无法连接调试会话;

DM-AP ID 寄存器读取 0xFFFFFFFF 与 0x00000000 之间的区别可能是,0x00000000 是命令成功返回的响应(如UM11126第 50.5.7.2.1 章表 1064 中所述),而 0xFFFFFFFF 是未检测到的响应。

观察结果 1 看起来很奇怪,可能是因为设备仍处于关机模式而没有响应,或者您无法正确进入 DM-AP,因此无法进行调试;作为一种选择,您可以咨询一下是否是板 A 的硬件问题,因为板 B 可以成功连接。

此致敬礼,路易斯

Tags (1)
No ratings
Version history
Last update:
yesterday
Updated by: