【ARM Trace32(劳特巴赫) 使用介绍 3 - trace32 访问运行时的内存】


请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】

文章目录

    • 1.1 trace32 访问运行时的内存
      • 1.1.1 侵入式 运行时内存访问
      • 1.1.2 非侵入式运行时访问
      • 1.1.3 缓存一致性的非侵入式运行时访问
    • 1.2 Trace32 侵入式和非侵入式 运行时访问
      • 1.2.1 侵入式访问
      • 1.2.2 非侵入式运行时访问
    • 1.3 Trace32 缓存一致性的运行时访问

1.1 trace32 访问运行时的内存

1.1.1 侵入式 运行时内存访问

侵入式意思是CPU周期性的停止和启动,这样外部debugger才可以使用CPU的 load/store指令访问内存内容。
在这里插入图片描述
这种方式下,debugger和cpu看待内存的方式是一样的,但是这样方式限制了“运行时”的特点。

1.1.2 非侵入式运行时访问

非侵入式就意味着 CPU不用停止下来 当进行memory访问的时候。所以外部debugger就不能使用cpu来进行内存的访问了,所以debugger 必须使用 DAP的方式来进行访问,例如 通过 AHB 和 AXI 总线进行访问,前提是 AHB或者AXI 口必须映射到 memory上。
在这里插入图片描述

1.1.3 缓存一致性的非侵入式运行时访问

这种访问指的是 AHB/AXI 总线绕过 cache 进行访问,在下面的例子中 变量 myVar 只会在 cache 中更新并没有写入到memory中,它的当前状态对外部 debugger是不可见的。
在这里插入图片描述
下面的例子则不同,它的 cache 策略使用的是write-back 方式,当外部 debugger来读取这个变量时会通过 SCU(Snoop Control Unit) 告知 cache 先将其刷到 memory中,所以 debugger读到的数据和cache中的数是一样的。
在这里插入图片描述
上面这个例子中,cache的维护是通过 SCU进行的,在 AXI 访问的过程中,SCU会触发 cache将数据写入memory中。需要注意AHB没有这种功能。

1.2 Trace32 侵入式和非侵入式 运行时访问

使用Trace32 进行运行时访问的时候需要加上个前缀 E 类, E 表示运行访问,E 可以和其他访问类一块使用,如:Data.dump NSD:<address> 可修改成 Data.dump ENSD:<address>

1.2.1 侵入式访问

可以使用功下面的命令:

SYStem.MemAccess.StopAndGo
Data.dump E:0x100
Var.view %E myVar

1.2.2 非侵入式运行时访问

该访问方式也就是直接DAP访问,可以直接通过AHB或者 AXI来访问,并指定访问“类”。这种访问方式需要硬件定义好 AP(access port)。如果使用了一个常用的芯片,在 Trace32 的脚本中使用 SYStem.CPU 命令之后,Trace 就会将 AP 配置好。

SYStem.CONFIG MEMORYACCESSPORT 1 	; Define memory access port and AXI
SYStem.CONFIG AXIACCESSPORT 1.   	; access port (e.g. port number 1)
Data.dump EAXI:<address> 			; Run-time access via AXI. Prefix “E”
Data.dump EAXI:myVar 				; is optional but recommended to read myVarn via the DAP

在 SoC-400 中可以存在 0-255 个 AP port, 所以需要使用 “AXIAPn.Port <port number>” 来指定是哪个 AP PORT。
在 SoC-600 使用的不是 port number 而是地址,如:sys.config.axiap1.base dp:0x2b170000

使用 DAP的非侵入是运行时访问的例子如下:

SYStem.CONFIG MEMORYACCESSPORT 1. ; Define memory access port and AHB
// SYStem.CONFIG AHBACCESSPORT 1. ; or AXI access port
SYStem.CONFIG AXIACCESSPORT 1.

SYStem.MemAccess DAP ; Non-intrusive access via AHB / AXI

Data.dump E:0x100 ; Run-time access via DAP. Prefix “E”
Var.view %E myVar ; is required to read 0x100 or myVar

1.3 Trace32 缓存一致性的运行时访问

使用命令: SYStem.Option.AXIACEEnable ON

SYStem.CONFIG.MEMORYACCESSPORT 1. ; Define memory access port and AXI
SYStem.CONFIG.AXIACCESSPORT 1. ; access port (e.g. port number 1)

SYStem.Option.AXIACEEnable ON ; Enable cache coherent transactions
SYStem.MemAccess DAP ; Non-intrusive access via AXI

Data.dump E:0x100 ; Run-time access via AXI. Prefix “E”
Var.view %E myVar ; is required to read 0x100 or myVar

如果想通过Trace32 来访问下图中 VPU或者 NPU上的寄存器,那么需要怎么做?
在这里插入图片描述

  • sys.config.axiap1.base dp:0xxxxxxxxx
  • sys.up
  • d.dump eaxi:0xxxxxxxxx // 读 NI-700里的地址

system.attach 与 system.up 命令不同,system.attach 不会对目标系统进行复位。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/129056.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STL常用库函数复习

文章目录 pairvectorliststackqueuequeuepriority_queuequeue双端队列 set✨set集合✨multiset 多重集合了解&#xff1a;unordered_set 无序集合 map&#x1f31f;map几乎不用&#xff1a;multimap一般不用&#xff1a;undered_map pair utility示例 #include <iostream&…

人工智能基础——Python:Numpy与矩阵

人工智能的学习之路非常漫长&#xff0c;不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心&#xff0c;我为大家整理了一份600多G的学习资源&#xff0c;基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

vue项目中订单完成提交按钮动画

1. 动画1 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>Order</title><!-- <link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/re…

时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测(SE注意力机制)

时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测&#xff08;SE注意力机制&#xff09; 目录 时序预测 | MATLAB实现WOA-CNN-LSTM-Attention时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MATLAB实…

【C++】STL 标准模板库 ③ ( STL 容器简介 | STL 容器区别 | STL 容器分类 | 常用的 STL 容器 )

文章目录 一、STL 容器简介1、STL 容器区别2、STL 容器分类3、常用的 STL 容器 一、STL 容器简介 1、STL 容器区别 STL 容器 用于管理 一组 数据元素 , 不同类型的 STL 容器 的区别 主要是 节点 和 节点之间的关系模型 不同 ; 容器的内存空间是否连续 : 向量 vector 的内存空间…

微软宣布称Windows 再不会偷偷下载更新文件,真的吗?

导读时钟拨回到2015年&#xff0c;微软刚刚推出Windows 10操作系统时&#xff0c;一些Windows 7用户首次在线Update的升级文件大小居然高达6~8GB。这件事引发了大量的不满&#xff0c;一些按照流量计费和宽带不给力的用户怨言极为严重&#xff0c;其中德国用户把此事闹上了当地…

嵌入式中常见的显示屏接口有哪些?

显示屏接口一般有I2C、SPI、UART、RGB、LVDS、MIPI、EDP和DP等。下面简要总结一下。 01 中小屏接口I2C、SPI、UAR 一般3.5寸以下的小尺寸LCD屏&#xff0c;显示数据量比较少&#xff0c;普遍采用低速串口&#xff0c;如I2C、SPI、UART。 I2C&#xff1a; I2C总线是半双工&…

TCC分布式事务----以Hmily框架为例

插曲&#xff1a;RocketMQ的Half Message 先引入一个插曲&#xff0c;RocketMQ为什么要有Half Message 为什么不在本地事务提交之后&#xff0c;直接发一个commit消息不就行了&#xff0c;为什么还要先发一个可以撤回的、不能被消费的half message&#xff0c;再执行本地事务…

剑指JUC原理-18.同步协作

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

王道数据结构课后代码题p150 15.设有一棵满二叉树(所有结点值均不同),已知其先序序列为 pre,设计一个算法求其后序序列post。(c语言代码实现)

对一般二叉树&#xff0c;仅根据先序或后序序列&#xff0c;不能确定另一个遍历序列。但对满二叉树&#xff0c;任意一个结点的左、右子树均含有相等的结点数&#xff0c;同时&#xff0c;先序序列的第一个结点作为后序序列的最后个结点。 本题代码如下 void pretopost(char …

神奇工具!这7个软件让设计轻松起飞

作为一个设计小白&#xff0c;你还在问前辈们有没有好的设计软件吗&#xff1f;还是没地方问&#xff0c;只能去百度搜索&#xff1f;如果是这样&#xff0c;那么接下来的文章正好可以解决你的问题。本文将介绍7种常用的平面设计工具&#xff0c;每种平面设计工具都有自己的特点…

由于找不到msvcp140_1.dll无法继续执行代码怎么解决

msvcp140_1.dll是Microsoft Visual C库文件之一&#xff0c;丢失后可能导致程序无法正常运行。以下是一些关于解决msvcp140_1.dll丢失问题的方法以及丢失原因的介绍。 一、msvcp140_1.dll是什么&#xff1f; 作用&#xff1a;msvcp140_1.dll是Microsoft Visual C库文件&#…

JVS低代码表单自定义按钮的使用说明和操作示例

在普通的表单设计中&#xff0c;虽然自带的【提交】、【重置】、【取消】按钮可以满足基本操作需求&#xff0c;但在面对更多复杂的业务场景时&#xff0c;这些按钮的显示控制就显得有些力不从心。为了更好地满足用户在表单操作过程中的个性化需求&#xff0c;JVS低代码推出了表…

切换数据库的临时表空间为temp1 / 切换数据库的undo表空间为 undotbs01

目录 ​编辑 一、切换临时表空间 1、登录数据库 2、查询默认临时表空间 3、创建临时表空间temp1&#xff08;我们的目标表空间&#xff09; 4、修改默认temp表空间 5、查询用户默认临时表空间 6、命令总结&#xff1a; 二、切换数据库的undo表空间 1、查询默认undo表…

STM32——端口复用与重映射概述与配置(HAL库)

文章目录 前言一、什么是端口复用&#xff1f;什么是重映射&#xff1f;有什么区别&#xff1f;二、端口复用配置 前言 本篇文章介绍了在单片机开发过程中使用的端口复用与重映射。做自我学习的简单总结&#xff0c;不做权威使用&#xff0c;参考资料为正点原子STM32F1系列精英…

大话IEC104 规约

2. iec104 协议的帧结构 iec104 基于TCP/IP 传输&#xff0c;是一个应用层协议&#xff0c; 其帧结构被称为 APDU&#xff0c;APDU 一般由 APCI 和 ASDU组成。 2.1 APDU (Application Protocol Data Unit) APDU 被称为应用协议数据单元&#xff0c;也就是一个iec104 的协议帧…

【修车案例】一波形一案例(12)

故障车型&#xff1a;丰田CHR 故障现象&#xff1a;发动机异常抖动&#xff0c;尤其是在怠速时&#xff0c;诊断仪显示气缸3失火&#xff0c;先后更换过点火线圈、喷油嘴等&#xff0c;仍然没有修复。 示波器诊断&#xff1a;用示波器采集发动机怠速时气缸2、气缸3的压力波形。…

【Docker】Docker 网络

引言 Docker是一个开源的应用容器引擎&#xff0c;它允许开发者将应用及其依赖打包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器或Windows机器上&#xff0c;也可以实现虚拟化。Docker的主要优势之一是其网络功能&#xff0c;而网络功能的核心就是网络驱动…

浅析网络协议-HTTP协议

1.HTTP简介 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于从万维网&#xff08;WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据&#xff08;HTML 文件, 图…

安卓手机搭建博客网站发布公网访问:Termux+Hexo结合内网穿透工具轻松实现

文章目录 前言 1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。 下面介绍在Termux中安装个人hexo博客并结合…