【ARM Trace32(劳特巴赫) 使用介绍 14 -- Go.direct 介绍】


请阅读【Trace32 ARM 专栏导读】


文章目录

    • Trace32 Go.direct
      • Go配合程序断点使用
      • Go 配合读写断点使用
      • Go 快速回到上一层函数
    • System.Mode Go

Trace32 Go.direct

TRACE32调试过程中,会经常对芯片/内核进行控制,比如全速运行、暂停、单步等等。这篇文章先介绍全速运行Go.direct
在这里插入图片描述
Go命令一般用于控制芯片/内核的全速、实时运行,命令不区分大小写,也可以缩写成一个字母g

这边文章以测试函数t32_test 为例进行介绍,其反 C 代码如下:

struct t32_str {uint32_t        t32_val;uint32_t        t32_id;char*           t32_name;
};static volatile struct t32_str str_t32;
static uint32_t volatile g_t32;void t32_test(void)
{uint32_t t32_tmp;hal_printf("%s\n", __func__);t32_tmp = 0xdeadbeef;g_t32 = 0xdeadbeef;str_t32.t32_val = 0x5a5a5a5a;str_t32.t32_id = 0xacce55;str_t32.t32_name = "trace32";hal_printf("t32_tmp:0x%x, g_t32:0x%x, val:0x%x, id:0x%x, name:%s\n",t32_tmp, g_t32, str_t32.t32_val, str_t32.t32_id, str_t32.t32_name);
}

汇编代码如下:

38110 2001823c <t32_test>:
38111 2001823c:       b510            push    {r4, lr}
38112 2001823e:       b082            sub     sp, #8
38113 20018240:       490c            ldr     r1, [pc, #48]   ; (20018274 <t32_test+0x38>)
38114 20018242:       480d            ldr     r0, [pc, #52]   ; (20018278 <t32_test+0x3c>)
38115 20018244:       f7fa fa06       bl      20012654 <hal_printf>
38116 20018248:       480c            ldr     r0, [pc, #48]   ; (2001827c <t32_test+0x40>)
38117 2001824a:       490d            ldr     r1, [pc, #52]   ; (20018280 <t32_test+0x44>)
38118 2001824c:       6001            str     r1, [r0, #0]
38119 2001824e:       f04f 335a       mov.w   r3, #1515870810 ; 0x5a5a5a5a
38120 20018252:       6043            str     r3, [r0, #4]
38121 20018254:       4b0b            ldr     r3, [pc, #44]   ; (20018284 <t32_test+0x48>)
38122 20018256:       6083            str     r3, [r0, #8]
38123 20018258:       4b0b            ldr     r3, [pc, #44]   ; (20018288 <t32_test+0x4c>)
38124 2001825a:       60c3            str     r3, [r0, #12]
38125 2001825c:       6802            ldr     r2, [r0, #0]
38126 2001825e:       6843            ldr     r3, [r0, #4]
38127 20018260:       6884            ldr     r4, [r0, #8]
38128 20018262:       68c0            ldr     r0, [r0, #12]
38129 20018264:       9001            str     r0, [sp, #4]
38130 20018266:       9400            str     r4, [sp, #0]
38131 20018268:       4808            ldr     r0, [pc, #32]   ; (2001828c <t32_test+0x50>)
38132 2001826a:       f7fa f9f3       bl      20012654 <hal_printf>
38133 2001826e:       b002            add     sp, #8
38134 20018270:       bd10            pop     {r4, pc}
38135 20018272:       bf00            nop
38136 20018274:       2001e478        .word   0x2001e478
38137 20018278:       2001a5e8        .word   0x2001a5e8
38138 2001827c:       20021038        .word   0x20021038
38139 20018280:       deadbeef        .word   0xdeadbeef
38140 20018284:       00acce55        .word   0x00acce55
38141 20018288:       2001c8d8        .word   0x2001c8d8
38142 2001828c:       2001c8e0        .word   0x2001c8e0

Go配合程序断点使用

正常我们设置好断点后,都需要点击Go,来使CPU内核跑起来并达到断点处:

Break.set t32_test
Go

在这里插入图片描述

我们也可以把上面两个命令结合起来:

Go t32_test

这样我们可以把程序一直运行到t32_test函数的入口处。

当然,写地址效果是一样的:

Go 0x2001823C

Go 配合读写断点使用

命令 Var.go g_t32 /Write 便可以把程序运行到 g_t32 变量被改写的位置。
在这里插入图片描述

Go 快速回到上一层函数

有时,当程序正好停在某一个函数内,例如下图的 t32_test,我希望快速地执行完当前函数的所有代码,并返回到上一层调用者的位置:
在这里插入图片描述

我们可以使用命令 Go.up , 执行完后,可以看到 PC 指针已经跳出 t32_test
在这里插入图片描述

System.Mode Go

上面介绍的Go命令,不等同于 System.Mode Go ,也就是说不等同于如下窗口的Go按钮
在这里插入图片描述

此处Go按钮的完整作用是:

  • Step1:复位芯片(如果接有复位信号)
  • Step2:TRACE32尝试连上芯片内核并建立调试通信
  • Step3: 控制芯片内核全速运行

推荐阅读
https://blog.csdn.net/weixin_48120109/article/details/126167861

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于hadoop下的spark安装

目录 简介 安装准备 spark安装 配置文件配置 简介 Spark主要⽤于⼤数据的并⾏计算&#xff0c;⽽Hadoop在企业主要⽤于⼤数据的存储&#xff08;⽐如HDFS、Hive和HBase 等&#xff09;&#xff0c;以及资源调度&#xff08;Yarn&#xff09;。但是也有很多公司也在使⽤MR2进…

数据寻址方式

目录 一. 直接寻址二. 间接寻址三. 寄存器寻址四. 寄存器间接寻址五. 隐含寻址六. 立即寻址 \quad 数据寻址, 确定本条指令的地址码指明的真实地址 \quad 假设(下面围绕这个假设展开) \quad 一. 直接寻址 \quad 假设A的位数为16bit 那么寻址范围就是 0 ~ 216-1 \quad 二. 间接…

2023.12.14 hive sql的聚合增强函数 grouping set

目录 1.建库建表 2.需求 3.使用union all来完成需求 4.聚合函数增强 grouping set 5.聚合增强函数cube ,rollup 6.rollup翻滚 7.聚合函数增强 -- grouping判断 1.建库建表 -- 建库 create database if not exists test; use test; -- 建表 create table test.t_cookie(month …

深入浅出讲解半桥栅极驱动器IC FAN7382MX

FAN7382MX是单片高端栅极驱动器IC,可以驱动最高在 600V 下运行的 MOSFET 和 IGBT。安森美的高电压工艺和共模干扰抑制技术提供了高压侧驱动器在高 dv/dt 干扰情况下的稳定运行。先进的电平转换电路可针对 VBS 15V 允许最高 VS -9.8 V&#xff08;典型值&#xff09;的高压侧门…

论文阅读《Domain Generalized Stereo Matching via Hierarchical Visual Transformation》

论文地址&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/html/Chang_Domain_Generalized_Stereo_Matching_via_Hierarchical_Visual_Transformation_CVPR_2023_paper.html 概述 立体匹配模型是近年来的研究热点。但是&#xff0c;现有的方法过分依赖特定数据集上…

Lists.partition是如何实现懒加载的?

前言&#xff1a; 最近看到一篇文章&#xff0c;里面提及了google的common包下Lists.partition方法为懒加载&#xff0c;只有在遍历时才会真正分区。平时使用时并未感觉到,感觉有点好奇。特此将自己寻找的答案的过程整理记录下来。 源码&#xff1a; public static <T>…

用友时空 KSOA 多处SQL注入漏洞复现

0x01 产品简介 用友时空 KSOA 是建立在 SOA 理念指导下研发的新一代产品,是根据流通企业前沿的 IT 需求推出的统一的IT基础架构,它可以让流通企业各个时期建立的 IT 系统之间彼此轻松对话。 0x02 漏洞概述 用友时空 KSOA 系统 PayBill、QueryService、linkadd.jsp等接口处…

“分割“安卓用户,对标iOS,鸿蒙崛起~

近期关于**“华为于明年推出不兼容安卓的鸿蒙版本”**的消息传出&#xff0c;引起了业界的热议关注。自从2019年8月&#xff0c;美国制裁下&#xff0c;华为不再能够获得谷歌安卓操作系统相关付费服务&#xff0c;如此情况下&#xff0c;华为“备胎”鸿蒙操作系统一夜转正。 华…

《数据结构、算法与应用C++语言描述》-最大高度优先左高树-C++实现

左高树 完整可编译运行代码见&#xff1a;Github::Data-Structures-Algorithms-and-Applications/_26maxHblt 定义 (大顶堆和小顶堆)堆结构是一种隐式数据结构(implicit data structure)。用完全二叉树表示的堆在数组中是隐式存储的(即没有明确的指针或其他数据能够用来重塑…

npm安装,idea中启动vue失败

node 设置配置之后&#xff0c;要查询时&#xff0c;会从.npmrc中读取路径 .npmrc自己创建的&#xff08;默认情况下.npmrc会创建在C盘中&#xff09; 我创建的在D:\studay-and-working\node16.14\node_modules\npm中 指定.npmrc文件&#xff0c;因为默认会访问C盘的.npmrc文件…

基于Python数据可视化的网易云音乐歌单分析系统

目录 《Python数据分析初探》项目报告 基于Python数据可视化的网易云音乐歌单分析系统一、项目简介&#xff08;一&#xff09;项目背景&#xff08;二&#xff09;项目过程 二、项目设计流程图&#xff08;一&#xff09;基于Python数据可视化的网易云音乐歌单分析系统的整体…

javaWebssh汽车销售管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh汽车销售管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

《大模型合规白皮书2023》:为了解大模型立法最新动态和立法趋势提供有价值的参考

本白皮书在我国人工智能法律监管框架下进一步梳理了大模型相关方的合规义务及要点&#xff0c;并展望未来大模型法律监管体系的发展趋势与特征&#xff0c;对政府、企业、社会共建大模型治理体系提出切实建议&#xff0c;从而为社会各界了解大模型立法最新动态和立法趋势提供有…

畅行“一带一路”显担当!苏州金龙获“车轮上的中国”两项大奖

近日, 由中国汽车报社主办的2023商用车产业合作发展大会在北京圆满落幕。作为大会重要组成部分&#xff0c;“2023车轮上的中国——行天下 书担当”年度盛典评选一批为共建“一带一路”作出重大贡献的商用车企业&#xff0c;苏州金龙KLQ6127旅行家、KLQ6106蔚蓝两款车型分别获得…

springboot3.0更新后,idea创建springboot2.x项目

springboot3.0更新后&#xff0c;idea创建springboot2.x项目 点击以下红色框中的按钮 出现了如下图所示&#xff1a; 到这里我们发现没有jdk8的版本&#xff0c;不要慌&#xff0c;我们可以先在这里选择21&#xff0c;然后进入到真正的项目中手动去修改这个jdk的版本&#xff0…

普冉(PUYA)单片机开发笔记(7): ADC-轮询式多路采样

概述 应用中经常会有使用单片机进行模数转换的需求。PY32F003 具有 1 个 12 位的模拟数字转换器&#xff08;ADC&#xff09;&#xff0c;今天我们一起来使用一下这个 ADC。 数据手册中对 ADC 简介如下。 SAR ADC&#xff1a;逐次逼近式 ADC&#xff0c;原理参见“参考链接&a…

【Hive】——DDL(CREATE TABLE)

1 CREATE TABLE 建表语法 2 Hive 数据类型 2.1 原生数据类型 2.2 复杂数据类型 2.3 Hive 隐式转换 2.4 Hive 显式转换 2.5 注意 3 SerDe机制 3.1 读写文件机制 3.2 SerDe相关语法 3.2.1 指定序列化类&#xff08;ROW FORMAT SERDE ‘’&#xff09; 3.2.2 指定分隔符&#xff0…

Python数据科学视频讲解:数据清洗、特征工程和数据可视化的注意事项

1.6 数据清洗、特征工程和数据可视化的注意事项 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解1.6节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学应用的全流程…

ubuntu20.04安装完没有连接wifi的选项,ubuntu网卡驱动

目录 一.前言 二.关闭安全模式 三.安装网卡驱动 参考 一.前言 ubuntu20.04安装完没法连wifi&#xff0c;可能有如下两种原因,因为这两种原因都排除了后成功获得联网功能&#xff0c;所以安安也不清楚具体是那个原因:1.启动了安全模式。2.没有安装网卡驱动 二.关闭安全模式…

Debian 系统镜像下载

最近在看一些网络相关的文章需要用到 debian 11.x 的系统网上找了好多都发下载&#xff0c;在官网看一下 有个 11.8 的版本我无法下载&#xff0c;提示被最新的 debian-12.4.0 所代替&#xff0c;于是找到了这个链接 Index of /cdimage/unofficial/non-free/cd-including-fi…