Ti的
DDK开发包里有个视频采集芯片的驱动程序,是在CCS2.2开发环境下编写的,以前在单位测试过,编译、下载、运行,一切OK,但是拿到CCS3.1中
编译就game
over了。这段驱动程序使用了DSP/BIOS,并且调用了CSL函数。我的CCS3.1安装了5.20版本的DSP/BIOS,配置文件格式
为.tcf,而CCS2.2的BIOS配置文件格式为.cdb。使用CCS3.1打开程序,需要将.cdb转换为.tcf。按照提示操作,转换成功。但是
编译时候遇到了麻烦,错误信息显示连接器无法找到程序中调用的所有CSL函数。比较了两个版本代码的编译、连接选项,完全一致,比较BIOS配置,也一模
一样,百思不得其解。会不会是没执行什么初始化操作或者没包含什么头文件和库?找出CSL的文档,从overview看起,发现文档说要包含一个名为
cslDM642.lib的库。在连接选项里加上这个库文件,然后编译,终于显示“0 error”。
奇怪啊,为什么CCS2.2的工程也没添加这个库,却能编译通过呢?再次比较两个工程的BIOS选项,终于找到问题所在。原来CCS2.2
版本BIOS的System->Global Settings的属性页面General标签中有一个名为Chip Support
Library
(CSL)的下拉菜单,CCS2.2使用的CSL库就是在这里指定的,而CCS3.1的BIOS没有这个选项,从.cdb转换到.tcf时就会丢失配置信
息,造成编译错误。
虽然编译通过,但是由于手头没有开发板,没法测试CCS3.1下编译的CCS2.2工程是否能正常运行。用几个不涉及视频口之类外设的小例程simulate了一下,似乎是没什么问题。等弄到板子再接着测试吧。