FreeMaster – MCU的调试利器

嵌入式9个月前更新 阿轩
778 0 0

FreeMaster是什么

FreeMastert是NXP官方开发的一款数据可视化的调试软件,免费为用户提供,它的主要功能是在PC机上提供一个数据可视化的软件,通过SWD,UART,CAN等通信接口把MCU中的数据变量显示出来。

在使用jlink调试工具进行连接的情况下,使用FreeMaster工具,不需要在目标工程中引用同FreeMaster相关的任何源代码,只须将需要实时显示的变量,创建为全局变量或者静态局部变量即可,即在MCU的内存中分配一个固定的地址。之后,FreeMaster将通过SWD通信接口,读取内存中的值并实时显示到FreeMaster的界面上。

通过SWD接口访问内存,是调试ARM内核MCU代码程序的基本方式之一,同我们常用的支持在线调试的调试器工作方式相同,MDK的调试也支持显示和修改内存变量,但是在可视化方面的功能相对要少很多,FreeMaster就是在基本的数据读写之上增加了很多可视化功能,比如显示波形。

下图就是NXP自家的电机控制系统在FreeMaster 3.1 上面做的可视化调试软件,感兴趣的可以到官网趣了解:https://www.nxp.com.cn/design/software/development-software/motor-control-application-tuning-mcat-tool%3AMCATSW

FreeMaster - MCU的调试利器

这里是官网的介绍,还是很清楚的,可以移步体验一下:https://www.nxp.com.cn/design/software/development-software/freemaster-run-time-debugging-tool:FREEMASTER

FreeMaster的下载

FreeMaster有很多版本,从2.0 移植到最新版本的3.2。

  • FreeMASTER tool 3.x,除了传统的FreeMASTER上位机之外,还有一个FreeMaster Lite,可以借助web远程通信,同时还支持第三方使用JSON-RPC的应用。
  • FreeMaster tool 2.x,传统的FreeMASTER上位机,官网上有2.5和2.0两个版本。

这里建议一般的调试可以使用2.0或者2.5版本就可以,3.0以上的软件体积非常大,增加的功能很多情况我们用不到。(FreeMASTER 2.0版本的工具栏中的开始/暂停功能使用的同一个按钮,不容易判断判断FreeMASTER的状态,推荐使用2.5版本)

FreeMaster - MCU的调试利器

这里我下载好给大家提供链接,这样大家就不用到官网注册登录下载了。

各版本FreeMaster下载

FreeMaster的设置

  1. 首先安装完FreeMaster后,打开的界面是这样子的:
FreeMaster - MCU的调试利器

首先应该新建一个工程,这样我们后续的设置会单独保存在一个文件当中,下次使用时可以直接双击文件打开,我们把这个工程文件可以保存在所要调试的项目的目录里,这样可以使用git一同更新。

新建工程后我们要设置FreeMaster和我们调试项目的通信方式,在使用SWD的情况下,逻辑就是非常简单,我们不需要改变原有工程的任何设置和代码,只需要在FreeMaster中选中通讯方式为jlink,然后把我们要调试的项目编译通过后,将axf文件引入到FreeMaster中,其实FreeMaster记录的事axf文件的路径,只要我们更新工程编译产生新的axf文件,FreeMaster会自动更新。

创建完工程后,我们可以通过菜单栏的Project → Option来对FreeMaster进行配置。

FreeMaster - MCU的调试利器

Options中我们刚刚入门只需要关注最开始的两个选项卡即可,首先是通信方式的选择,这里有两种模式,一个是串口的RS232接口,这种方式需要在我们的工程里引入FreeMaster的驱动,因此会破坏我们的代码工程,因此不推荐。

另一种是Plug-in模式,这种可以直接选择Segger/jlink进行通信,正好我们在使用MDK等工具时也是相同的配置,因此推荐使用第二种方式。

FreeMaster - MCU的调试利器

除了配置硬件连接外,我们还需要配置一个软件的链接,也就是FreeMaster和我们的工程需要通过一个文件来传递目标工程的信息,这个文件在ARM系列的MCU中是axf文件,他一般存在Objects目录中,里面会记录我们工程中的函数和全局变量的信息。一旦引入了axf文件,我们就可以在FreeMaster中直接索引到我们程序中定义的变量名称和编译后的地址了。

FreeMaster - MCU的调试利器

接下来我们可以回到主界面,在右下方的变量显示区域进行新增变量观察器,在变量的设置中,我们可以为需要增加的变量新建新的名字,可以是中文便于理解,然后我们把工程中的变量名复制到Address中就可以自动匹配出地址,我们可以为这个变量设置观测的类型和Size,同时也可以设置观测的频率和显示的格式。更多高级玩法还是需要实操一下,会有更多惊喜。

FreeMaster - MCU的调试利器
FreeMaster - MCU的调试利器

只是显示变量和修改变量肯定算不上惊艳,MDK也可以做到,接下来我们看一下显示波形,我们可以在左侧的Project Tree里面新增Scope界面,这样右侧就会生成一个波形图显示的界面,我们可以右键单击波形图界面打开波形显示选项Scope Properties。

这里面可以设置显示哪些观测的变量,同时可以设置波形颜色,以及坐标轴的显示形式。

FreeMaster - MCU的调试利器
FreeMaster - MCU的调试利器

下图是实际显示的波形,这样对于我们调试一些电控算法是非常方便的。

FreeMaster - MCU的调试利器

另外这些观测的数据除了可以显示,还可以进行保存和导出进行分析,就类似一个数据记录仪,下面是导出的设置界面,菜单栏Scope ==> Data Capture Setup设置文件路径

FreeMaster - MCU的调试利器
FreeMaster - MCU的调试利器

菜单栏Scope ==> Toggle Data Capture On/Off,打开/关闭 数据捕获

FreeMaster - MCU的调试利器
© 版权声明

相关文章

暂无评论

none
暂无评论...