ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍

这篇具有很好参考价值的文章主要介绍了ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



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


下篇文章:【ARM Trace32(劳特巴赫) 使用介绍 2 - Veloce 环境中使用trace32 连接 Cortex-M33】

背景

Veloce是一款基于FPGA的高速仿真器,可用于验证芯片设计和软件开发, 它和 Trace32 都可以用于仿真联调。具体使用方法需要根据应用场景和需求进行设置和调试。一般来说,可以在Veloce中加载Trace32调试器,并通过Trace32对仿真过程进行监控和调试。同时,也可以在Trace32中加载Veloce仿真器,并通过Veloce对芯片设计和软件开发进行验证和测试。

1.1 Trace 启动

在芯片开发前期阶段(pre silicon) 也需要使用Trace32 来debug一些问题,这个时候通常是veloce与Trace32 simulation进行联合调试,其中 trace32的使用可以参考下面内容:

  • 需要在veloce中保证cpu已经上电,并开始执行程序之后才可以启动trace32,如下:
    ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍

  • Veloce 执行成功后,保持 cpu running 状态,然后执行命令 busb /veloce//xxx/tm32marm -c t32_xxx_jtag.t32 来启动 trace32, 打开trace32 后其界面如 图-1

    ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍

图-1

  • 在 trace32启动后,把启动的配置写成 cmm 格式的脚本,这样打开 trace32 软件后点击 File --> Run Script 打开你的启动脚本,如下图1-2 所示:

    ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍
图 1 - 2

ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍

图 1 - 3

  • 在配置脚本执行完成后,可以看到此时trace32 还不能使用,这个时候需要先进行 attach 操作,如下图 1-4:
    ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍
图 1 - 4

  • 在attach完成之后可以看到此时已经处于running 状态了, 如图 1-5
    ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍
图 1 - 5

  • 在执行trace32的命令时需要先将cpu stop住,如下图 1-6
    ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍
图 1- 6

1.1.1 Trace32 系统相关设置

可以在cmm脚本中进行系统的一些配置,如下简单列出一些:

  • system.cpu cortex-m7 – 设置CPU型号;
  • system.memaccess nexus – 运行时访问内存;
  • system.cpuaccess enable – 运行时访问cpu;
  • system.reset – 复位目标芯片;
  • system.up – 连接目标芯片(目标芯片会复位重启);
  • system.down – 断开目标芯片;
  • system.attach – 连接已经运行的目标芯片,不复位,常用于死机调试。

1.2 Trace 常用命令

1.2.2 加在bin文件

(1) 加载binary文件命令,把指定文件加载到指定地址,比如我们抓取到的故障现场的快照 ramdump。除了起始地址外,还可以加上一个range参数,作为加载范围。加载时会以binary的大小和range之间选小值作为限制。

data.load.binary DDRCS0_0.BIN 0x80000000

(2) 加载elf文件命令,把指定的elf文件加载到目标设备或者仿真设备的0x1488800000地址上去。elf文件在编译时会把源文件的路径加入到elf文件中,我们后面加上/nocode代表没有对应的sourcecode,trace32就不会去对应目录去查找源文件了。当然我们也可以通过/path来指定sourcecode目录。比如:

data.load.elf ../../vmlinux 0x1488800000 /nocode

(3) 加载elf文件到指定地址,并且指定了和该 elf 对应的 source code目录。

data.load.elf ../../vmlinux 0x1488800000 /path  /home/xie/linux-4.4/

1.2.3 寄存器常用命令

(1)打印 D0 寄存器中的值。

PRINT Register(D0)

(2) 设置寄存器的值。这条的含义是设置 Non-secure bit1

Register.Set NS 1

如 设置CPSR寄存器为0x3C5Register.Set CPSR 0x3C5, r.sregister.set 的缩写。

(3) 查看常用寄存器的值: Register.view

1.2.4 内存(寄存器)数据修改

data.set e:0xFFFC132C 0x0100

per.set e:0xFFFC132C 0x0100  //寄存器实际上也是映射到内存地址的

注意运行时修改需要加 e 参数

1.3 变量相关命令

Trace32 观察变量有多种方式,注意 e 参数 表示允许运行时读取内存:

  • 方法一:
    var.watch %e var1 … varn 观察,e 为 cpu 运行期间允许读取

  • 方法二:
    var.view %e var1 … varn 观察,e 为 cpu 运行期间允许读取

  • 方法三:
    data.dump e:(var1) 观察,e为cpu运行期间允许读取
    此方法不算很友好,因为观察的是内存地址里的数据


下篇文章:【ARM Trace32(劳特巴赫) 使用介绍 2 - Veloce 环境中使用trace32 连接 Cortex-M33】


推荐阅读
https://blog.csdn.net/u010875635/article/details/84875567文章来源地址https://www.toymoban.com/news/detail-513716.html

到了这里,关于ARM Trace32(劳特巴赫) 使用介绍 1 - Veloce 环境中使用 Trace32 介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARM Trace32(劳特巴赫) 使用介绍 2.1 -- TRACE32 Practice 脚本 cmm 脚本学习】

    请阅读 【ARM Coresight SoC-400/SoC-600 专栏导读】 上篇文章【ARM Trace32(劳特巴赫) 使用介绍 2 - Veloce 环境中使用trace32 连接 Cortex-M33】 下篇文章【ARM Trace32(劳特巴赫) 使用介绍 2.2 – TRACE32 进阶命令之 DIAG 弹框命令】

    2024年02月05日
    浏览(35)
  • 【ARM Trace32(劳特巴赫) 使用介绍 15 -- 通过 nRESE从CPU第一条指令开始Debug】

    请阅读 【嵌入式开发学习必备专栏 】 在 TRACE32 系统中, nRESET 是一个非常重要的概念,它直接关联到目标系统(通常是一个微处理器或微控制器)的硬件复位信号。 nRESET 通常表示为负逻辑(即 “n” 前缀通常表示负逻辑,“RESET” 表示复位信号),意味着当信号为低电平时

    2024年04月28日
    浏览(24)
  • 劳特巴赫仿真测试工具Trace32的基本使用(cmm文件)

    使用PRACTICE 脚本(.cmm) 在TRACE32 中使用PRACTICE 脚本(*.cmm)将帮助你: 在调试器启动时立即执行命令 根据您的项目需求自定义TRACE32PowerView用户界面 加载应用程序或符号 使调试操作具有可重复性, 并可用于验证目的和回归测试 自动启动脚本 安装 TRACE32 软件后,脚本 autostart.cmm 将

    2024年02月02日
    浏览(47)
  • Debug工具Trace32的ARM内存访问类型详解

    关于Trace32的访问类型的基本概念可以参考博文: Trace32使用教程-访问类型(Access Class)_SOC罗三炮的博客-CSDN博客 本文将以ARMv8为基础,详解Trace32的内存访问类型。 内存访问类型 描述 A 绝对寻址(物理地址),即绕过MMU E 运行时访问。(可以由 SYStem.CpuAccess 和SYStem.MemAccess命令来

    2024年02月16日
    浏览(31)
  • [飞腾]Trace32使用概述

     视频教程: B站:【教程11】飞腾CPU JTAG Trace32使用概述 https://www.bilibili.com/video/BV1pG411c77F/?vd_source=6b0aeb756259b17f1846941ff75f37c6 根据飞腾demo图trace32的接法图如下图所示(新一些的demo图jtag的接法已经删除了,可以看比较老点儿的demo才会有这部分原理图,这里参考FT-2000_4core_demo_

    2023年04月18日
    浏览(39)
  • 使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境

    make:Windows中没有make,但是可以通过安装MinGW或者MinGW-w64,得到make。 gcc-arm-none-eabi:建议最新版,防止调试报错 OpenOCD vscode cubeMX Arm Assembly:汇编文件解析 C/C++:c语言插件 Cortex-Debug:调试插件 gcc-arm-none-eabibin OpenOCDbin 建议MinGW-make工具重命名为make.exe并添加到gcc-arm-none-eabi

    2024年02月06日
    浏览(39)
  • 【ARM Coresight 系列文章 10.2 - ARM Coresight STM Trace packets】

    上篇文章:ARM Coresight 系列文章 10.1 - ARM Coresight STM 介绍及使用 下篇文章:ARM Coresight 系列文章 10.3 - ARM Coresight STM 寄存器介绍 及STM DMA 传输介绍 STM 产生的trace的是遵守 MIPI System Trace Protocol version 2 (STPv2) 规范的,STM 提供 65536(64K) 个 STMv2 chan

    2024年02月16日
    浏览(28)
  • ubuntu环境下gcc-arm交叉编译环境的搭建(ARM32 8.2)

    1.在arm官网下载gcc-arm 8.2的版本(下载arm32架构的x64上运行的版本),网址如下 https://developer.arm.com/downloads/-/gnu-a 图1 从ARM官方下载aarch32架构的交叉编译器   2.拷贝下载的交叉编译器到ubuntu系统的/opt/pkg/gcc_linaro目录,如下图所示: 图2 拷贝arm交叉编译器到gcc安装目录   3.解压gcc到

    2024年02月09日
    浏览(39)
  • ARM学习笔记_1 介绍,Keil环境搭建

    学习自b站一口linux老师的课程。 学习ARM需要学计算机原理,汇编,C语言,基本电路,硬件控制器原理,以及编写相应驱动程序。 了解系统启动、上电、函数调用等底层实现。 真正地提高函数运行效率。 一些软件的破解…… 设计微处理器架构的公司,包含三类:cortex-A, -R

    2024年02月05日
    浏览(30)
  • 【ARM Coresight 系列文章 22 -- linux frace 与 trace-cmd】

    ftrace 是 Linux 内核中的一个跟踪工具,主要用于帮助开发者分析和调试内核的行为。ftrace 的名字来源于 “ function tracer ”,它最初是用于跟踪内核函数调用的,但现在已经发展成一个功能强大的通用跟踪框架,可以跟踪函数调用、调度事件、中断、定时器、内存映射等各种内

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包