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

news2024/12/24 21:09:09

我们在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.coloradmin.cn/o/570297.html

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

相关文章

Android进阶 View事件体系(二):从源码解析View的事件分发

Android进阶 View事件体系&#xff08;二&#xff09;&#xff1a;从源码解析View的事件分发 内容概要 本篇文章为总结View事件体系的第二篇文章&#xff0c;前一篇文章的在这里&#xff1a;Android进阶 View事件体系&#xff08;一&#xff09;&#xff1a;概要介绍和实现Vie…

chatgpt赋能python:Python动态增加成员变量简介

Python动态增加成员变量简介 Python是著名的解释型编程语言&#xff0c;在众多开源项目中得到了广泛的应用。它以简洁明了的语法和高效的运行速度而闻名&#xff0c;成为了许多开发者的首选。 Python提供了极大的灵活性&#xff0c;使得我们可以随意添加、修改和删除对象的属…

chatgpt赋能python:Python切割技巧:如何用Python切割字符串和列表

Python切割技巧&#xff1a;如何用Python切割字符串和列表 Python是一种高级编程语言&#xff0c;被广泛用于数据分析、机器学习、Web应用程序等领域。在Python编程中&#xff0c;切割技巧是一项必备技能。 什么是切割技巧&#xff1f; 切割技巧是指用一种编程语言&#xff…

chatgpt赋能python:Python列表倒序-从入门到实践

Python列表倒序 - 从入门到实践 Python是一种高级编程语言&#xff0c;被广泛运用于web开发、科学计算、数据分析等领域&#xff0c;也是初学者学习的首选语言之一。Python的列表(List)是其中一个常用的数据类型。在本文中&#xff0c;我们将深入探讨Python列表倒序的方法&…

chatgpt赋能python:Python列表反向:如何用简单的代码将列表元素反转

Python列表反向&#xff1a;如何用简单的代码将列表元素反转 在很多编程语言中&#xff0c;将列表元素反转是一项常见的任务。Python也不例外。Python内置函数提供了一种非常直接的方式来将列表元素反转&#xff0c;而不需要费力地创建一个新列表。 什么是列表反向&#xff1…

chatgpt赋能python:Python动态代码的SEO优化技巧

Python 动态代码的SEO优化技巧 Python是一种常用的编程语言&#xff0c;它以简化开发流程和易于阅读的代码著称。Python动态代码能够让开发者更快捷方便地进行编码&#xff0c;并且能够改善SEO表现。在本文中&#xff0c;我们将着重介绍Python动态代码与SEO优化涉及的技巧。 …

chatgpt赋能python:Python分组匹配:了解正则表达式中的分组匹配技巧

Python 分组匹配: 了解正则表达式中的分组匹配技巧 在 Python 中&#xff0c;正则表达式是一种重要的文本处理工具&#xff0c;它可以帮助我们在字符串中匹配、查找和替换特定的文本模式。其中&#xff0c;分组匹配是正则表达式的重要特性之一&#xff0c;它可以将匹配的结果按…

快速理解会话跟踪技术Cookie和Session

文章目录 会话跟踪技术客户端会话跟踪技术Cookie服务端会话跟踪技术Session 会话跟踪技术 会话&#xff1a;客服端和服务端的多次请求与响应称为会话。 会话跟踪&#xff1a;服务器需要识别多次请求是否来自同一浏览器&#xff0c;在同一次会话多次请求中共享数据。 HTTP协议是…

chatgpt赋能python:Python加解密算法简介

Python加解密算法简介 在当今数字化的时代&#xff0c;数据的安全性变得至关重要。而加密算法就成为了保障数据安全的重要手段之一。Python作为一门高级编程语言&#xff0c;提供了许多加密算法库&#xff0c;使得开发人员可以轻松地实现加密功能。本文将着重介绍Python中一些…

机器学习模型——回归模型

文章目录 监督学习——回归模型线性回归模型最小二乘法求解线性回归代码实现引入依赖&#xff1a;导入数据&#xff1a;定义损失函数&#xff1a;定义核心算法拟合函数&#xff1a;测试&#xff1a;画出拟合曲线&#xff1a; 多元线性回归梯度下降求线性回归梯度下降和最小二乘…

chatgpt赋能python:Python中%取模操作的介绍

Python中%取模操作的介绍 在Python中&#xff0c;取模操作使用符号“%”表示&#xff0c;它的作用是取两个数相除的余数。例如&#xff0c;10 % 3等于1&#xff0c;因为10除以3的余数为1。这个操作可以用在很多场合&#xff0c;比如判断一个数是奇数还是偶数&#xff0c;或者判…

带你开发一个远程控制项目---->STM32+标准库+阿里云平台+传感器模块+远程显示。

目录 本次实验项目&#xff1a; 下次实验项目&#xff1a; 本次项目视频结果/APP/实物展示 实物展示 APP展示 视频展示 模块选择说明; 温湿度传感器模块介绍 光照传感器介绍 ESP8266-01S模块介绍 本次实验项目&#xff1a; 项目清单平台单片机语言实现温湿度传感器模…

Reinforcement Learning | 强化学习十种应用场景及新手学习入门教程

文章目录 1.在自动驾驶汽车中的应用2.强化学习的行业自动化3.强化学习在贸易和金融中的应用4.NLP&#xff08;自然语言处理&#xff09;中的强化学习5.强化学习在医疗保健中的应用6.强化学习在工程中的应用7.新闻推荐中的强化学习8.游戏中的强化学习9.实时出价——强化学习在营…

Redis中的Reactor模型源码探索

文章目录 摘要了解Linux的epoll了解Reactor模型 源码initServerinitListenersaeMain 事件管理器aeProcessEvents读事件 摘要 有时候在面试的时候会被问到Redis为什么那么快&#xff1f;有一点就是客户端请求和应答是基于I/O多路复用&#xff08;比如linux的epoll&#xff09;的…

【高级语言程序设计(一)】第 9 章:编译预处理命令

目录 前言 一、宏定义命令 &#xff08;1&#xff09;无参宏定义 &#xff08;2&#xff09;有参宏定义 ① 带参数的宏定义 ② 带参宏定义与函数的区别 二、文件包含命 &#xff08;1&#xff09;文件包含命令的定义 &#xff08;2&#xff09;文件包含命令的格式 &…

【Leetcode60天带刷】day02—— 977.有序数组的平方、209.长度最小的子数组、 59.螺旋矩阵II

题目&#xff1a;997.有序数组的平方 Leetcode原题链接&#xff1a;997.有序数组的平方——力扣 思考历程与知识点&#xff1a; 题目的意思很简单&#xff0c;就是把每个数的平方&#xff0c;按从小到大的顺序排个序&#xff0c;再输出出来。 第一想法是先每个数平方一遍&a…

Stream API的使用

使用Stream API对集合中的数据进行操作&#xff0c;就类似使用SQL语句对数据库执行查询 Stream不会存储数据Stream不会改变源对象&#xff0c;而是返回一个持有结果的新StreamStream是延迟执行的&#xff0c;只有在需要结果的时候才执行&#xff0c;即只有执行终止操作&#xf…

离散数学_十章-图 ( 2 ):图的术语和几种特殊的图

&#x1f4f7;10.2 图的术语和几种特殊的图 1. 基本术语1.1 邻接&#xff08;相邻&#xff09;1.2 邻居1.3 顶点的度1.4 孤立点1.5 悬挂点例题 2. 握手定理3. 握手定理的推论4. 带有有向边的图的术语4.1 邻接4.2 度——出度 和 入度4.3 例题&#xff1a; 5. 定理&#xff1a;入…

PHP 反序列化漏洞

PHP反序列化漏洞在实际测试中出现的频率并不高&#xff0c;主要常出现在CTF中。 PHP序列化概述 PHP序列化函数&#xff1a; serialize&#xff1a;将PHP的数据&#xff0c;数组&#xff0c;对象等序列化为字符串unserialize&#xff1a;将序列化后的字符串反序列化为数据&…

chatgpt赋能python:Python单词库的重要性

Python单词库的重要性 Python是一种高级编程语言&#xff0c;被广泛用于应用程序开发、网络编程、数据科学和人工智能开发等领域。而在Python编程中&#xff0c;单词库(或词典)的重要性不言而喻。单词库就是存放Python程序中经常使用的关键字、方法名、函数名等词汇的地方。本…