hi, experts:
通过JTAG 接口,debug ARM Cortex-A7平台时:
JTAG tool与CPU Core连接后,通过halt命令,会让CPU停下来?
这是如何做到的?会做一些CoreSight相关register设置吗?
按我的理解:
1. 当我们设置Software breakpoint / Hardware breakpoint时,才会做一些register设置。
best wishes,
执行halt命令 可以通过控制cpu logic的debug control and run regiester 使处理器进入debug 状态,请问你来自那个公司?
hi,
"执行halt命令 可以通过控制cpu logic的debug control and run regiester 使处理器进入debug 状态"
这个过程:会与CPU的CoreSight交互吗?会设置一些coresight相关的register吗?
比如:
使用OpenJTAG工具debug boot loader的时候,需要先让CPU停下来,进入debug状态。
hi, Zenon:
"debug control and run register" 应该不是core sight的一部分吧?
它指的是:ARMv7 ARM manual的C11 Chapter "The debug register"?
在JTAG debug中debugging tools通过 CoreSight 的register进行设置来trigger 各种控制事件
具体关于让A7 CPU停下来,进入debug mode, debugging tools 需要设置CoreSight 的 Embedded Cross Trigger (ETC) 相关的register
可以设置 Debug Status and Control Register中 DBGDSCR.InstrCompl_l 的这个bit 为 1 来让CPU 进入 halt debug mode,
硬件方面 会通过 Cross Trigger Interface 触发DBGTRIGGER 信号,让CPU halt
详细信息请参见:
《Cortex™ -A7 MPCore Integration Manual》 的CoreSight Debug Interface 章节
hi, Qinghao:
感谢回复!
ARMv7 Arch Ref Manual的C5.2 : Entering Debug State.
提到了DBGDSCR register.
我想继续请教几个问题:
1. DBGDSCR register是ETC相关的register吗?
2. “可以设置 Debug Status and Control Register中 DBGDSCR.InstrCompl_l 的这个bit 为 1 来让CPU 进入 halt debug mode,”
当JTAG tool通过设置DBGDSCR.InstrCOmpl_l,让CPU进入Halt debug mode。
此时,就可以通过Debug相关register:设置hardware breakpoint or software breakpoint?
Hi chinaitger,
1. DBGDSCR是debugging tool 跟target 交流的一个控制接口,整个DBGDSCR register 包含的设置要多于 ETC,单就那个控制CPU进入debug halt mode 的bit 可以说跟ETC相关
2. HW breakpoint 和 SW breakpoint 是两种不同的形式,SW breakpoint 由于需要直接读写内存,所以必须要在CPU进入debug halt mode之后才能配置,但HW breakpoint 直接通过对debug register的配置,不需要进入debug halt mode, 在CPU运行中也能设置
cheer