|
为什么要使用freemaster?
硬汉哥在专题教程里面对常用的调试工具如J-Scope、RTT进行了对比总结,并且出了专题教程.但是这两者更适合于在前期开发低压产品时,直接使用仿真器进行调试.但如果产品已经在现场使用,不方便拆开接仿真器,只有一路串口或者CAN可以使用怎么办? 或者像变频器或者逆变器这种前期开发直接使用仿真器就有风险,不知道多少人在调试时忘乎所以,断点都忘记取消了,在DEBUG后直通炸管的. 或者没用隔离的仿真器,把电脑都烧掉的 .再者是大功率机器满载运行时,根本不敢使用仿真器,担心炸鸡放烟花的.
这个时候就可以考虑使用freemaster了,freemaster是NXP开发的一个实时调试监测器和数据可视化工具,适用于广泛的汽车和工业应用.可以认为是包含J-Scope和RTT的功能,而且在应用场景和功能上更加强大.在调试方面和J-Scope、RTT各有千秋.freemaster的介绍很多,可以直接去搜一下.
NXP官网上的链接:
FreeMASTER Run-Time Debugging Tool | NXP 半导体
对于现场没办法拆开机壳使用仿真器的情况,可以使用freemaster通过串口或者CAN进行调试,对于变频器和逆变器这种大功率设备,调试时更适合使用freemaster,不但可以查看波形,而且可以直接修改全局变量参数进行调试.下图是freemaster支持的模式截图,常用的COM和CAN的的模式需要移植代码.也可以使用DSP和J LINK模式,这种不需要移植代码.


freemaster支持查看全局变量并且可以把变量的波形显示出来,受限于总线实时性,波形精度不高.但是Recorder功能可以缓存数据后再显示出来,需要申请一块RAM缓存,但是能够显示更高精度的波形.
 

对比下来
1.无需修改代码 2.需要使用仿真器 3.支持波形变量显示 4.支持波形数据导出 5.类似printf输出功能 6.修改全局变量
J-Scope 1.不需要 2.需要 3.支持 4.支持 5.不支持 6.不支持
RTT 1.需要 2.需要 3.不支持 4.不支持 5.支持 6.不支持(好像不支持,硬汉哥的教程没看到)
freemaster的DAP/J LINK 1.不需要 2.需要 3.支持 4.不支持 5.不支持 6.支持
freemaster的COM/CAN 1.需要 2.不需要 3.支持 4.支持 5.不支持 6.支持
代码移植参考了其他论坛的移植经验
基于stm32与串口通信的freeMaster使用-CSDN博客(主要参考这个)
Free Master 串口驱动代码移植到GD32F303_freemaster移植-CSDN博客(这个博主上传的代码有几个文件乱码,但是博文可以参考)
注意事项,只有freemaster_S32xx.h和freemaster_cfg.h需要修改,FMSTR_Init(); FMSTR_Poll(); FMSTR_Recorder(); FMSTR_Isr();参考上面的帖子放到合适位置即可
freemaster_S32xx.h的#define FMSTR_SCIDR_OFFSET 7 需要拆分为#define FMSTR_SCIRDR_OFFSET 0x24 和 #define FMSTR_SCITDR_OFFSET 0x28
因为S32xx的串口发送接收寄存器在一块,32的是分开的
下面代码里的寄存器也要分为两个
#define FMSTR_SCI_PUTCHAR(ch) FMSTR_SETREG32(FMSTR_SCI_BASE, FMSTR_SCITDR_OFFSET, ch)
#define FMSTR_SCI_GETCHAR() FMSTR_GETREG32(FMSTR_SCI_BASE, FMSTR_SCIRDR_OFFSET)

freemaster_cfg.h中的#define FMSTR_USE_TSA 0 /* Enable TSA functionality */修改为0,解决一个莫名的编译错误
新增
#define FMSTR_USE_SCI 1 /* To select SCI(USART) communication interface */
#define FMSTR_SCI_BASE 0x40004800 /* USART3 base on STM32H750 */

附件为移植好的代码
1.基础代码使用安富莱例程: SPI Flash的读写例程(中断方式)
2.在此基础上适配weact的stm32h750(open mv)开发板,主要是完成lcd液晶屏的移植.注意:由于weact板子上flash型号和安富莱例程支持型号不同,所以flash相关移植未完成.
3.移植V7-083_Modbus RTU从站例程例程,usart3支持modbus
4.移植freemaster2.5版本代码,usart3支持freemaster
5.modbus和freemaster不能同时使用,修改freeMasterEnable后编译烧录切换,不支持运行时切换
6.Tool文件夹下包括mthings上位机配置文件,用来使用modbus功能.freemaster工程文件,用来使用freemaster功能.GBK转UTF8文件用来转换编码.
工作中发现freemaster在变频器和逆变器产品的调试中确实很好用,过去用过某龙头企业变频器的后台软件,只能说越用越倒退了,还没老产品的后台软件好用,花时间移植了下并写篇文章记录一下分享给大家.
一般产品只预留一路485/CAN,正常模式走modbus或者can open,需要调试的时候修改参数,打开freemaster使能.移植的这个代码不支持手动切换,只能烧录代码的时候选择freemaster或者modbus.
最近忙着其他事情,本来还打算移植一下freemaster的can 模式,手里用的weact的H7板子没有CAN接口,也没有can卡.去搜了下发现can还只支持特定型号,支持的ZLG的CAN II和CAN-2E-U价格都不便宜,
只能等有空再说了.
How to use FreeMASTER with CAN - NXP Community

手抖没写完就发帖了,发现帖子图片好像没了.每日上次附件大小还有限制,今天不能上传附件了,后面开个帖子上次附件后贴在下面吧.
|
|