各位专家好,
我目前在使用CCS6.1+K2_STK测试66AK2H14,发现论坛里提供的K2_STK的例程在直接import进入工作空间,并配置了include路径后可以编译运行,但估计是因为编译器版本的问题,没法断点调。
使用CCS6.1新建66AK2H12的工程(因为6.1里面没有66AK2H14可选),将例程里面的文件拷贝至该工程,按照上一段相同的方式设置好include路径,一切设置都已完成,但工程始终编译不成功。我之前使用CCS5.2编译C6678的例程K1_STK_V1.1时就是这么做的,但从来都没有失败过。
检查提示的错误发现:工程中引用了一些CSL库中的头文件,比方说CSL_XX.h文件,需要用到其他的CSL_YY.h文件中的宏定义(一般都是寄存器的地址),但是XX又没有包含这个YY文件,要想编译就要一个一个包含进来,这样就把CSL库给改得面目全非,而且工作量还很大,为什么直接导入例程提供的工程就可以呢,不需要经过这步的修改CSL库文件的步骤?
我把例程里面工程目录下的.cproject文件替换自己新建工程的.cproject文件,发现编译又能成功,这到底是什么原因呢?.cproject文件还有控制工程去查找头文件的功能?难道以后自己新建工程必须把这个文件拷贝过来?为什么我用CCS5.2时从来没遇到过这种问题呢?
十分困惑,请求各位专家指点
Andy Yin1:
如果错误提示某些宏等没有定义,可能就是没有包含全部的头文件,STK中会把使用的相关头文件都在c或h文件中include,并包含相应的link。ccs6与ccs5.2这方面没有区别。
Zhengdong Li:
回复 Andy Yin1:
谢谢你的回复,但你可能没有明白我的意思。
我最大的困惑是:
我自己新建的CCS6的工程中,直接拷贝的STK的源代码,该link的common中的文件也给link过去了。所以对头文件的包含肯定完全就是跟STK的一样的,STK包含了哪些头文件,我的工程也一定是包含了的,所有文件内容都是一致的,工程属性的include options选项也完全一致。但问题是STK的工程能够找到这些宏的定义,能够正常编译,而我建立的工程就找不到这些头文件中的宏定义。
报出来的错误好几百个,也不可能每个都修改;关键是报的是CSL中的文件提示找不到宏定义,要修改的话,得修改很多CSL的头文件,我想TI提供的CSL非常官方的正式库文件,应该不会给用户这么大的灵活性来修改的吧
如果可以的话,可否新建一个工程(不要使用已经有的STK工程),SPI,I2C,SRIO之类的都可以,只把STK的代码拷贝到新工程,然后将其编译通过发上来呢?谢谢!
Zhengdong Li:
回复 Andy Yin1:
另外,请教下,你们开发STK时使用的具体环境是怎么样的,CCS、编译器、以及ARM和DSP使用的gel文件的具体版本是什么,希望能最大程度上还原你们建立工程时的情景,以便自己能够找出问题所在,谢谢!