FreeMaster调试相对于劳特巴赫的工具可能没有那么强大,但是它有一个优点,就是免费,也可以实时观察变量,而无需停下来,不过需要注意的是变量必须是全局变量。
FreeMaster本质上和普通上位机没有太多区别(比一般上位机多了调试口连接),但是对于一般调试而言,可以大大减少开发者自行开发上位机的必要性。
FreeMaster上位机可以直接加在elf文件并且获取其中的符号对应的地址,因此动态获取到该地址的数据,而无需开发者手动上传,减少了诊断代码(
若是使用非调试口的通信口,例如CAN或UART,则下位机需要添加FreeMaster源码,并调用FMSTR_Init()和FMSTR_Poll()进行初始化和轮询)。
以下介绍FreeMaster的使用方法。
上位机:
1、安装FreeMaster2.0上位机软件以及驱动
2、新建一个项目
3、Tools->Connection Wizard,FreeMaster可以通过多种接口调试,常规的可以用串口或者CAN或者on-board debugger,
一般用调试器即可,可以不需要多配置外设,并且不需要增加FreeMaster源码,程序不用做任何更改。
4、选择调试器为接口之后,plug-in Configuration,看你使用的是哪种的调试器,若是开发板自带的,一般是OpenSDA,购买的USB Multilink也可以,设置完成之后,会提示加载符号,即选择对应的elf文件
5、BDM选择P&E Nexus/OSBDM PowerPC,其它默认,然后就可以了
6、新建一个观察变量,输入我们要观察变量地址符号,例如全局变量uint32_t count,输入count即可,变量取名随意,最好一致,Sampling为采样时间。
7、Start Communication
若是使用调试器,则下位机不需要做任何特别修改,以下忽略。
下位机(示例代码:https://download.csdn.net/download/u010875635/10828808):
1、在项目include文件夹下新建FreeMaster文件夹,下面再建
Common、
src_common、
src_platforms三个文件夹
2、复制FreeMaster安装文件夹下的
examplesSCI_driver_examplesCommon下的freemaster_example.c和freemaster_example.h复制到Common中
3、复制src_common下所有文件到src_common中
4、复制src_platformsMPC57xx下所有文件到src_platforms中,并将freemaster_cfg.h.example改为freemaster_cfg.h。
5、项目属性->C/C++ General->Paths and Sysbols中Includes添加上述三个文件夹的相对路径
6、注释CommonFreeMaster_example.c中6行数据
//#include "data_img_logo.c"
//#include "data_img_tower.c"
//#include "data_demo_pmp.c"
// FMSTR_TSA_MEMFILE("logo.png", logo_png, sizeof(logo_png))
// FMSTR_TSA_MEMFILE("tower.gif", tower_gif, sizeof(tower_gif))
// FMSTR_TSA_MEMFILE("/demo.pmp", demo_pmp, sizeof(demo_pmp))
7、main.c中添加
#include "freemaster.h"
6、初始化中初始化完时钟之后,调用FMSTR_Init();
7、循环调用FMSTR_Poll();
8、建立完毕,编译下载后连接上位机即可