许多芯片支持低功耗模式(也常称作 “睡眠模式” 或类似名称)。当目标芯片进入此类模式后,会在等待事件、中断等信号的过程中降低功耗。
低功耗模式的具体实现由芯片设计者决定,不同芯片之间存在差异。
例如在 Cortex‑M 内核中,通常通过执行 WFI(Wait For Interrupt,等待中断) 和 WFE(Wait For Event,等待事件) 指令实现。
遗憾的是,低功耗模式在调试过程中常会引发问题。原因在于:多数低功耗模式的实现会限制甚至完全关闭芯片的调试逻辑:
部分芯片在低功耗模式下会关闭整个调试单元,导致 J-Link 与芯片断开连接。
部分芯片虽保留调试单元开启,但会关闭内部 Flash 和 RAM,导致目标处于低功耗模式时,J-Link 无法执行后台内存访问。
这会让RTT几乎无法稳定工作,因为内核运行时,目标内存大多数时间无法被访问。当内核被暂停时,芯片会唤醒并退出低功耗模式,内存恢复可访问状态。
J-Link / Flasher 通过调试接口连接目标芯片时,需要在芯片调试逻辑中设置特定标志位。这些标志位的副作用,可能会导致目标无法进入低功耗模式。
在量产编程完成后,让目标自动进入低功耗模式是很常见的需求,尤其对于电池供电设备。
因此,在关闭调试或编程会话后,J-Link 会清除之前设置的调试标志位。但这并不代表目标会立即进入低功耗模式,通常还需要对复位引脚进行一次翻转操作。无法保证清除调试标志位后,芯片一定能回到被调试前原本的低功耗状态。
推荐流程:
通过 J-Flash 对目标进行编程
确保在:
Options → Project settings → Production → Start application已勾选,并设置为 via reset pin(通过复位引脚)
或采用以下方式:
通过 J-Flash 等工具对目标编程
退出 J-Flash 等工具(会自动清除调试标志位)
启动 J-Link Commander
依次执行命令:r0 然后 r1
(不要执行 connect 或其他连接命令!)
退出 J-Link Commander
注意
以上所有步骤均假设:目标芯片的复位引脚已连接至 J-Link,且可由 J-Link 控制。
总体而言,低功耗模式对调试的影响高度依赖于目标芯片的低功耗实现方式。因此,在对启用了低功耗模式的目标芯片进行调试时,无法保证 J-Link 功能完全正常。
若在使用低功耗模式时与 J-Link 出现兼容问题,解决办法是:关闭所有低功耗模式。
联系我们
CONTACT INFORMATION
Windway Technology Hong Kong Limited
Phone: +852 695 952 92
Email: kuang@windway.cn
Add:ROOM 06 BLK A 23/F HOVER IND BLDG ,26-38 KWAI CHEONG RD KWAI CHUNG N.T
广州市风标电子技术有限公司
咨询热线:020 - 8600 3016 | 技术支持:15817074644
销售热线:18928802261 | 19868005704
公司邮箱:sales@windway.cn公司地址:广东省广州市黄埔区科珠路203号广东软件园F座401