Trace32 SRST和TRST、system.attach 和 system.up的区别

目录

TRST-Resets the JTAG TAP controller and the CPU internal debug logic

SRST- Resets the CPU core and peripherals

SYStem.Mode Down

SYStem.Mode Nodebug

SYStem.Mode Prepare

SYStem.Mode Go

SYStem.Mode Attach

SYStem.Mode StandBy

SYStem.Mode Up


下图为Trace32工具为ARM debug设计的 JTAG pin 脚图:

 其中,TRST和SRST信号是可选的。

TRST-Resets the JTAG TAP controller and the CPU internal debug logic

Test Reset 信号用于JTAG Test Access Port (TAP)的异步重置。它将reset TAP的状态机,以及绝大部分ARM系列的debug相关寄存器。从调试器的视角,TRST信号从调试器输出至目标板。它是低电平有效。

SRST- Resets the CPU core and peripherals

System Reset,低电平有效,用于reset 目标系统。这个信号同样也可以用于调试器检测目标处理器是否处于reset状态。该信号可以是输入或者输出。

SYStem.Mode Down

禁用调试器,CPU的状态不会改变。

SYStem.Mode Nodebug

同down,禁用调试器,CPU的状态不会改变。

SYStem.Mode Prepare

reset 目标处理器,可以通过重置信号(reset line)或者CPU中特殊的reset寄存器来实现。之后,将提供对CoreSight DAP接口的直接访问。对于reset,reset line必须连接到调试器。

调试器将初始化一些debug 端口(JTAG,SWD,cJTAG)以及CoreSight DAP接口,但是并不连接到CPU。这种Mode可以用于一些不需要debug CPU或者绕过CPU的场景,调试器直接通过内存总线(memory bus),比如AXI,AHB或者APB等,直接通过CoreSight DAP的内存访问端口,比如:

  • 调试器绕过CPU,直接访问物理内存。如果改映射存在,内存应该在被访问前,被初始化。
  • 调试器访问外设,例如,在调试模式下,停止CPU之前配置寄存器。可能需要先对外设进行计时和供电,然后才能访问它们。
  • 第三方软件或一些特殊调试器使用 TRACE32 API通过 TRACE32 调试器硬件访问调试端口和 DAP。

SYStem.Mode Go

通过复位线复位目标,初始化调试端口(JTAG、SWD、cJTAG),并开始进程执行。对于重置,重置线必须连接到调试连接器

SYStem.Mode Attach

不会发生重置,CPU状态(正在运行或停止)不会更改。调试端口(JTAG,SWD,cJTAG)将被初始化。 执行此命令后,例如,可以使用 Break 命令停止用户进程。

SYStem.Mode StandBy

通过复位线使目标保持复位状态,并等待检测到电源。对于重置,重置线必须连接到调试连接器。 一旦检测到电源,调试器就会恢复尽可能多的调试寄存器(例如片上断点、矢量捕获事件、控制),并从复位中释放CPU以启动进程执行。 检测到 CPU 断电时,调试器会自动切换回待机模式。这允许调试电源周期,因为调试寄存器将在上电时恢复。 注意:通常只能在CPU运行时设置片上断点和矢量捕获事件。要设置软件断点,必须停止 CPU。

SYStem.Mode Up

通过复位线复位目标,初始化调试端口(JTAG、SWD、cJTAG),停止CPU,并进入调试模式,相关寄存器被恢复为默认值。 对于重置,重置线必须连接到调试连接器。 所有寄存器的当前状态都是从 CPU 读取的。

虽然笔者未在文档中找到关于SYStem.Mode Up 会触发SRST的相关描述,但在实际使用中,可以发现SYStem.Mode Up确实会触发SRST。

参考文章:

TRACE32® Download TRACE32® Help System (lauterbach.com)

猜你喜欢

转载自blog.csdn.net/luolaihua2018/article/details/130772896