TRACE32系列仿真器介绍 深圳旋极公司 www.watertek.com 皮永辉
产品概况 One System Fits All 德国Lauterbach公司出品 全能型开发工具 产品有3个系列: TRACE32-ICE(In Circuit Emulator) TRACE32-ICD(In Circuit Debugger) TRACE32-FIRE(Fully Integrated RISC Emulator) 网址:WWW.LAUTERBACH.COM
TRACE32为何与众不同 一、All in One,模块化。丰与俭,巧规划。 模块化结构。可按用户要求裁剪,配置 多种仪器的综合体: 通用仿真器 逻辑/状态/时序分析仪 通用计数器/定时器 模式/脉冲信号源 模拟调试器 软件测试 FLASH编程
TRACE32为何与众不同 二、CPU,一网收。调新品,只换头。 TRACE32支持600种以上的微处理器。以下是部分常见品牌: AMD ARM Dallas Hitachi IBM Intel Mitsubishi Motorola National NEC Oki Philips SGS-Thomson Siemens Toshiba Zilog Infineon ... 通用性,更换仿真模块就可调试不同的芯片
TRACE32为何与众不同 三、编译器,款款宜。各平台,没问题。 TRACE32支持60种以上的编译器,主要有: ARM Borland Tasking CAD-UL Diab-SDS Greenhills Hitech Hiware HP IAR Intel Keil Microsoft Motorola... TRACE32支持6种编程语言: ASM, C, C++,PASCAL,PL/M, ADA或MODULA2 TRACE32支持15种不同的主机操平台,主要有: Windsows3.1/95/98/NT HP-UX Solaris...
TRACE32为何与众不同 四、RTOS,可调试。多任务,全透视。 TRACE32支持的嵌入式操作系统超过20种,主要有 Nucleus OSE Rubus CMX RTXC pSOS VxWORKS... TRACE32支持RTOS调试: RTOS专用菜单 Kernel资源显示 Task状态显示、统计评估 任务级调试 ...
TRACE32为何与众不同 五、FLASH,可擦写。全序列,任选择。 TRACE32支持FLASH在线编程,FLASH(厂家)主要有: AMD ATMEL FUJISTU INTEL MACRONIX MICRON MITSUBISHI MOTOROLA SHARP SST ST TI TOSHIBA… 既支持片外FLASH,也支持片内FLASH 支持8bit、16bit、32bit总线宽度
TRACE32为何与众不同 六、测软件,辨好坏。查性能,算覆盖。 TRACE32具有独特的嵌入式软件测试功能: 程序追踪(Trace) 程序流程 选择追踪... 函数性能测试(Performance) 运行时间 函数嵌套... 代码覆盖分析(Coverage) 代码覆盖率 变量检查(读/写) 堆栈深度分析...
TRACE32为何与众不同 七、个性化,易使用。菜单键,自己弄。 个性化的可编程菜单和功能键,用户可以根据自己的需要增加或删除某些下拉菜单和工具按键
TRACE32为何与众不同 八、基本功,样样精。搞开发,轻轻松。 Memory 测试 硬件断点功能,TRACE32可以在FLASH或EPROM 中直接调试 支持多CPU调试 丰富的断点类型 支持MMU、 FPU调试 上下文追踪系统CTS(Context Tracing System) 条件执行功能(STEP、GO) ...
TRACE32——开放的体系结构 硬件设计模快化 Easy adaptation to new derivatives 开放的调试接口 Easy integration with Compilers, RTOS, CASE tools 开放的主机接口 Easy portable to other Host platforms
Trace32-ICE的结构 Host Connection To Target
TRACE32-ICE
TRACE32-ICE的基本模块 仿真头Emulation Probe 仿真基本模块Emulation Base 逻辑分析仪State Analyzer 扩展存储模块 Emulation RAM up to16M 仿真控制模块Emulation Controller 系统控制模块System Controller
TRACE32-ICE配置方案举例 例1:简洁型,针对8位单片机 ICExxx ECC8 SCU32
TRACE32-ICE配置方案举例 例2:简洁型,针对32位单片机 ICExxx ECC32 SCU32
TRACE32-ICE配置方案举例 例3:针对32位机仿真器,带扩展仿真存储器 ICExxx SRAM ECC32 SCU32
TRACE32-ICE配置方案举例 例4:32位仿真器,带扩展仿真存储器和逻辑分析仪 ICExxx SRAM HA120 ECU32 SCU32
TRACE32 -- ICE 仿真头 Another sample Y2K test case
TRACE32 -ICD TRACE32-ICD是基于集成在片内的调试和跟踪逻辑 (BDM、JTAG、ETM、OCDS、NEXUS)的在线调试 器(In-Circuit Debugger)
常见的调试接口 BDM:背景调试模式 Background Debug Mode 主要由Motorola使用,用于调试 有6Pin和10Pin两种形式 JTAG:边界扫描 边界扫描来源于IEEE Std 1149.1,是由联合测试行动小组(Joint Test Action Group)制定的一种测试逻辑,所以又称JTAG标准。 基本功能(必须实现)是边界扫描测试 调试功能(可选)
常见的调试接口 OCDS On Chip Debug Support 由Infineon公司定义 有16Pin和40Pin两种形式 NEXUS NEXUS来自IEEE-ISTO 5001标准 用于嵌入式微处理器调试 标准接口为5Pin 可以加入用户定义的引脚 调试功能共有4级
TRACE32-ICD 基本结构 典型构成: 1、Controller 2、Debugger 3、Debug Port
TRACE32-ICD的基本模块 控制/接口模块 - PODPRT(并口) 调试模块 - DEBUG - ETH(网口) 调试模块 - DEBUG - PowerDEBUG - PowerDEBUG USB Trace模块 - PowerNEXU、 - ICR (RISC Trace) - PowerTrace ROM 调试器(ESI) 激励产生器(STG) 强力探测器(PowerProbe)
TRACE32-ICD 的扩展
ICD配置方案 例 1: ROM仿真器(并口,8/16位) 1:PRT Cable 2:Podbus Parallel Interface 3: EPROM Simulator Module and ROM Monitor
ICD配置方案 例 2: ROM仿真器(网口,32位) Ethernet Interface EPROM Simulator Module and ROM Monitor EPROM Simulator Module
ICD配置方案 例 3: BDM/JTAG调试器,带ROM仿真器(网口) Hub Ethernet Interface BDM/JTAG Debugger EPROM Simulator Module
ICD配置方案 例 4: BDM/JTAG调试器,带ROM仿真器(USB口) BDM/JTAG Debugger with USB Interface EPROM Simulator Module
ICD配置方案 例 5: BDM/JTAG调试器,带Trace模块(并口) PRT Cable Podbus Parallel Interface BDM/JTAG Debugger RISC Trace Module
ICD配置方案 例 6: BDM/JTAG调试器,带触发探头(并口) Printer Cable Parallel Interface BDM/JTAGDebugger Trigger Probe
TRACE32-FIRE for RISC
TRACE32-RIRE
Trace32的使用 安装
Trace32的使用 调试界面 下拉菜单:大多数常用功能都能在菜单中找到 常用按钮:常用调试和显示命令 命令行:所有的功能都可以通过命令的形式来实现 命令提示软键:当你要输入某种命令时,它会及时给出命令和子命令关键字,非常方便 滚动信息条:命令执行过程中的错误信息提示 状态指示:给出光标的地址信息/名称,以及CPU的运行状态等 各种显示窗口
Trace32的使用 TRACE32命令集 TRACE32使用同一个命令集 命令格式: B::WinPrint.Data.Dump 0x1000 /byte option parameter sub-command command pre-command device name 所有命令都支持简略形式
Trace32的使用 Support for a wide range of on-chip debug interfaces Easy high-level and assembler debugging Interface to all compilers Fast download RTOS awareness Interface to all hosts Display of internal and external peripherals at a logical level Flash programming Hardware breakpoints and trigger (if supported by the on-chip debug interface) Trace extension available Multiprocessor/multicore debugging Software trace Virtual analyzer USB, Ethernet or Parallel Interface
Trace32的使用 简单调试命令 Step.single Step.over Go.next Go.return Go.up Go.NoBreak
Trace32的使用 复合调试命令 这类命令允许单步或全速运行程序,直到满足某条件时停止 Step.Change R(D1) Var.Step.Change <hll-expression> Go. Change Data.Byte(D:2777) Var. Go.Change <hll-expression> Step.Till R(D2)==0A Var.Step.Till I>9 Go.Till R(D2)==0A Var. Go.Till I>9 Var. Break.Pass Flag(6)==Flag(9) Var.Break.Pass <hll-expression>
Trace32的使用 E D C B A W R S H P 断点:TRACE32提供10种不同的断点类型 Program 断点 HLL断点 Spot断点 Read断点 Write断点 Alpha断点 Beta断点 Charly断点 Delta断点 Echo断点
Trace32的使用 断点:不同的断点有不同的用处 P、H:同步,最常规的程序断点 R、W:异步,对变量读、写时中断 A、B、C:异步,对变量读/写时中断,主要用于逻辑分析仪的触发条件(地址选择) S:程序区为同步,数据区为异步。主要用于“视点”刷新,即当程序到达S断点的一瞬间刷新所有显示窗口(约需100-500微秒)
Trace32的使用 设置断点 Break >Set >编辑窗口 选中源程序/变量等,点击鼠标右键
Trace32的使用 与断点有关的命令: Break.Set (Sets permanent breakpoint on assembler level) Var.Break.Set (Sets permanent breakpoint on HLL level) Break (Sets temporary breakpoint on assembler level) Var.Break (Sets temporary breakpoints HLL level) Break.List Break.Delete Var.Break.Delete
Trace32的使用 数据或程序存储区调试(Data命令) Data.dump [< address>|<range>] [/<format>|<option> ...] Data.Set [< address>|<range>] %<format> /<option> Data.View %<format> [< address>|<range>] [/<option>] Data.List [< address>] [/<option>] Data.ListAsm [< address>] [/<option>] Data.ListHll [< address>] [/<option>] Data.ListMix [< address>] [/<option>]
Trace32的使用 写FLASH 写片外FLASH的过程如下(以AM28F010为例): Flash.Reset Flash.Create 0--3FFFF AM28F256 Word Flash.Program All Data.Load <文件名> (Data.Set ...) Flash.Program Off TRACE32也支持用户提供的烧写程序
Trace32的使用 RTOS调试:启动RTOS调试功能(以Nucleus为例): Task.Config Nuc ;配置多任务调试器 Menu.Reprogram Nuc ;启动Nucleus菜单 相关命令: Task.TaskStat Task.MbxStat Task.QueueStat Task.EventStat ...
Trace32的使用 增加一个菜单: MENU.AddMenu <name> <command> 增加一个工具键: 例:Menu.AddMenu”连接目标板“ ”System.up” 例:Menu.Reprogram Example 增加一个工具键: MENU.AddTool <tooltip text> <tool image> <command> 例:Menu.AddTool “Reset” “R” “Sys.Res”
Trace32的使用 MMU调试 TRACE32提供丰富的MMU调试命令,例如: MMU.CLEANUP Clean up MMU table MMU.COMMON Define common area MMU.Create Create translation MMU.CreateTab Create multiple translations MMU.Delete Delete translation MMU.DUMP Dump MMU tables MMU.OFF Deactivate MMU translation MMU.ON Activate MMU translation MMU.List List MMU translation table
Trace32的使用 MMU.ListID List MMU space ID table MMU.Protect Protect memory MMU.RESet Reset MMU configuration MMU.SCAN Scan MMU tables MMU.SCANALL Scan all MMU tables of kernel MMU.ScanID Scan MMU address space tables from kernel MMU.Set Set MMU registers MMU.TRANS Transparent banking area MMU.view View MMU registers
Trace32的使用 例:MMU调试 y.reset ;clear symbols mmu.reset ;clear MMU table mmu.create 0x00000++0x3ffff 0x00000++0x3ffff ;first logical space mmu.create 0x40000++0x3ffff 0x80000++0x3ffff ;second logical space mmu.on ;activate MMU w.d 0x40000 ;display logical address 40000 w.d a:0x40000 ;display physical address 40000 d.load.i main.abs /noclear ;load program to logical space;keep MMU table alive
Trace32的使用 多内核调试 TRACE32-ICD支持多内核调试,即当微处理器内含有2个以上的内核时(JTAG口串行连接),你可以指定调试某个特定的内核,例如: TDI ---> Core A ---> Core B ---> ARM 9 ---> Core C ---> TDO 各JTAG口指令寄存器的长度分别为: Core A:3 bit Core B:5 bit Core C:6 bit 希望调试ARM9,怎么办?
Trace32的使用 多内核调试 可使用SYStem.MultiCore 命令进行配置 格式: SYStem.MultiCore <location> <number> 其中< location>为位置指示: IRPRE JTAG链中位于ARM9与TDO之间所有寄存器的bit数 IRPOST JTAG链中位于TDI到ARM9之间所有寄存器的bit数 DRPRE JTAG链中位于ARM9与TDO之间的内核数 DRPOST JTAG链中位于TDI到ARM9之间的内核数
Trace32的使用 多内核调试 因此可以这样配置 SYStem.MultiCore IRPRE 6 ; IR Core C SYStem.MultiCore IRPOST 8 ; IR Core A + B SYStem.MultiCore DRPRE 1 ; Core C SYStem.MultiCore DRPOST 2 ; Core A + B SYStem.Up
Trace32的使用 TRACE32的其他命令 逻辑/状态分析 触发 函数性能分析 ROM调试 定时器/计数器 激励信号产生 脚本语言命令(Practice) CTS分析 …...
谢谢大家