1、UDE简介
PLS UDE是一款强大的软件调试工具,适用多种架构芯片,包括主流的英飞凌,恩智浦,瑞萨,ARM等,国内有紫光,云途等。实用起来感觉功能略逊于劳特巴赫,但是还是很强大。界面做的比劳特巴赫好,价格比劳特巴赫便宜。
2、新建工程
2.1 新建workspace
2.2 选择Target Configuration
以英飞凌TC38x为例
连接成功的话,界面如下所示:
3、烧写软件
上图用默认勾选的配置就行(对于多核系统,蓝色框勾中启动核就行)。如果hex文件和elf文件同名且在同一目录,那么UDE烧写hex时也会默认烧写elf文件。
如果不进行任何设置,Program All 就行。
如果我们需要选择性的擦除FLASH,比如起始地址到0xA0007FFF我们不擦除(这个可以应用于当我们调试但不想擦除boot部分代码)可以如下进行设置
4、源代码路径配置
如果烧录的代码是在自己本地的路径编译,那么这个配置可以不用管。如果不一致,比如其他人发给你的,那么路径基本上是不一致的,这时调试时就只能看汇编而没有源代码,这需要把hex路径对应到我们本地的工程路径。
5、Debug调试
5.1 运行控制
5.2 Views窗口
5.3 数据更新设置
无论是外设还是全局变量的更新都需要手动配置,可以加入变量后设置单个更新,也可以加之前设置全部更新。
5.4 Symbols
可以对头文件、源文件、函数、section片段进行模糊检索,注意要在对应的核下
5.5 Watchs全局变量
全局变量可以通过手动输入也可以通过Browse选择,可以观察地址,值(不同进制形式),最大最小值,导入导出,设置更新等
5.6 变量图形观察Time/Value Chart
5.7 外设寄存器
在空白区域点击鼠标右键,通过Browse来选择想观看的外设寄存器,如PORT,ADC,CAN等寄存器
5.8 断点Breakpoint
打断点一般有两种方式:在代码出打断点;在变量处打断点。
代码断点:
通过Debug Server可以设置点击断点时是单核断点还复合断点
单核断点是红色,多核断点是两种颜色
变量断点:
对于变量断点还可以进行触发条件设置
5.9 内存Memory
可以在地址部分直接改值定位到自己想要的位置
无效地址数据部分会显示为问号,如下:
5.10 函数时间测量
可以通过在函数里打两个断点,然后使能函数时间测量来测量运行时间。(注意:UDE的时钟和芯片的时钟要一致)
5.11 多核控制配置
如果我们不想要某个核运行,可以进行如下配置
也可以通过Target Manager配置:
6、下载速度提升设置
一般来讲Download选用默认配置就行了,但是当我们的代码量过大,生成的EIF文件太大,就会导致Download时,Progress界面链接目标会非常慢(劳特巴赫不会存在这种问题),原因是因为解析virtual section部分会花费很多时间。此时可以通过以下配置大大提升下载速度(加载ELF时把hex文件也勾选上)。
Config / Debug Server Configuration / Debug Server / Download
配置完成后断开连接,再重新连接让配置生效。
7、结束语
好了,关于UDE的一些使用操作到此结束了。UDE的功能很强大,这里介绍的只是UDE一部分的功能,有些实用操作可以在项目实践中去精进,比如遇到代码跑死如何利用断点,上下文(call stack),核寄存器去定位问题等。