在产品的开发中,硬件调试工具无疑是不可或缺的助手,目前市面上广泛存在的调试工具除了各个公司对自家产品专门开发的调试工具外,我们平时经常能见到的、也比较熟悉的,无外乎SEGGER的J-LINK系列以及ARM 的ULINK系列等,而在调试工具领域,还有一个专业的、全球最大的第三方硬件辅助调试工具生产商——劳特巴赫Lauterbach。或许你没用过它的工具而只是有所耳闻,在德国有不少这种专业技术方面精益求精的公司,他们名字也许不为大众熟知,但是在行业内确有口皆碑,非常值得我们学习。这家总部位于德国慕尼黑附近的专业第三方调试工具厂商,以其强大的、世界领先的TRACE32开发调试工具享誉全球,TRACE32开发工具拥有非常丰富和强大的功能,包括基本调试配置、RTOS、多核系统、虚拟目标调试、能耗分析以及强大的脚本语言等功能,可以支持市场中使用的80多种常见的微处理架构。
TRACE32开发工具的强大功能毋庸置疑,但是随着低功耗的32位Cortex-M系列处理器在嵌入式市场中的份额逐年攀升、面对着低成本系统的Cortex-M系列处理器,TRACE32开发工具无疑显得有些大材小用,而就在去年中旬,TRACE32阵营中终于诞生了一个专门针对Cortex-M系列处理器的低成本调试工具——μTrace。调试工具中的“贵族”终究也死抵挡不住ARM的席卷浪潮,这个售价两万人民币不到的仿真调试工具到底是什么样子、又有些怎样的特性?爱板网工程师带你一起去揭开层层面纱。
劳特巴赫μTrace开发工具
μTrace开发工具特点:
- 支持1000多种不同的基于Cortex-M的芯片
- 通过USB3.0接口连接主机
- 支持标准的JTAG、串行调试(SWD)和cJTAG(IEEE1149.7)
- 256MB的跟踪内存
- 用于目标硬件的半尺寸的10-、20-、34针连接器,以及能与其他的连接器连用的各类适配器
- 电压范围0.3V~3.3V(5V容限输入)
如上图所示,爱板网拿到的劳特巴赫μTrace开发工具包括了一个μTrace调试器,一根CombiProbe调试线、一个JTAG接口转接模块,一根USB3.0线缆,一个7.5V输出的DC电源适配器以及一些MIPI调试接口转接排线。
小知识
MIPI接口:MIPI联盟定义的一套接口标准,把移动设备内部的接口如摄像头、显示屏、基带、射频接口等标准化,从而增加设计灵活性,同时降低成本、设计复杂度、功耗和EMI。
μTrace调试工具
相比我们平常见到的仿真调试工具,μTrace无疑显得高大上,180*80mm个头更像是一个带着强烈视觉冲击的科技产品,最为显眼突出的无疑是正面自带的黑色网状栅格,内置散热风扇,这解决了μTrace在常时间高强度的调试、大数据传输时带来的热量问题,见下图。
μTrace调试器
在μTrace调试器风扇左侧旁边分布了3个红色LED灯,分别用于uRACE上电启动时的Power、保存调试数据时的Record以及调试器工作时的Running状态显示,而侧边栏则分布了一个7~9V的DC供电接口、一个USB3.0接口以及信号探针的接口,见下图。
μTrace接口
USB3.0接口大家都不陌生了,目前基本成了市面上在售笔记本电脑的标配,同样,它也可以向下兼容USB2.0,搭载USB3.0接口的μTrace在不丢失数据的前提下,能以高速率的传输保存跟踪信息数据,最高可达100MB/s。
另一方面,信号探针接口又是μTrace值得称道的独特功能,通过连接μTrace的探针头可以采集/记录模拟信号,例如:电流或电压,这对于能耗比较敏感的设备能耗测试有极大的意义。在μTrace调试器上,配合相应的调试软件(TRACE32 PowerView),可以通过硬件电路电流电压以及能耗的变化查看相应的软件代码执行状态,亦或者通过执行软件代码查看相应的硬件电路电流电压以及能耗变化,是不是超赞!目前市面上其它的仿真调试器产品还没出现过这种功能,专注创新,这是个会思考的公司。
再来看下μTrace调试器主机风扇右侧带的两个调试接口,见下图,这也是劳特巴赫专门连接CombiProbe的调试接口,两个一模一样40PIN接口。
μTrace调试接口
除了与μTrace调试主机相连的40pin MIP接口,CombiProbe与目标板连接采用了34PIN的MIPI调试接口,见下图,配合不同型号的MIPI调试转接口排线,可以支持所有开发板的MIPI调试接口。
μTrace之CombiProbe
然而,目前市场上并不是所有的开发板都配备MIPI接口,而大多数开关板都是沿用标准的JTAG接口,这样,CombiProbe的34PIN MIPI接口无法直接与开发板连接,这时,就需要用到劳特巴赫的JTAG接口转接板,见下图
调试接口转接板
即使是一块小巧的JTAG转接板,但是工艺也是杠杠的,转接板正面同样带有两个34PIN的MIP接口,和CombiProbe正好形成公母头匹配,而通过转接板可以得到14PIN或者20PIN的标准JTAG接口,非常实用。(下一页)
μTrace开发工具使用
想必看完了μTrace开发工具的介绍后,对其在实际环境下使用充满了期待,爱板网工程师接下去将会以实际体验带大家来进一步了解μTrace开发工具。
在正式开始使用μTrace开发工具调试前,需要做些准备工作:
- 准备一块Cortex-M系列的开发板
- 安装TRACE32 PowerView软件调试环境、安装USB驱动
由于没有找到MIPI调试接口的开发板,爱板网工程师决定选取大家熟知的意法半导体公司的STM32373C-EVAL开发板,标准的20PIN JTAG接口,这是需要用到上文中介绍的JTAG转接板,下图则是通过转调试接板将μTrace与ST开发板建立连接。
μTrace与STM32373C-EVAL开发板通过连接
至于软件调试环境,劳特巴赫提供了与μTrace匹配的调试软件TRACE32 PowerView,这同样是所有TRACE32开发工具的调试软件。
PowerView的安装过程非常简单,这里不再一一介绍,将μTrace开发工具和ST板卡上电,通过USB3.0线缆将μTrace调试器与电脑连接,如下图
μTrace与STM32373C-EVAL开发板上电连接
打开PowerView调试软件,此时你可以选择新建立自己的一个项目文件,或者点击start直接进入软件的调试界面,如下图
TRACE32 PowerView调试软件界面
TRACE32 PowerView的软件窗口非常简洁,自上而下可以简单的分为主菜单区、快捷键按钮区、工作区、行命令输入区、行命令软键区以及状态显示区,PowerView还为用户提供了高度自由化的界面操作环境,用户可以自定义增加菜单、快捷键等常用的功能。
不过要说PowerView更与众不同的是其行命令输入功能,在 Trace32 的界面中,你可以使用菜单,鼠标完成操作,但同样可以完全使用行命令操作。它不仅能完成菜单鼠标可以实现的所有功能,而且更重要的是获得更大的操纵性和灵活性,当然,前提是你要熟悉这些命令。
Trace32 除了具有强大的命令功能,同样内嵌了快捷方便的脚本处理功能,你可以将需要执行的命令保存在脚本中,脚本以 .CMM 为后缀。这时,脚本就相当于windows中的一个批处理文件.bat,通过载入脚本获得你需要的操作,避免反复的输入,这可以说是与大家常见的调试软件KEIL、IAR等最大的不同之处。
举个例子,在记事本中输入Print“Hello World!”保存为.CMM后缀的脚本文件,在行命令框中执行该脚本,可以看到输出的Hello World!字样,见下图
脚本应用小范例
言归正传,在设置开发板微控制器时可以在行命令区输入system.cpu来选择微控制器的型号,但是对于初次接触PowerView的工程师来说,老老实实的菜单操作比较省心,CPU-->system setting,见下图所示
配置微控制器型号,建立调试器与开发板连接
在system setting窗口下,首先选择CPU框中的微控制器型号,选择调试的时钟频率,在Mode框中的up是建立调试器与开发板连接的选项,完成这步,就可以正式进行对开发板的调试了,除了JTAG调试,还可以在CONFIG菜单下配置SWD调试。(下一页)
SMP系统以及AMP系统的调试跟踪
不过这些都和普通的调试软件没多大区别,而要重点介绍的是μTrace开发工具在这里的另外一个灵活的功能——支持 多核微控制器的SMP 系统(对称多重处理)和 AMP 系统(非对称多重处理)的调试和跟踪,在CONFIG菜单下,选择JTAG标签,如下图所示
μTrace同步多核调试(SMP)与异步多核调试(AMP)
在上图中我们可以看到core选项是灰色的,由于爱板网工程师手上没有多核的Cortex-M微控制器板卡,而目前所用的目标板STM32373C-EVAL是基于单核的Cortex-M4内核,所以没法实现多核调试功能,有些遗憾。不过这不影响我们对于劳特巴赫多核调试技术的认识。
对于SMP 系统,相信大家应该比较熟悉,是指包括两个或更多核的微控制器,这些内核通常采用相同指令集,或者至少采用兼容的指令集,由单一 SMP 操作系统向核心分配任务(静态或动态)、所有内核同步启动和停止,片上断点在所有内核的调试寄存器内并行设定,如下图中的big.LITTLE系统所示。
SMP对称多重处理
SMP系统还是比较常见的,目前市面上所有内核架构的的调试器基本都支持SMP系统的调试与跟踪,下面主要来看下劳特巴赫的非对称多处理系统的调试与跟踪,见下图。
AMP非对称多处理
AMP 系统是指由几个子系统组成:单独内核和/或 SMP 系统。所有子系统可以分配不同的操作系统,支持子系统单独的同步启动和停止(可配置),用于每个子系统的片上断点以及各子系统的跟踪过滤器和触发器都可单独编程。对于多核调试中,劳特巴赫的AMP系统功能非常实用,非常强大,这是其它调试工具无法比拟的。
μTrace调试与跟踪
回到先前STM32373C-EVAL开发板的调试上,在system setting中基本调试设置完后,我们可以直接点击PowerView快捷键栏中的“播放键”符号go开始调试,见下图
汇编代码调试
在没有载入目标代码的原代码的情况下,我们还能在调试窗口中看到调试的汇编代码,何故?这是由于TRACE32可以在没有目标代码的情况下将机器码反汇编成汇编语言进行调试,是不是很强大。
如果想进行源代码调试,可以通过运行脚本载入包含调试符号信息的.elf文件等,以STM32373C-EVAL开发板为例,可以运行STM32F3XX.CMM脚本,这在TRACE32 PowerView开发软件中有提供,然后载入载入STM32373C-EVAL开发板的.ELF文件,即可能看到源码,还可以通过mode切换不同的显示方式,如下图
C代码、汇编代码混合调试
在调试中最基本的操作莫过于断点的设置,TRACE32 PowerView可支持简单、复杂断点的设置,在快捷键栏中轻松实现软硬件的断电设置,见下图
断点设置、软硬件断点设置
除此之外,μTrace开发工具配合PowerView软件还可以实现多种不同的功能,如代码覆盖率查看功能(去除冗余代码、死代码,完善代码)、联合ETM、ITM跟踪数据、识别操作系统的跟踪、存储在μTrace 256MB内存中的FIFO模式跟踪信息、通过USB3.0存储到主机硬盘中的流模式跟踪信息以及实时性能分析等等功能,见下图
μTrace调试器之Trace功能
μTrace32之SWD调试
μTrace开发工具配合TRACE32 PowerView软件的强大功能毋庸置疑,除了对于MIPI接口、标准JTAG接口的板卡调试,在我们常见的众多SWD接口的开发板上,同样可以通过飞线来实现调试,如上图中的STM32F3discovery板卡。最后再来总结下μTrace所具备的功能。
调试功能:
- C/C++ 调试、简单和复杂断点
- 在程序运行期间内存读取和写入、Flash 编程
- 操作系统识别调试、两个或两个以上Cortex-M 内核的多核调试
跟踪功能:
- 连续模式 4 位 ETMv3 跟踪、在 TPIU 和串行线输出跟踪 ITM
- 多核追踪、长期跟踪时将跟踪信息流实时存至主机,流率高达100 MB/s
- 三种记录模式:先入先出(FIFO)模式、流模式、实时性能分析
- 将ETM(嵌入式跟踪宏单元)和ITM(指令跟踪宏单元)跟踪数据合二为一,可将读/写访问无缝集成到指令流和识别操作系统跟踪中
- 任务和功能的运行时分析、代码覆盖分析、即使在记录期间实时进行跟踪数据分析
- 使用 TRACE32® 模拟探头进行系统能耗分析
小结
μTrace作为劳特巴赫进军Cortex-M系列嵌入式市场的一体式调试与跟踪的低成本系统解决方案,集调试器、实时跟踪、能耗测试等功能为一体,为程序员提供智能的调试跟踪与程序流分析。作为调试工具中的“贵族”,只有使用过后才会爱上它。
原创申明:本文为爱板网原创,谢绝转载!
在产品的开发中,硬件调试工具无疑是不可或缺的助手,目前市面上广泛存在的调试工具除了各个公司对自家产品专门开发的调试工具外,我们平时经常能见到的、也比较熟悉的,无外乎SEGGER的J-LINK系列以及ARM 的ULINK系列等,而在调试工具领域,还有一个专业的、全球最大的第三方硬件辅助调试工具生产商——劳特巴赫Lauterbach。或许你没用过它的工具而只是有所耳闻,在德国有不少这种专业技术方面精益求精的公司,他们名字也许不为大众熟知,但是在行业内确有口皆碑,非常值得我们学习。这家总部位于德国慕尼黑附近的专业第三方调试工具厂商,以其强大的、世界领先的TRACE32开发调试工具享誉全球,TRACE32开发工具拥有非常丰富和强大的功能,包括基本调试配置、RTOS、多核系统、虚拟目标调试、能耗分析以及强大的脚本语言等功能,可以支持市场中使用的80多种常见的微处理架构。
TRACE32开发工具的强大功能毋庸置疑,但是随着低功耗的32位Cortex-M系列处理器在嵌入式市场中的份额逐年攀升、面对着低成本系统的Cortex-M系列处理器,TRACE32开发工具无疑显得有些大材小用,而就在去年中旬,TRACE32阵营中终于诞生了一个专门针对Cortex-M系列处理器的低成本调试工具——μTrace。调试工具中的“贵族”终究也死抵挡不住ARM的席卷浪潮,这个售价两万人民币不到的仿真调试工具到底是什么样子、又有些怎样的特性?爱板网工程师带你一起去揭开层层面纱。
劳特巴赫μTrace开发工具
μTrace开发工具特点:
- 支持1000多种不同的基于Cortex-M的芯片
- 通过USB3.0接口连接主机
- 支持标准的JTAG、串行调试(SWD)和cJTAG(IEEE1149.7)
- 256MB的跟踪内存
- 用于目标硬件的半尺寸的10-、20-、34针连接器,以及能与其他的连接器连用的各类适配器
- 电压范围0.3V~3.3V(5V容限输入)
如上图所示,爱板网拿到的劳特巴赫μTrace开发工具包括了一个μTrace调试器,一根CombiProbe调试线、一个JTAG接口转接模块,一根USB3.0线缆,一个7.5V输出的DC电源适配器以及一些MIPI调试接口转接排线。
小知识
MIPI接口:MIPI联盟定义的一套接口标准,把移动设备内部的接口如摄像头、显示屏、基带、射频接口等标准化,从而增加设计灵活性,同时降低成本、设计复杂度、功耗和EMI。
μTrace调试工具
相比我们平常见到的仿真调试工具,μTrace无疑显得高大上,180*80mm个头更像是一个带着强烈视觉冲击的科技产品,最为显眼突出的无疑是正面自带的黑色网状栅格,内置散热风扇,这解决了μTrace在常时间高强度的调试、大数据传输时带来的热量问题,见下图。
μTrace调试器
在μTrace调试器风扇左侧旁边分布了3个红色LED灯,分别用于uRACE上电启动时的Power、保存调试数据时的Record以及调试器工作时的Running状态显示,而侧边栏则分布了一个7~9V的DC供电接口、一个USB3.0接口以及信号探针的接口,见下图。
μTrace接口
USB3.0接口大家都不陌生了,目前基本成了市面上在售笔记本电脑的标配,同样,它也可以向下兼容USB2.0,搭载USB3.0接口的μTrace在不丢失数据的前提下,能以高速率的传输保存跟踪信息数据,最高可达100MB/s。
另一方面,信号探针接口又是μTrace值得称道的独特功能,通过连接μTrace的探针头可以采集/记录模拟信号,例如:电流或电压,这对于能耗比较敏感的设备能耗测试有极大的意义。在μTrace调试器上,配合相应的调试软件(TRACE32 PowerView),可以通过硬件电路电流电压以及能耗的变化查看相应的软件代码执行状态,亦或者通过执行软件代码查看相应的硬件电路电流电压以及能耗变化,是不是超赞!目前市面上其它的仿真调试器产品还没出现过这种功能,专注创新,这是个会思考的公司。
再来看下μTrace调试器主机风扇右侧带的两个调试接口,见下图,这也是劳特巴赫专门连接CombiProbe的调试接口,两个一模一样40PIN接口。
μTrace调试接口
除了与μTrace调试主机相连的40pin MIP接口,CombiProbe与目标板连接采用了34PIN的MIPI调试接口,见下图,配合不同型号的MIPI调试转接口排线,可以支持所有开发板的MIPI调试接口。
μTrace之CombiProbe
然而,目前市场上并不是所有的开发板都配备MIPI接口,而大多数开关板都是沿用标准的JTAG接口,这样,CombiProbe的34PIN MIPI接口无法直接与开发板连接,这时,就需要用到劳特巴赫的JTAG接口转接板,见下图
调试接口转接板
即使是一块小巧的JTAG转接板,但是工艺也是杠杠的,转接板正面同样带有两个34PIN的MIP接口,和CombiProbe正好形成公母头匹配,而通过转接板可以得到14PIN或者20PIN的标准JTAG接口,非常实用。(下一页)