jicheng0622

【原创】FSL DSC平台使用USB-TAP在非调试环境下连接Freemaster

0
阅读(6895)

    最近在搭建DSC(MC56F84789)平台下的Freemaster调试环境时发现使用USB-TAP调试器的时候不能正常连接PC端的Freemaster,即使在DSC端FreeMaster固件的freemaster_cfg.h配置头文件中使能了FMSTR_USE_JTAG之后也不能正常工作,只有在进入Codewarrior调试模式才可以可靠地与Freemaster通信,如果退出调试模式就又会断开连接,这种情况会限制我们在Freemaster调试环境下的灵活性和工作效率,最后经过分析发现问题出在CCS(Codewarrior Connect Server)上面,下面我详细的说下DSC平台使用USB-TAP搭建Freemaster调试环境的方法和步骤(仅限Freescale DSC产品):

(1)找到DSC应用程序里FreeMaster固件代码中的freemaster_cfg.h配置头文件,禁掉SCI调试接口,使能JTAG接口,如下图所示,然后将修改后的代码编译后下载到DSC:

image

(2)设置Freemaster调试插件,打开Freemaster文件(.pmp),点击Project->Options->Comm选项卡,选择通信方式FreeMASTER CodeWarrior-CCS JTAG/ONCE Communication Plugin,然后再点击Configure配置一下,默认即可,如下图:

image

(3)准备工作就绪了,这时连接USB-TAP到目标芯片(目标芯片已上电),此时如果DSC在Codewarrior调试模式下(DSC处在调试模式,且全速运行),我们点击freemaster调试界面中的“STOP”红色按钮即可实现DSC与Freemaster的通信连接,但是如果DSC退出调试模式后再上电重新连接会提示Freemaster打不开CCS端口,所有这就需要我们接下来继续对CCS进行手动的配置(万里长征路还没有走完,呵呵)。

(4)CCS即Codewarrior Connect Server,我们如果使用USB-TAP的时候是需要启动这server引擎的,而这个server实际上需要我们到codewarrior的安装路径下找到并手动启动。进入到“你的安装路径\Freescale\CW MCU v10.5\MCU\ccs\bin”,找到ccs.exe并双击启动,这时它会自动隐藏到桌面右下角的任务栏里,右键CCS->"Show Console",进入到CCS的命令控制台,如下图:

image

(5)即使CCS已经启动了,但是它默认的配置接口是老式的并口LPT接口,所以需要我们手动去切换到USB接口,在CCS控制台中依次敲入delete->findcc utaps->config cc utap:自己的utap序列号->show cc,此时即已经将调试接口切换成USB-TAP了,然后我们点击File->Save Configuration,覆盖原来的ccs.cfg这个文件,这样以后就不会每次启动CCS的时候再重新输入上面这些指令了,但是注意如果换了一个USB-TAP的话还是需要重新敲指令的,因为序列号变了。

image

(6)一切工作就绪,最后点击Freemaster界面的“STOP”按钮,如下图,即可实现DSC与PC端Freemaster在非调试模式状态下的正常通信了,这种方式一定程度上提高了调试效率。

image

    目前发现无线充电的demo也有这样的问题(无线充电芯片WCT1000里面也是DSC核),凡是DSC芯片与Freemaster使用USB-TAP连接时都会遇到这样的问题,照此步骤修改即可。另外,如果使用USB Multilink则不会出现这样的问题,因为Multilink不是使用CCS引擎的。

    好了,就到这了,熬到太晚了,洗洗睡了,未完待续~