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

news2024/12/26 23:46:30


请阅读【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 不会对目标系统进行复位。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:关联式容器map的使用

1、map的简介 map是关联容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中&#xff0c;键值key通常用于排序和惟一地标识元素&#xff0c;而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同&#xff0c;并…

【数据结构】树与二叉树(八):二叉树的中序遍历(非递归算法NIO)

文章目录 5.2.1 二叉树二叉树性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点&#xff0c;其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

【Linux系统化学习】冯诺依曼体系结构 | 操作系统

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Linux系统化学习 目录 冯诺依曼体系结构 组成介绍 CPU和内存 以使用微信发消息为例理解冯诺依曼体系结构 操作系统 冯诺依曼体系结构 随着世界上第一台计算机ENIAC&#xff08;埃尼阿克&#xff09;的…

2、鸿蒙开发工具首次运行时开发环境配置

请务必在第一次运行时配置好开发环境&#xff0c;如果取消了配置&#xff0c;后续再配置会比较麻烦 1、点击工具图标运行 2、在欢迎页中点击“Agree” 3、默认“Do not import setting”&#xff0c;点击“OK” 3、此片设置Nodejs和Ohpm的安装&#xff0c;其中&#xff0c; …

传来喜讯,优维又获奖了!!!

优维科技作为国内DevOps领域的行业领先企业&#xff0c;从诞生之日起&#xff0c;就一直致力于为中国企业提供一流的数字化运维服务&#xff0c;不断深耕核心技术&#xff0c;向客户提供专业强大的产品与服务。多年来&#xff0c;不仅获得了大量客户认可&#xff0c;更是屡次获…

Apache Airflow (三) :Airflow WebUI操作介绍

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

Android修行手册 - POI操作Excel常用样式(字体,背景,颜色,Style)

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

【媒体邀约】媒体宣传——企业成长的催化剂

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传是企业成长的催化剂&#xff0c;它在各种方面对企业的成功和发展起到了关键作用。 1. 曝光和知名度&#xff1a; 媒体宣传可以将企业和其产品或服务推向广泛的受众&#xff0c;…

SQL第四次上机实验

1.查询借阅了计算机类或者文学类图书的读者的借书证号 USE TSGL GO SELECT DISTINCT Reader.Lno FROM Book,Lend,Reader WHERE Book.ISBNLend.ISBN AND Lend.LnoReader.Lno AND Class 计算机类 OR Class 文学类2.查询同时借阅了计算机类和文学类图书的读者的借书证号 USE T…

C语言之文件操作(剩余部分)

上篇博客字数到极限了&#xff0c;给大家把内容补充在这一篇&#xff0c;我们还剩下文件读取结束的判定和文件缓冲区的内容没有介绍&#xff0c;让我们开始下面的学习吧&#xff01; 目录 1.文件读取结束的判定 1.1feof函数 1.2ferror函数 代码示例 2.文件缓冲区 2.1fflu…

制造行业怎么做?看低代码如何引领未来

随着科技的不断发展&#xff0c;制造行业正面临着巨大的变革和挑战。为了提高生产效率、降低成本并更好地适应快速变化的市场需求&#xff0c;越来越多的制造企业将目光投向了低代码开发平台。在众多低代码开发平台中&#xff0c;JNPF低代码快速开发平台凭借其卓越的性能和灵活…

“三门问题”解决方案:换不换?更换策略与贝叶斯策略?附 Java 验证代码

文章目录 前言一、什么是“三门问题”&#xff1f;二、“三门问题”解决策略详解2.1、错误策略&#xff1a;直觉策略与随机策略2.2、更换策略与事件分析计算2.3、贝叶斯策略及分析流程 三、Java 语言验证“三门问题”总结 前言 “三门问题”作为一道经典逻辑推理题&#xff0c;…

物联网AI MicroPython学习之语法 ustruct 打包和解压原始数据类型

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; ustruct 介绍 ustruct提供打包和解压原始数据类型的功能。 默认情况下&#xff0c;C类型以机器的本机格式和字节顺序表示&#xff0c;并在必要时通过跳过填充字节来正确对齐&#xff08;根据C编译器使用的规…

使用Vite创建Vue3项目 配置路由+路径(包教包会)

使用Vite创建Vue3项目 配置路由路径 一、创建项目&#xff1a;二、配置路由1. vue3vitets路由配置2. vue3vitejs路由配置 三、配置路径 一、创建项目&#xff1a; 创建一个文件夹在文件夹上的 地址栏 或者是 winR 打开cmd命令窗口。 输入命令 npm create vitelatest 这里我们…

飞控硬件介绍及其主要传感器特性解析

飞行控制器是无人机的关键组件之一&#xff0c;它主要由主控单片机、IMU传感器、电源和输出IO等部分构成。这些硬件和传感器的特性对于无人机的二次开发至关重要&#xff0c;其性能和质量直接关系到无人机的稳定性、飞行性能和功能扩展能力。 本文将带领新手开发者深入了解飞行…

更安全的ssh协议与Gui图形化界面使用

目录 前言&#xff1a; 一.Gui图形化界面的使用 二.ssh协议 SSH的主要作用包括&#xff1a; 相比其他网络协议&#xff0c;SSH的优势包括&#xff1a; 三.idea集成Git 前言&#xff1a; 上一篇讲解了git的命令用法以及https协议&#xff0c;但是这个协议放在做团队项目的…

STM32-HAL库09-CAN通讯(loopback模式)

一、所用材料&#xff1a; STM32F103C6T6最小系统板 STM32CUBEMX&#xff08;HAL库软件&#xff09; MDK5 串口调试助手 二、所学内容&#xff1a; 初步学习如何使用STM32的CAN通讯功能&#xff0c;在本章节主要达到板内CAN通讯的效果&#xff0c;即32发送CAN信息再在CAN接收…

初识Linux:目录路径

目录 提示&#xff1a;以下指令均在Xshell 7 中进行 一、基本指令&#xff1a; 二、文件 文件内容文件属性 三、ls 指令拓展 1、 ls -l &#xff1a; 2、ls -la&#xff1a; 3、ls [目录名] &#xff1a; 4、ls -ld [目录名]&#xff1a; 四、Linux中的文件和…

windows下QZipReader和QZipWriter解压缩zip格式文件(只针对纯文件,递归目前暂不处理)

# 运行效果 ui设计文件 采用了网格布局,组件跟随窗口最大化最小化 # .pro项目文件 这段代码是一个项目文件(.pro文件)中的内容,用于配置一个Qt项目的构建和部署规则。它包含了一些指令和设置,用于指定项目中需要编译的源代码文件、头文件、UI表单文件以及项目所依赖的Qt…