TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6678: DSPLIB 3_4_0_0 LU分解矩阵求逆函数问题

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:

感谢帮助,操作以后确实警告消除

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678: DSPLIB 3_4_0_0 LU分解矩阵求逆函数问题
分享到: 更多 (0)