实时变量查看神器Freemaster

变量 nxp
hehung
发布时间: 2019-06-13
阅读: 22704

前言


关于freemaster最好的一点就是可以查看变量,并且卡已使用scope将变量的变化情况以示波器的方式显示出来,可以观察到变量的变化情况,可以对单个变量的刷新时间,显示内省等做设定,有许多编译器自带的变量查看所没有的功能。对于CodeWarrior10以上的版本中不带动态观察变量变化功能的编译器而言简直是一个救星,使用CodeWarrior的伙伴不能错过,当时,使用其他编译器编译的软件同样可以使用它进行变量的查看。

最近在使用CodeWarrior10.7的时候,由于全局变量不能够进行动态查看,导致有些问题调试起来十分的费劲,在网上搜索,发现了一款神器:FreeMaster。

下载


FreeMaster可以方便的查看全局变量和局部变量,也可以对寄存器的值进行查看。还可以将变量的值转换成示波器的方式进行查看,十分的方便。

该工具支持很多下载器,包括串口,jlink,multilink等。

软件是在NXP的官网上下载的,下载的最新版本freemaster2.0.直接进官网搜索即可。


变量实时观测


关于软件的安装就不做过多的介绍了,直接说如何使用:

安装好了之后直接打开即可。下面是对使用时的配置问题。初始界面如下:在这个界面有教程,可以在这里了解如何使用。

如果不会操作可以查看教程,但是这个教程比较繁琐。还是纯英文的,看着比较吃力。


图片1.png


下面介绍如何配置使用,需要配置我们所使用的调试工具(MULTILINK UNIVERSAL)
由于我使用的nxp的芯片,下载器使用的是multilink,下面就以这个为例,对于jlink串口的操作稍微有点区别。
首先点击Tools --> Connection Wizard,弹出如下界面,直接点击下一步。


图片2.png


图片3.png


弹出选择通信端口类型界面,由于我们使用的是debugger调试器,所以选择第三个。


图片4.png


直接选用我们所使用的调试工具,就是第一个就行了,这里的选择要根据你的实际烧写器决定。


图片5.png


这一步比较重要了,在弹出的plug-in界面下点击plug-in Configuration进行调试器的配置,配置好了才能够使用。


图片6.png



在弹出的界面选择调试器,这里的配置操作需要自己试一试,因为我使用的是S12Zvl系列的芯片,所以我直接选择的P&E HC12z这个选项(P&E HC12也是可以的)。

选择改好了之后,再试一试下面的select connection等选项。一般是不需要修改的。然后点击Test Connection测试一下单片机与freeMaster的连接情况,能不能正常连接。

注意:这里必须要把调试器连上单片机才可以,不然的话一直都连不上。


图片7.png

出现下图的情况,表明连接成功了,之后点击OK开始进行变量的查看。


图片8.png


下面是我把单片机与烧写器断开之后的测试情况:


图片9.png


加载需要调试的文件elf,这个很重要,需要编译器生成elf文件,codewarrior10.7默认是会生成的。在FLASH文件夹中,直接选中就行了,如下图。        

点击OK之后会弹出一个options的对话框让你加载需要调试的elf文件。

因为codewarrior会生成这个文件,对于不同的单片机是不一样的,要看编译器具体生成的是哪个文件记录的有你的寄存器信息,这个软件的工作原理就是直接读取寄存器的值,所以可以实时查看,需要你单片机里面的软件对应的一个编译后的文件才行。


图片10.png


现在万事具备,只欠变量了。

现在可以看到右边的窗口Variable Watch,可以在这里添加变量。


图片11.png


变量的添加需要注意一点的就是类型长度。这点很重要,如果数据的类型长度选择的不正确,显示的数据也会不正确,因为freeMaster时直接加载变量存储的地址来进行变量的查看的,类型长度选择的不正确显示出来的数据就包含了其他内存的。

在变量查看窗口中点击右键,选择Create New Watched Variables.


图片12.png


数组的添加

给变量取一个名字,如下图,是我观察的一个watch_aa的一个数组所以取名叫watch_aa[00]。还有一种简单的添加数组变量的方式,后面会提到。

1.Adress中填入要查看的变量的地址,直接写变量名就行了,它会自动弹出来地址;

2.Sampling里面可以填写采样时间:因为程序是2ms的周期执行,所以这里我选的是2ms;

3.Type里面选择类型,Size里面选择长度,2表示2个字节;

4.Show里面选择显示的数据类型,我选择的时DEC,十进制。


图片13.png


点击左上角的红色stop图标开始运行。

注意:在使用freemaster的时候需要断开编译器(codewarrior),一个烧写器只能

连接codewarrior和freemaster中的一个。所以下载程序的时候需要断开freemaster。


图片14.png


这里还有一个简单的方式添加变量,选择Project --> varilable.....

会弹出一个Varilables List的对话框。这个对话框可以查看自己需要显示的所有的变量。点击Generate...弹出Generate Variables对话框,这个对话框可以查看整个工程中的所有变量,找到定义的变量添加即可。

1. 添加简单的单个变量,电机Generate single variales

2. 添加数组,选中变量之后点击Generate array for symbol...,在弹出的对话框中编辑变量的类型和名字即可。这种方式可以方便的添加数组变量。


图片15.png

Scope使用

现在说说freemaster中的Scope的使用,这个可以查看变量的变化状态,对于变量的监控是十分有用的

1. 在Project Tree窗口中右键单击工程名,选择Create Scope...

2. 在Main配置Scope的名字,周期时间,和buffer大小(buffer不能太多,

不然电脑内存不够用)


图片16.png   图片17.png

3.  在Setup窗口中配置需要显示的变量吗,如上右图,之后点击确定即可。

4. 双击刚才创建的current_motor的scope。

5. 可以看到变量的值已图形的方式显示出来了。


图片18.png




原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

点赞 (0)
hehung
评论(1)

登录后可评论,请 登录注册

xbk_236913 73天前...
可以不错哦d
0   回复
相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)