Part Number:TMS320C6678
DSPF_dp_lud_inverse,编译报warning #225-D: function declared implicitly。但是函数能正常运行,而且结果跟VS对比没错。
变量声明:
#pragma DATA_SECTION(tmp_M, ".internVari");
double tmp_M[CHANNEL][CHANNEL];
#pragma DATA_SECTION(tmp_inv_M, ".internVari");
double tmp_inv_M[CHANNEL][CHANNEL];
#pragma DATA_SECTION (L, ".internVari");
double L[CHANNEL][CHANNEL];
#pragma DATA_SECTION (U, ".internVari");
double U[CHANNEL][CHANNEL];
#pragma DATA_SECTION (P, ".internVari");
unsigned short P[CHANNEL][CHANNEL];
函数调用:
DSPF_dp_lud(CHANNEL, (double *)tmp_M, L[0], U[0], P[0]);
DSPF_dp_lud_inverse(CHANNEL, P[0], L[0], U[0], (double *)tmp_inv_M);
请问,为什么会产生这个warning,以及怎么消除
Nancy Wang:
该报错表明在该函数使用之前没有声明。
https://software-dl.ti.com/ccs/esd/documents/dmed/HTML/225.html
参考例程:
dsplib_c66x_3_4_0_4\packages\ti\dsplib\src\DSPF_dp_lud_inv\c66\DSPF_dp_lud_inv_66_LE_ELF
,
Hongliang Mao:
这是dsplib给的API,.h文件我包含了,.lib文件也加进链接器了;应该不可能是没有声明过吧
,
Nancy Wang:
再检查一下如果.h文件中已经声明过该函数,并且.c文件中也已经include该头文件,那就可以排除。
试试看例程有没有问题,再对比看一下。
,
man lingbin:
刚刚也遇到了这个问题,看了下<ti/dsplib/src/DSPF_dp_lud_inv/DSPF_dp_lud_inv.h>文件中Line39-40的宏定义:
#ifndef DSPF_DP_LUD_INV_H_ #define DSPF_DP_LUD_INV_H_
而在Line43 #include <ti/dsplib/src/DSPF_dp_lud_inv/c66/DSPF_dp_lud_inv.h>包含的的这个头文件中也是宏定义:
#ifndef DSPF_DP_LUD_INV_H_ #define DSPF_DP_LUD_INV_H_
从而导致 <ti/dsplib/src/DSPF_dp_lud_inv/c66/DSPF_dp_lud_inv.h>这个文件的line87的函数声明没有被编译,对比了一下其他的头文件怀疑是不是<ti/dsplib/src/DSPF_dp_lud_inv/DSPF_dp_lud_inv.h>文件中的宏定义应该为:
#ifndef _DSPF_DP_LUD_INV_H_ #define _DSPF_DP_LUD_INV_H_
按上面修改则警告消除,请管理员审阅,谢谢!
,
Nancy Wang:
感谢分享,确实是这样的问题,请参考英文论坛上的讨论:
https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_DSP_2218376
,
Hongliang Mao:
感谢帮助,操作以后确实警告消除