我用的是一块从学长那儿拿过来的DSP开发板,从板子上看不出来是哪家做的,芯片型号是TMS320DM642,从芯片的型号就可以看出这块板子主要是围绕图像处理,仿真器是SEED XD510的,我从合众达的官方网站上找到了CCS2.2、3.1、3.3三个版本的驱动,并搞到了合众达另外一套试验箱图像处理方面的源程序,于是自己想在板子上跑一下。刚开始用的是CCS2.2的版本,虽然比较老,但是和win7竟然也兼容的很好,跑了一些那套程序竟然也基本兼容,看来两套板子在硬件上没什么太大的差别。后来电脑重装系统后我换了CCS3.1,在去跑那套程序发现部分程序就运行不正常了,好了下面换回正题,说一下我遇到的问题:跑灰度图像的处理没什么问题,一切正常,一旦跑彩色图像出来的图像就全花了,于是我又装了一个2.2的版本试试,发现是正常的,原程序也是2.2的版本编译的,难道2.2和3.1兼容性有问题?
先说说2.2和3.1在使用上的区别,最明显的是CCS2.2必须在目标板连接后才能打开,打开软件之后CPU的状态就是HALT,而CCS3.1在软件打开之后的状态时UNKNOWN,需要手动去debug-connect,也就是说CCS3.1需要手动连接目标版,支持离线的编译,其他方面的区别不是特别大(当然这是对于我这个小菜鸟而言)。
另外就是在芯片配置上面,CCS2.2在配置的最后会出现选择GEL文件,而CCS3.1选择完端口之后直接就完了,刚开始我就忽略了这个问题,GEL文件用的是默认的EVMDM642.gel,导致部分程序运行不正常。
这里说一下gel文件,各类文件时芯片的初始化配置文件,往往不同的开发板需要用不同的gel文件,这是因为不同的开发板的硬件连接可能不同,因此很多芯片的地址也就不一样,因此需要不同的文件来进行配置。在打开之后的界面可以看到GELfiles,这里面即是初始化配置文件,因此gel文件很重要。
在我发现gel文件不一致后,我第一想法是换掉这个文件,于是我重新配置,gel文件由默认的CCStudio_v3.1/cc/gel/EVMDM642.gel换成SEEDDM642.gel。结果在打开CCS的时候弹出警告GEL:Error while executing StartUp(): Target must be connected before calling the function G也不管他,点击确定打开之后连接芯片提示GEL: Error calling OnPreFileLoaded(): memory map prevented write to target memory at 0x01800054,将程序写入之后还是不正常。原来程序不正常我认为是由于gel文件的原因,2.2里面用的是SEEDDM642.gel的配置文件,里面相关是配置显然是根据开发板做了调整,所以正常运行,后来由于设置的是默认的EVMDM642.gel,这个我查了一下是针对TI公司的开发板的,和我手中的板子不太兼容,于是除了问题,现在在3.1的环境下换成了SEEDDM642.gel下载程序都出错显然是2.2和3.1不兼容的地方了。