你们好,我在论坛里下了K2_STK_DSP_v1.1,解压缩之后打开CCS6.1.1,工作区间为解压后的文件目录,下面是我的linked resource图,没有报错
然后根据K2E开发板来配置general和predefine symbols(_TMS320C6000是c6x.h头文件需要定义的,后面会讲到)
添加varilable PDK_INSTALL_PATH
修改头文件目录,因为我是在linux系统里面装CCS的,所以'\'都被改成'/',之后头文件都能找到
于是导入其中的GE工程,开始第一次编译,出错,显示有些头文件没找到,我看一眼发现是大小写问题,比如GE_Test写成GE_test,修改后还出错
显示一些CSL_EthernetSerdes的函数没有定义,我打开csl_serdes_ethernet.h,发现下列函数只有CSL_EthernetSerdesInit有定义,于是我就改用K2_STK_ARM_v1里面common/SerDes/csl_serdes_ethernet.h覆盖原来的文件,这样下列函数都有了定义
把这个解决了之后再编译,出现如下错误:
Description Resource Path Location Type
#10010 errors encountered during linking; "GE.out" not built GE C/C++ Problem
<a href="file:/usr/local/program/ti/ccsv6/tools/compiler/dmed/HTML/10234.html">#10234-D</a> unresolved symbols remain GE C/C++ Problem
unresolved symbol _mfence, first referenced in ./src/GE_PktDMA_Init.obj GE C/C++ Problem
#10247-D creating output section "PacketData" without a SECTIONS specification GE C/C++ Problem
#10247-D creating output section "QMSS_Data" without a SECTIONS specification GE C/C++ Problem
#10247-D creating output section "vecs" without a SECTIONS specification GE C/C++ Problem
#1557-D white space between backslash and newline in line splice ignored K2_DDR_Init.c /GE/src line 273 C/C++ Problem
#179-D variable "i" was declared but never referenced GE_packets_process.c /GE/src line 39 C/C++ Problem
#179-D variable "i" was declared but never referenced GE_packets_process.c /GE/src line 69 C/C++ Problem
#179-D variable "j" was declared but never referenced GE_PktDMA_Init.c /GE/src line 244 C/C++ Problem
#179-D variable "uiDescriptor" was declared but never referenced GE_PktDMA_Init.c /GE/src line 245 C/C++ Problem
#179-D variable "ullpData" was declared but never referenced GE_packets_process.c /GE/src line 41 C/C++ Problem
#179-D variable "ullpData" was declared but never referenced GE_packets_process.c /GE/src line 71 C/C++ Problem
#190-D enumerated type mixed with another type K2_GE_Init_drv.c /GE/src line 948 C/C++ Problem
#190-D enumerated type mixed with another type K2_common.c /GE/src line 2292 C/C++ Problem
#69-D integer conversion resulted in a change of sign .ccsproject /GE line 121, external location: /home/hjj/K2_STK_DSP_v1.1/common/K2_Serdes_init.h C/C++ Problem
#69-D integer conversion resulted in a change of sign .ccsproject /GE line 98, external location: /home/hjj/K2_STK_DSP_v1.1/common/K2_Serdes_init.h C/C++ Problem
#69-D integer conversion resulted in a change of sign K2_DDR_Init.c /GE/src line 108 C/C++ Problem
意思应该是_mfence()这个函数出问题,没有定义,我搜论坛里帖子,说要加头文件c6x.h,我加了之后并且预定义_TMS320C6000,_mfence()函数变成紫色(如下图),定义成功
重新编译后发现仍然出现同样的错误,我想应该是c6x.h里面只有声明,没有真正的_mfence()函数,真正的应该包含在一个库文件里,但是我添加了各种库文件都不成功,我添加的库文件如下图
请问我应该添加哪个库文件呢?还是说K2_STK_DSP_v1.1版本有问题呢?

