我用的是一块从学长那儿拿过来的DSP开发板,从板子上看不出来是哪家做的,芯片型号是TMS320DM642,从芯片的型号就可以看出这块板子主要是围绕图像处理,仿真器是SEED XD510的,我从合众达的官方网站上找到了CCS2.2、3.1、3.3三个版本的驱动,并搞到了合众达另外一套试验箱图像处理方面的源程序,于是自己想在板子上跑一下。刚开始用的是CCS2.2的版本,虽然比较老,但是和win7竟然也兼容的很好,跑了一些那套程序竟然也基本兼容,看来两套板子在硬件上没什么太大的差别。后来电脑重装系统后我换了CCS3.1,在去跑那套程序发现部分程序就运行不正常了,好了下面换回正题,说一下我遇到的问题:跑灰度图像的处理没什么问题,一切正常,一旦跑彩 {MOD}图像出来的图像就全花了,于是我又装了一个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,导致部分程序运行不正常。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
view plaincopy to clipboardprint?
StartUp()
{
setup_memory_map();
GEL_Reset();
init_emif();
}
StartUp()
{
setup_memory_map();
GEL_Reset();
init_emif();
}
EVMDM642.gel中的StartUp()
view plaincopy to clipboardprint?
StartUp()
{
setup_memory_map();
/*------------------------------------------------------*/
/* Uncomment the OnTargetConnect() call for CCS 2.X */
/* support. */
/* */
/* */
/*------------------------------------------------------*/
//OnTargetConnect();
}
StartUp()
{
setup_memory_map();
/*------------------------------------------------------*/
/* Uncomment the OnTargetConnect() call for CCS 2.X */
/* support. */
/* */
/* */
/*------------------------------------------------------*/
//OnTargetConnect();
}
从这个函数的对比就可以看到前一个在StartUp()中就已经完成了GEL和emif的初始化工作,而在后一个中就没有,这一点和前面说的软件打开时目标板的连接方式刚好一致。
因此在CCS3.1的gel文件中就多了这样一段函数:
view plaincopy to clipboardprint?
OnTargetConnect()
{
/*------------------------------------------------------*/
/* GEL_Reset() is used to deal with the worst case */
/* senario of unknown target state. If for some reason */
/* a reset is not desired upon target connection, */
/* GEL_Reset() may be removed and replaced with */
/* something "less brutal" like a cache initialization */
/* function. */
/*------------------------------------------------------*/
//GEL_Reset();
init_emif();
GEL_TextOut("GEL StartUp Complete. ");
}
OnTargetConnect()
{
/*------------------------------------------------------*/
/* GEL_Reset() is used to deal with the worst case */
/* senario of unknown target state. If for some reason */
/* a reset is not desired upon target connection, */
/* GEL_Reset() may be removed and replaced with */
/* something "less brutal" like a cache initialization */
/* function. */
/*------------------------------------------------------*/
//GEL_Reset();
init_emif();
GEL_TextOut("GEL StartUp Complete. ");
}
即在目标板连接的时候进行初始化操作,由此就可以理解为什么前面弹出的警告了,将SEEDDM642.gel对应的部分修改后在运行警告消失,即在软件打开时不对芯片初始化,改在芯片连接时进行。
一周热门 更多>