When the Debugger Lies
2 days ago
- 作者使用GDB手动与nRF54L系列的密钥管理单元(KMU)交互,配置并将密钥推送到插槽。
- 在配置并推送密钥后,通过GDB的`x`命令读取内存会因为J-Link调试器的内部内存缓存而返回过时的值。
- 使用JLinkGDBServer的`ReadMemAP`命令可以绕过缓存并返回正确的值,确认了缓存问题。
- 使用`SetEnableMemCache=0`禁用内存缓存可以解决此问题,但不建议常规使用。
- 只有当外设(如KMU)在CPU暂停时写入内存时,缓存才会成为问题;否则,推进CPU运行会清除缓存。