wordpress程序员主题,seo快速排名首页,怎么自己建立网站,本网站服务器在海外Hightec编译器系列之高级调试技巧精华总结 小T为了便于大家理解#xff0c;本文的思维导图大纲如下#xff1a; 之前可能很多小伙伴没有使用过Hightec编译器#xff0c;大家可以参考小T之前的文章《Hightec编译器系列之白嫖就是爽》可以下载一年试用版本。
小T使用过适配英… Hightec编译器系列之高级调试技巧精华总结
小T为了便于大家理解本文的思维导图大纲如下 之前可能很多小伙伴没有使用过Hightec编译器大家可以参考小T之前的文章《Hightec编译器系列之白嫖就是爽》可以下载一年试用版本。
小T使用过适配英飞凌芯片的HightecADSTasking等各类编译器单纯就调试而言Hightec的UDE调试环境毫无疑问绝对是佼佼者其他两个虽然是英飞凌官方的编译器但是调试功能方面相比Hightec的UDE调试环境那还是差的远了当然小T就仅针对调试环境而言。
小T在使用Highte的内嵌的UDE调试环境中发现了有很多不错的高级调试技巧之前也是苦于没有人指导都是自己独立摸索因此为了避免大家少走弯路特意讲上述非常有用的调试技巧分享给到大家希望大家多多点赞分享。
废话不多说我们直接进入主题
单核调试切换
如下图所示通过如下方式便可以切换到任意核进行调试以TC397为例TC397芯片存在6个Core因此可以分别点击任意Core进行调试。 通过上述方式确定Core之后便可以通过如下S2步骤进入到Symbol中查看文件名或者函数中从而找到位置便于打断点 注意事项每次当我们需要针对特定Core进行调试时如打断点必须重新切换到特定的Core之后然后再重新调用Symbol才能查找到相应文件名或者函数名否则就会找不到或者打断点的位置不对。
查看Core Register
有些时候我们需要通过查看特定的寄存器才能够进一步定位问题比如出现Trap问题时可以查看D15与A11寄存器来判断Trap发生的初始位置如下图为查看Core Register的执行步骤 断点
调试过程中打断点对我们大家都不陌生断点最为常用的特性主要包含如下三个方面 单核断点介绍如何在特定的Core上进行断点操作 多核断点多核断点对于很多人未接触多核系统的小伙伴似乎有点陌生下面讲介绍多核断点的应用场景与执行步骤 条件断点介绍如何进行条件断点的设置以便我们能够知道某个特定变量如何进行变化
单核断点
如下图所示为单核断点的具体执行步骤 条件断点
如下图为为程序打上条件断点的具体执行步骤
针对“Watch”窗口中的全局变量鼠标右键便可以进入如下图的读写条件断点控制界面。 多核断点
如下图为插入多核断点的方式多核断点主要在下列多核同步控制过程起作用将进一步详解讲解。 汇编显示控制
如下图为通过切换下列图标来实现汇编代码与源码的之间的自由切换这对于想看具体的汇编代码调试非常有帮助。 查看Call Stack
通过如下图方式操作便可以查看当前断点所在的函数栈调用信息这对于我们了解函数调用过程非常有帮助。 查看全局与局部变量
这个操作可以说对开发软件的小伙伴来说毫无疑问是最为常用的基本技巧必须得掌握啊。
查看局部变量
在“Locals”中查看当前断点所在的上文中的所有局部变量很多小伙伴经常为了观看局部变量经常改成全局变量再去看其实完全没必要Hightec的UDE已经为你想到了 查看全局变量
通过”Watch“窗口来查看全局变量方便快捷 多核同步控制
有些时候我们需要调试在两个或者多核之间的同步问题时我们就可能会用到多核同步控制功能该功能能够实现控制Core0(Master core)与其他核的同时启停这对于我们调试核间同步问题非常有帮助如下图为多核同步控制的具体设置过程
S1进入多核同步控制界面 S2点击添加控制组可以添加多组满足你的任意需求 S3重命名Group然后进入下一步即可。 S4通过左右移动便可以实现右边特定受控的Core Group需要注意的是Core0作为Master Core必须添加进来。 S5如下图仅设置Core0与Core1为Core Group,其他核将在启动调试过程中不受控制。 S6如下图在Core0打上断点之后仅受控组的Core0与Core1停止其余核不受影响正常running。 注意事项如果未设置run control group那么各个Core都将独立运行互不影响除了Core0在启动过程中会启动其他Slave Core之外。
S7 多核断点控制
多核断点是建立在存在上述Run Control Group基础之上才能够发挥作用按照上述”断点“的方式打上多核断点之后如果这段代码都会被core0与Core1同时访问那么仅需要在Core0或者core1相同位置打上多核断点那么就会同时在Core0与Core1访问的地方打上断点这样就不要分别到每个核打断点提高调试效率。
注意多核断点仅对多核会访问相同的代码段的基础上才能发挥作用如果代码不是多核共享的那么多核断点与单核断点没有差别。
实时查看变量技巧
很多时候我们不仅仅需要在停止运行时能够显示相关全局变量的值也希望能够在实时运行中也能够观测到相关全局变量的变化此时Hightec的UDE就远胜ADS以及Tasking的IDE调试环境了ADS与Tasking编译器自带的IDE调换器据我所知当前无法实时查看全局变量。
S1在Watch窗口中的状态栏顶部统一右键点击进入到”Refresh Period“界面设置相关的刷新周期 S2在如下图中设置正常运行时刷新的变量周期以及停止Core时的自动刷新周期这个具体时间可以随君意。 S3成功设置之后便可以看到”Watch“下面的所有全局变量都会呈现如下图的蓝色旋转按钮则代表设置成功此时让Core running起来便可以实时看到变量的变化。 查看外设寄存器
有些时候我们需要通过查看外设寄存器查看外设相关工作状态是否正常那么可按照如下方式进行查看 查看Memory信息
通过”Views- Memory“便可以查看指定地址中的内存中的值对于内存中的值存放有个更为直观的理解。 下载配置
在每次启动Hightec调试界面时启动调试界面按钮如下 便会自动跳出如下刷写界面默认情况下该界面无需更改只不过小T说明了下其功能作用core0会自动将其他Core的文件一并刷入到其他Core的Flash区域所以不用担心如下图只是刷写的时Core0。 有些时候软件刷写的代码是在另外一台电脑上编译的我们需要在不一样的电脑上进行调试此时可能源代码路径不一致这个时候就需要修改源代码路径便可以进行Attach进行调试
通过点击调试界面”Config – Debug Server Configuration – View Server – Source Code –Path Management “进入到如下配置界面 更多精彩内容敬请关注公众号“ADAS与ECU之吾见”