对于大部分MCU来说,官方IDE一般都带有调试功能,配合JTAG接口使用即可,也支持变量查看、断点等功能。绝大多数工业开发的中小型程序,使用自带调试器即可,价格便宜,几十到几千不等。

在某些特殊领域(例如汽车行业)或者超大型项目中,对调试的要求就更高了,例如捕捉某些偶发性的问题、死机调试、代码分析、函数运行时间测试等。这时,就需要一个强大的调试工具了,而劳特巴赫就是一个专门为各个不同厂商的芯片提供中高端调试器的专家。劳特巴赫的调试器非常好用,但是高达数十万的模块组合让一般小公司及个人也望而却步。

本文介绍普通的Trace32 PowerView for PowerPC调试软件的常用功能(函数执行时间之类的高级功能需要增加模块来支持Trace功能,此处不支持)。

常用功能介绍(PowerView所有IDE的操作都可以用命令进行,IDE没有的命令也可以进行):

一、CPU设置

所有操作第一步,必须要设置CPU,参考如下设置即可,一定要将MemAccess设置为NEXUS(方便实时观察变量),CpuAccess设置为Enable。

使用指令亦可,例如

system.cpu mpc5744p    --    设置CPU型号

system.memaccess nexus    --    运行时访问内存

system.cpuaccess enable    --   运行时访问cpu

system.reset    --    复位目标芯片

system.up    --    连接目标芯片(目标芯片会复位重启)

system.down    --    断开目标芯片

system.attach    --    连接已经运行的目标芯片,不复位,常用于死机调试

二、Flash烧写

下载elf程序文件到CPU。

同一个程序若未修改,则无需多次下载;若是有修改,必须重新下载到flash中,虽然data.load也可以下载,但是它下载到调试器和目标CPU的ram中,下载完目标CPU会复位,实际执行的还是前一次的程序,所以需要重新下载到flash中。

三、符号加载及源文件关联

要想调试,需要将elf文件和源码加载到调试器中(需要先使用system.up连接到目标芯片),命令和data.load xxxx.elf /path xxxx,/path后面为源码路径,示例如下:

Data.LOAD.Elf D:\MPC5744\Examples\CAN_Test\Debug\CAN_Test.elf /path D:\MPC5744\Examples\CAN_Test

注意,死机调试的时候,也需要加载符号及源文件,但这时不能连接死机芯片加载,否则会导致死机芯片复位,需要先连接一个其它同型号芯片,然后连接加载,下载符号后,再重新连接这个芯片,使用system.attach连接。

四、运行、中断

确保先连接了目标芯片,并且加载了符号文件elf。

go    --    运行

break    --    停止

break.set 0x01002FD0    --    设置断点在0x01002FD0处,可以在后面加参数,/onchip表示硬件断点,/soft表示软件

break.delete 0x01002FD0     --    删除断点

至于插入断点之类的,也可以直接在IDE中进行。

五、观察变量

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

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

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

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

六、实时修改变量值

有时候运行时,某个值条件太苛刻或者太久,我们可以再CPU运行时直接修改变量值,以便于直接触发边界值。

例如:var.set %e var1 = 800,参数e表示运行时可直接修改。

七、查看源码

list e:main,参数e表示运行时可查看。

八、修改内存数据(寄存器值)

data.set e:0xFFFC132C 0x0100

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

例如我们要让PC12的LED亮灭,则设置data.set e:0xFFFC132C 0x00(注意运行时修改需要加e参数)

九、保存存储器数据到文件

保存当前存储器中数据到文件,方便比较。

data.SAVE.Binary C:\Users\SB\Desktop\log.bin 0x01000000++10   保存从0x01000000开始的10个地址的数据到二进制文件中

data.SAVE.IntelHex  C:\Users\SB\Desktop\log.hex 0x01000000++10   保存从0x01000000开始的10个地址的数据到hex文件中

未完待续。。。。

【MPC5744P】劳特巴赫调试器Trace32的使用方法相关推荐

  1. 劳特巴赫trace32安装和使用

    目录 劳特巴赫trace32安装 劳特巴赫使用 trace32调试 劳特巴赫trace32安装 安装说明:安装时需要连接上劳特巴赫调试器 默认步骤 劳特巴赫使用 打开你使用的内核调试器USB 1. S ...

  2. 劳特巴赫仿真测试工具Trace32的基本使用(cmm文件)

    劳特巴赫 Trace32 调试使用教程 使用PRACTICE 脚本(.cmm) 在TRACE32 中使用PRACTICE 脚本(*.cmm)将帮助你: 在调试器启动时立即执行命令 根据您的项目需求自定 ...

  3. 劳特巴赫trace32使用介绍(一)

    劳特巴赫trace32使用介绍(一)–debug功能 安装trace32 使用带有光驱的电脑把光盘中的安装文件拷贝到u盘,然后就可以使用u盘安装了.打开文件夹,双击安装文件,一路next就可以安装成功 ...

  4. 劳特巴赫trace32使用介绍(二)

    劳特巴赫trace32使用介绍(二)-- trace功能 上篇介绍的是debug功能,这里再介绍一下trace的功能. 劳特巴赫工具分类 劳特巴赫工具分三类: debug工具.如下图所示: trace ...

  5. 跨平台PHP调试器设计及使用方法——界面设计和实现

    一个优秀的交互设计往往会影响一个产品的命运.在设计这款调试器时,我一直在构思这款调试器该长什么样子.简单.好用是我设计的原则,于是在<跨平台PHP调试器设计及使用方法--立项>一文中,我给 ...

  6. 跨平台PHP调试器设计及使用方法——高阶封装

    在<跨平台PHP调试器设计及使用方法--协议解析>一文中介绍了如何将pydbgp返回的数据转换成我们需要的数据.我们使用该问中的接口已经可以构建一个简单的调试器.但是由于pydbgp存在的 ...

  7. 跨平台PHP调试器设计及使用方法——协议解析

    在<跨平台PHP调试器设计及使用方法--探索和设计>一文中,我介绍了将使用pydbgp作为和Xdebug的通信库,并让pydbgp以(孙)子进程的方式存在.<跨平台PHP调试器设计及 ...

  8. 跨平台PHP调试器设计及使用方法——通信

    首先引用<跨平台PHP调试器设计及使用方法--探索和设计>中的结构图(转载请指明出于breaksoftware的csdn博客) 本文要介绍的是我们逻辑和pydbgp通信的实现(图中红框内内 ...

  9. 跨平台PHP调试器设计及使用方法——探索和设计

    在<跨平台PHP调试器设计及使用方法--立项>一文中,我确定了使用xdebug作为调试器插件部分的基础组件.xdebug提供了一个远程调试的功能(相关资料可以详见https://xdebu ...

最新文章

  1. 【算法数据结构Java实现】Java实现单链表
  2. 谁来搬走冷链物流头上的三座大山
  3. addrinfo 结构
  4. Team Foundation Server 2010 安装、部署与配置(二):安装之前的预备工作 .
  5. R40使用GPIO中断实现按键功能【原创】
  6. “技术需求”与“技术成果”项目之间关联度计算模型 复赛top1解决方案
  7. apache ii评分和死亡率_危重病人APACHE II评分表
  8. 车载前视摄像头学习笔记 ———— 摄像头输出数据格式(RGB)
  9. 步进电机开环控制的要点
  10. 使用VS+VisualGDB编译Linux版本RCF
  11. 推荐几个2020年最实用的网站!
  12. Android面试题收集(有具体答案)
  13. unity 2d 动画
  14. SiamFC:Fully-Convolutional Siamese Networks for Object Tracking
  15. html 的函数写法,react中函数的不同写法的区别是什么?
  16. 看起来比较舒服的背景颜色值
  17. 5大优秀黑客必逛技术网站
  18. 各厂家rtsp地址格式如下:
  19. qt unable to creat a debugging问题
  20. Postgresql源码(82)SPI模块拆解分析一:执行简单SQL获取结果

热门文章

  1. SpringMVC全局乱码过滤器、注解@RequestParam、自定义类型转换器
  2. Ubuntu 16.04 LTS将移除私有的AMD催化剂驱动
  3. vb treeview 展开子节点_电路的一般分析法(01)—节点电压法及其算例
  4. 宽带离网用户分析(5) Lasso和Group Lasso
  5. 《网络是怎么连接的》
  6. 天地图JSAPI4.0切换地图事件
  7. HPE收购很忙,不如一起来聊聊Nimble Storage
  8. 开普勒三大定律和万有引力定律随笔
  9. 一图缕清 mysql 事务锁
  10. linux下常用命令wget进行整站下载