Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在VisualDsp++5中,如何使用asm中从*.cpp文件为Blackfin BF537实现的函数?_C++_C_Assembly_Dct - Fatal编程技术网

C++ 在VisualDsp++5中,如何使用asm中从*.cpp文件为Blackfin BF537实现的函数?

C++ 在VisualDsp++5中,如何使用asm中从*.cpp文件为Blackfin BF537实现的函数?,c++,c,assembly,dct,C++,C,Assembly,Dct,我在Wiley Embedded Signal Processing with the Micro Signal Architecture.2007-2D DCT/IDCT图像压缩中解释了这个项目,我想将这些文件合并到。。与另一个个人项目的图像处理,其中只有*.cpp文件在视觉Dsp为Blackfin BF 537。首先在模拟器中,然后在板BF537上 已实施的项目2D DCT/IDCT有*.c和*.asm文件,并且运行良好。在某些情况下,对于某些计算,from C文件正在使用asm文件中声明和

我在Wiley Embedded Signal Processing with the Micro Signal Architecture.2007-2D DCT/IDCT图像压缩中解释了这个项目,我想将这些文件合并到。。与另一个个人项目的图像处理,其中只有*.cpp文件在视觉Dsp为Blackfin BF 537。首先在模拟器中,然后在板BF537上

已实施的项目2D DCT/IDCT有*.c和*.asm文件,并且运行良好。在某些情况下,对于某些计算,from C文件正在使用asm文件中声明和实现的函数

我注意到,如果在我的项目中移动这些仅包含*.cpp文件的*.c文件,会出现很多错误,其中一些错误如下:

"`[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
   'something [_something]' referenced from '.\Debug\project name.doj'"
所以,我认为我的项目中只需要*.cpp文件,而不是*.cpp和*.c的组合

在2D DCT/IDCT项目中,当我将所有那些*.c文件更改为*.cpp文件时,就会出现问题。当我尝试构建时,会出现以下链接错误:

"[Error li1021]  The following symbols referenced in processor 'p0' could not be resolved:
   '_r8x8dct(short *, short *, short *) [__r8x8dct__FPsN21]' referenced from '.\Debug\Start_DCT2.doj'
   '_r8x8invdct_ieee(short *, short *, short *) [__r8x8invdct_ieee__FPsN21]' referenced from '.\Debug\Start_DCT2.doj'"
在*.cpp文件中,我是这样调用asm中实现的函数的:

     _r8x8dct(in,coeff,temp);
在同一个*.cpp文件中,我包含一个头文件,其中我声明了函数:

     void _r8x8dct(fract16 *in, fract16 *coeff, fract16 *temp);
     .section    L1_code;
     .global     __r8x8dct;
     .align      8;
     __r8x8dct:
     .....................................
     __r8x8dct.end:
下面是包含函数的*.asm文件的一部分:

     void _r8x8dct(fract16 *in, fract16 *coeff, fract16 *temp);
     .section    L1_code;
     .global     __r8x8dct;
     .align      8;
     __r8x8dct:
     .....................................
     __r8x8dct.end:
带功能的模拟$\u r8x8invdct\u ieee


请原谅我的英文写作错误

< > C++调用C函数,你需要用C语言来定义C函数原型,例如

或者,如果您有多个C函数,您可以将原型按如下方式分组:

extern "C" {

    void _r8x8dct(fract16 *in, fract16 *coeff, fract16 *temp);

    // ... other C function prototypes ...
}

你的回答解决了我的问题,我对原型进行了分组,然后开始工作!我记得昨天尝试过类似的事情,但没有成功。。。谢谢!!