一、ISYSYTEM介绍
ISYSTEM在1986年,被创立于德国慕尼黑,至今有37年历史。一直致力于开发和制造用于嵌入式软件开发和测试的工具和解决方案。2022年,被嵌入式软件开发工具的领先提供商TASKING集团收购。 iSYSTEM总部在德国,在亚洲,欧洲和美国,团队可以技术支持其产品。
ISYSTEM目前可以支持调试的芯片有很多,几乎覆盖行业内车国际芯片。比如: Infineon(TC1xx/2xx 、TC3xx、 TC4xx,PSoC4/5/6等),Renesas(RH850、 R-CAR等),NXP(MPC5xxx、S32K1xx/3xx、S32g2xx/3xx等),国产的GD32,Semidrive,AutoChips,C*Core等等,详细在官网有: Supported Microcontrollers - iSYSTEM
ISYSTEM调试器主要包含三部分:软件工具(winIDEA,testIDEA,daqIDEA,isystem.connect,EmuSync),硬件工具(小蓝盒,新的是叫IC5700),还有技术服务支持。软件调试工具在官网是随便下载的,不要钱买Licence,因为Licence在硬件调试工具(小蓝盒)里面,调试不同的芯片只是更换不同的连接转接头就行,还有买不同的Licence,有的Licence是可以通用调多种芯片的。官网IDE下载链接:winIDEA IDE - iSYSTEM 主要是下载winIDEA,因为其他IDE是包含在winIDEA里面的。没有硬件调试工具的话,可以去申请要一个,以公司名义去申请,没有找到申请的话,也可以私信找我。接下来就可以调试了。下面是我用思维导图大概列出来,还有我调试中的链接图。
二、winIDEA使用
这个是主要的上位机调试界面,简单实用,如果你是新手的话,也可以快速上手。我之前用过Keil,eclipse,所以基本没什么太大的难度,本身它也是基于eclipse开发的。
1,创建工程
打开后的界面,新建工程,输入名称,路径保存,选择你调试的芯片,导入symbol file,比如ELF文件。上图:
如果没有小蓝盒,那么就会出现下面的 BlueBox 选择不了,它的Licence是在小蓝盒里面的。你如果只是想查看界面熟悉的,可以直接点击 Later就行,进去后也可以使用官网的demo例子,也是可以看到大概的功能的,只不过不能调试。
我这里以英飞凌TC3xx为例子,选择之后,就选出现下面的目标板选项,然后点击 use the selected Board。 完成之后就看到一个空的工程了,这时候我们是看不到我们的elf文件代码的,需要点击上面的下载 (Ctrl+F3),就可以看到了。
如果没有小蓝盒的同学,出现下面的报错怎么办?可以点击上面的Tools,选择Demo Mode,就可以了。
如果还是也有出现.ini文件加载报错的,需要你对CPU设置下,点击Hardware,下面的CPU options里面,初始化这里去掉打钩就可以了。
2,界面查看
下面图就是我们正常看到的界面图了,左边工程区就是我们的elf文件,看到C代码,头文件等,我们可以查看内存,地址,变量,汇编,还有局部变量,实时变量动态变换。还有堆栈,寄存器也是可以看得到的,对我们调试有帮助。其他就由你自己探索了。
官网上也有帮助文档,现在后的IDEA里面也可以看,像下面是我从官网找的,查看局域变量,实时变量的方法,官网文档帮助地址:Welcome to winIDEA Help (isystem.com)
3,设置断点调试
执行断点有:软件断点,硬件断点。 软件断点数量没有限制,当程序执行到指定语句时暂停运行,方便程序调整。软件断点通常不能在FLASH 、ROM中使用。 硬件断点是 CPU 提供的断点,通过调试位于 CPU 上的一组特殊寄存器来实现。硬件断点的数量限制为 4 个或 8 个、12 个等,取决于核心。优点是它们在 CPU 空间中的任何位置都可以运行。
下面打断点之后,在断点设置工具上可以看到断点信息(由于是我忘记截图了,行号对应不上别介意哈。。),在右边图可以设置条件断点,比如当变量mainLooCounter > 3,并且有4次满足条件时,那么程序就会停下来。
也可以设置硬件断点,通过在Debug下面的Hardware Breakpoint设置,你想要找到对应寄存器,读写的寄存器值,满足条件也是可以让程序停下来的,不过硬件断点受芯片限制,一般3~4个断点吧,看芯片情况。
三、testDEA使用
在winIDEA界面选择上面Test,就可以看到testIDEA,daqIDEA,isystem.test,EmuSyc。testIDEA里面,你可以做简单的HIL测试(这个需要连接另一个模块,可以输入输出数字模拟量,下期再详细讲),单元测试,打桩,函数的覆盖率、Trace测试等等。我以一个函数测试为例,在左边空白处右键,新建一个测试例子。然后点击下拉框找到你要测试的函数,没有的话点击右边的刷新。Parameters那里就是你需要输入的参数,点击Finish。
我这里找了函数里面有3个参数需要传递long,char,long类型。我们输入参数之后,可以在Expected输入我们预期函数返回值,然后点击上面的运行按键,看到结果是绿色就说明函数正确了,相当于编写代码后就可以验证函数,还有复杂的项目也可以测试。
我们也是可以在testIDEA打桩,当被测试的函数调用其他一些我们不想被调用的函数时,我们可以选择Stubs,中间空白处添加指定一个桩函数,用来代替关联代码或者未实现代码的代码。
四、Trace功能使用
Trace是一个功能强大的工具,它使您能够记录程序执行跟踪、数据跟踪或其他跟踪消息,然后分析这些记录以生成覆盖范围或时序测量。 分析器窗口可以在不同的视图中显示记录的多个方面,可以从主工具栏切换。通过单击视图/分析器将其打开。
代码覆盖率是通常用于确定产品测试何时完成的指标,因为它可以显示在测试期间执行了代码的哪些部分。还可以为已跟踪的程序部分提供计时和计数信息。
简单说,就是程序跑到哪里,干了什么事,调用了哪个函数,变量,地址,寄存器等等,调用几次都记录下来,非常方便调试找Bug,不过最好有ED芯片,方便你存储更多的数据。
五、daqIDEA使用
daqIDEA是一个简单但有效的大型数据集图形表示工具。它以2D图表和数值表的形式显示不同变量的值,并且可以对片上分析仪BlueBox iC5700的输入进行采样。可以将获取的数据导出到文件中,并且可以将变量配置保存到配置文件中。 Variable configuration可变配置,为了获取和显示数据,必须指定变量设置表中的一些变量和变量参数,比如设置采样频率。
你需要选择添加变量,就可以看到变量的变换,也可以设置采样的频率,如下图。
六、 isystem.connect使用
isystem.connect 提供对控制目标的 winIDEA 函数的访问。允许通过第三方脚本进行自动化的操作,不用再去为了使用调试器再去学另一门语言或者脚本,节省人力成本。以下方式实现测试自动化有: Python 、Java、 C# 、Matlab 等等。
————————————————
版权声明:本文为CSDN博主「j1095」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/j1095/article/details/131165909
|