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)
Trace32 SRST和TRST、system.attach 和 system.up的区别相关推荐
- java 的 System.getenv() 和 System.getProperty()
概述 java中提供了 System.getenv() 和 System.getProperty() 两个方法可以获取系统的环境变量和java程序相关的信息. Java提供了System类的静态方法g ...
- matlab system object,通过 System object 实现模块
使用 System object 实现您自己的算法. The System object source code controls the appearance of the block dialog ...
- System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1) 在vb里面 等价于i=i-1 在C#里面 等价于i-- 是有C#自 ...
- java system.setproperties_在JAVA中 System.getProperty 和 System.setProperty 方法.
今天着手研究TOMCAT源码. 在刚開始的时候Startup类中init方法中调用非常多次System.getProperty和System.setProperty的方法. 后来经过网上搜索才得知,这 ...
- 使用系统规则测试System.in和System.out
编写单元测试是软件开发的组成部分. 当您的被测类与操作系统交互时,您必须解决的一个问题是模拟其行为. 这可以通过使用模拟代替Java Runtime Environment(JRE)提供的实际对象来完 ...
- java system类_Java System类mapLibraryName()方法及示例
java system类 系统类mapLibraryName()方法 (System class mapLibraryName() method) mapLibraryName() method is ...
- (07)System Verilog 类与结构体区别
(07)System Verilog 类与结构体区别 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 类与结构体区别 5)结语 1.2 ...
- (06)System Verilog 静态变量与动态变量区别
(06)System Verilog 静态变量与动态变量区别 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 静态变量与动态变量区别 ...
- (05)System Verilog 组合逻辑与时序逻辑区别
(05)System Verilog 组合逻辑与时序逻辑区别 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog 组合逻辑与时序逻辑区别 ...
最新文章
- 使用element ui 组件的时候,如果使用两个或多个按钮在同一个单元格内,按钮会竖着排列,但是不能够对齐怎么解决?
- java集成开发工具项目_Java项目开发(一)-不借助集成工具创建Java项目并编写编译执行脚本...
- python是什么意思-python是什么意思
- python导入类有红线_解决Python中导入自己写的类,被划红线,但不影响执行的问题...
- 微信小程序后端用python_微信小程序后端开发用python
- word流程图怎么使箭头对齐_word流程图箭头怎么画
- MarkDown基础语法笔记
- 云数据库RDS和对象存储OSS
- 手机剪辑视频指南:去水印、加字幕、做转场,统统一键就搞定
- c++读取tsv类型文件
- win10删除提示找不到该项目
- python3集合_python3集合练习(set)
- VMware虚拟机无法连接外网怎么解决
- 洛谷 P1085	不高兴的津津 C语言
- mysql 查询 表别名_MySQL-复杂查询及条件-起别名-多表查询-04
- 计算机考研补录,考研成绩没过国家线还能补录吗?
- SHN-PEG-OH,HO-PEG-NHS,Hydroxyl-PEG-NHS
- H5入门四:CSS选择的艺术
- 找工作的时候怎么确认公司是否靠谱?
- px4+vins+ego单机鲁棒飞行一(px4+mavros篇)