Trace32使用Data.Test和Data.TestList命令测试内存类型以及完整性

news/2025/2/28 7:31:57/

我们在debug的时候,可以使用Trace32自带的一些命令快速地检测目标系统的内存的类型和完整性(是否可读或可写),以便快速排除内存缺陷带来的干扰。

目录

Data.Test: 内存完整性测试 Memory integrity test

Data.TestList :检测内存属性


Data.Test: 内存完整性测试 Memory integrity test

Format:
        Data.Test <address_range> [ / <option> ]
<option> :
  • Toggle
  • Prime
  • RANDOM | PRANDOM
  • AddrBus
  • Repeat [<count>]
  • WriteOnly | ReadOnly
  • NoBreak
  • Byte | Word | Long | Quad | TByte | PByte | HByte | SByte

使用Data.Test指令需要给它指定一个地址范围:  <address_range>,在检测完成后,会将检测结果 fail 或者pass打印出来。并且可以通过使用不同的option,来达到不同的检测效果:

  • 内存的读写访问
  • 地址线故障检测
  •  地址别名(Aliases addresses)(将超出内存容量的地址映射到低地址)错误检测

Data.Test 命令可以随时通过 点击工具栏中的 STOP 按钮来终止,该指令只用来做完整性检测,并不意味着可以检测目标系统已经实现了哪些内存。

Data.Test指令常用的命令行选项:

  • Toggle (默认):比特反转,内存中数据一次读取一小块,然后比特反转两次,这样既检测了读写,有没有改变原始内存中的数据。但是地址别名问题不能通过该方式检测出。
  • Prime:素数, 指定的地址范围将会被一个测试模板完全填充,随即被验证。需要注意的是,测试模板的长度是素数,而不是数据本身。该范围内的原始数据将会丢失,这种测试方法可以检测地址线故障address line failures,或者内存中存在的镜像分区。同时可以结合WriteOnly 和 ReadOnly选项使用。
  • RANDOM:随机,该模板是一个随机序列。
  • PRANDOM:伪随机,伪随机序列,同时可以结合 WriteOnly 和  ReadOnly选项使用。
  • Repeat :设置重复次数,如果没有传入数字作为重复次数,该测试将会一直进行直到手动停止。
    其他的option:

    测试模板的长度为素数:

    Data.Test 0x0--0x0ffff /Prime
    内存测试一直持续,直至手动点击停止按钮:
Data.Test 0x0--0x0ffff /Repeat
内存测试重复三次:
Data.Test 0x0--0x0ffff /Prime /Repeat 3.
Data.Test 命令的测试结果会影响以下两个函数:
  • FOUND()
    • 如果测试过程中发现了内存错误,将会返回 TRUE 
  • TRACK.ADDRESS()
    • 返回首次出现错误的地址。
Data.Test 0x0++0xffff /Prime
IF Found() PRINT "Error found at address " TRACK.ADDRESS()

Data.TestList :检测内存属性

Format:
Data.TestList [ <address_range> ] [ / <option> …]
<option> :
64K | 1M
Data.TestList 指令是一个无损的内存测试指令,用于检测目标系统中给定地址范围的内存类型。默认情况下,最小的检测颗粒度为4K。可以通过option,来指定 64K 或 1M,这样地址范围address_range 将会被分成对应大小的小块,并且每次只测试每个小块的前16K内存。
下图是Data.TestList测试结果示例图:

 其中:

ok                 RAM

read only     ROM/FLASH

read fail       no memory

write fail      no memory

需要注意的是, 如果是访问外设的内存,Data.TestList指令有可能会造成 debug port fail。


http://www.ppmy.cn/news/86322.html

相关文章

内网渗透(八十三)之安装ADCS证书服务

安装ADCS证书服务 本编文章,我们来讲解安装ADCS证书服务,这里注意一下,因为证书服务特性(不能更改计算机名称、网络参数),因此在部署证书服务器时建议独立部署,ADCS证书服务不能和域控是同一台服务器,这里我用的一台加入域的Server2016搭建 1、以 Enterprise Admins …

如何在华为OD机试中获得满分?Java实现【优秀学员统计】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

App 软件开发《单选1》试卷

注&#xff1a;本文章所有答案及解析均来自 ChatGPT 的回答&#xff0c;正确性请自行甄辨。 《单选1》试卷 单选题&#xff08;共计0分&#xff09; 1&#xff0e;angular ui-router中的关键词不包括&#xff08;B&#xff09; A、状态&#xff08;state&#xff09;B、HTML…

【swing】SplitPanel

当使用Java的Swing库来实现一个左右风格的SplitPanel时&#xff0c;可以使用JSplitPane作为容器&#xff0c;并在左边的面板中放置三个按钮&#xff0c;以及在右边的面板中显示图片。以下是一个示例代码&#xff1a; import javax.swing.*; import java.awt.*; import java.aw…

Altium Designer18基础

原理图 第5课 元件库介绍及电阻容模型的创建.mp4_哔哩哔哩_bilibili 原理图库&#xff08;schLib&#xff09; 1. 创建原理图库&#xff1a; panels -> SCHLIB&#xff1a;左侧弹出SCH Lib窗口 Add&#xff1a;新建原理图库 点击原理图库名称&#xff1a;进入原理图库设置…

ubuntu server 18.04 安装zmq

安装依赖 sudo apt-get install libtool pkg-config build-essential autoconf automake 编译安装ZMQ使用的加密库 sudo wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz sudo tar -zxvf LATEST.tar.gz cd libsodium-stable ./configure make make c…

C++ 11 lock_guard 和 unique_lock

文章目录 前言一、简介1.1 lock_guard1.2 RAII1.3 原理 二、unique_lock2.1 简介2.2 使用2.3 原理 三、 lock_guard 和 unique_lock比较3.1 锁的管理方式3.2 灵活性3.3 可移动性 总结 前言 最近在写C程序&#xff0c;需要用到 lock_guard &#xff0c;并记录 C11新特性 lock_g…

极米科技发布新一代光源技术,投影行业要变天?

作者&#xff1a;坚白 2018年以来&#xff0c;在年轻人群的追捧下&#xff0c;此前主要应用于商用场景的投影仪&#xff0c;逐渐切换到家用场景&#xff0c;而且随着投影技术的持续改进&#xff0c;投影效果也不断提升&#xff0c;家用投影市场进入高速发展期。 但进入2022年…