主题:EM9000协处理器的使用问题

  共有23766人关注过本帖    
EM9000用户
1楼


EM9000协处理器的使用问题  发帖心情 Post By:2011-10-2 20:10:00   [只看该作者]

我按照《EM9000协处理器浮点运算函数.pdf》文档中的使用方法先在项目链接器中添加了em9000_crunch.lib的依赖项,然后在程序中调用crunch.h中提供的函数,可是编译老通不过。之后我又在Win32智能设备控制台应用程序中编写简单的测试程序验证,确实是无法编译通过。这是怎么回事?请解释。
编写的测试程序如下:
#include "crunch.h"
#include 
using namespace std;

int _tmain(int argc,_TCHAR* argv[])
{
float a,b,c;
a=5.123;
b=3.156;
c=em_add(a,b);
cout< c=em_sub(a,b);
cout< c=em_mult(a,b);
cout<
return 0;
}
编辑结果:
正在编译...
em_test.cpp
正在链接...
em_test.obj : error LNK2019: 无法解析的外部符号 "float __cdecl em_mult(float,float)" (?em_mult@@YAMMM@Z),该符号在函数 wmain 中被引用
em_test.obj : error LNK2019: 无法解析的外部符号 "float __cdecl em_sub(float,float)" (?em_sub@@YAMMM@Z),该符号在函数 wmain 中被引用
em_test.obj : error LNK2019: 无法解析的外部符号 "float __cdecl em_add(float,float)" (?em_add@@YAMMM@Z),该符号在函数 wmain 中被引用
EM9000 (ARMV4I)\Debug/em_test.exe : fatal error LNK1120: 3 个无法解析的外部命令

另外,看crunch.h提供的浮点函数太少,只有简单的加、减、乘运算,没有除法,pdf文档中提到的如FIR滤波之类的功能没有看到,我需要用EM9000做一些信号处理的算法,FFT、FIR滤波等是经常要用到的,如果贵公司已经开发出一些功能,希望将算法库发至我的邮箱,谢谢。

  单帖管理 | 引用 | 回复 回到顶部
EM9000用户
2楼


  发帖心情 Post By:2011-10-2 22:14:00   [只看该作者]

程序发上去乱了。
再发一遍
#include "crunch.h"
#include 
using namespace std;

int _tmain(int argc,_TCHAR* argv[])
{
float a,b,c;
a=5.123;
b=3.156;
c=em_add(a,b);
cout< c=em_sub(a,b);
cout< c=em_mult(a,b);
cout<
return 0;
}

  单帖管理 | 引用 | 回复 回到顶部
EM9000用户
3楼


  发帖心情 Post By:2011-10-2 22:14:00   [只看该作者]

还是乱

  单帖管理 | 引用 | 回复 回到顶部
zxw
4楼


  发帖心情 Post By:2011-10-8 9:25:00   [只看该作者]

你注意一下你的ARM平台是否选择正确。另外从提示信息来看,你可能没有加库文件到你的工程中。你找找相关的设置。

  单帖管理 | 引用 | 回复 回到顶部
EM9000用户
5楼


  发帖心情 Post By:2011-10-8 10:27:00   [只看该作者]

平台选的是EM9000(ARMV4I),前面就说了已经添加了光盘提供的em9000_crunch.lib,不知道还有那些库要添加?

  单帖管理 | 引用 | 回复 回到顶部
zxw
6楼


  发帖心情 Post By:2011-10-8 14:24:00   [只看该作者]

你用另外一个例程试试:光盘下的crunchdemo。
对于你所需要的那些算法,我们没有相关的代码,真对不起。

  单帖管理 | 引用 | 回复 回到顶部
EM9000用户
7楼


  发帖心情 Post By:2011-10-8 16:40:00   [只看该作者]

同样是下面这样一段主程序,当文件后缀是c时,可以编译通过,当后缀是cpp时,就会出现上面的错误。光盘给出的demo也都是c文件,是不是只能在c中才可以使用协处理器啊?可是我编程都是在MFC中,难道就用不了协处理器了?

#include 
#include 
#include "crunch.h"

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
float a,b,c;
a=5.123;
b=3.156;
c=em_add(a,b);
printf("%f\n",c);
c=em_sub(a,b);
printf("%f\n",c);
c=em_mult(a,b);
printf("%f\n",c);
while(1);

return 0;
}

  单帖管理 | 引用 | 回复 回到顶部
EM9000用户
8楼


  发帖心情 Post By:2011-10-8 16:43:00   [只看该作者]

上面这段程序前两个没显示出来的头文件是stdio.h和windows.h

  单帖管理 | 引用 | 回复 回到顶部
x10
9楼


  发帖心情 Post By:2011-10-9 8:50:00   [只看该作者]

现在我们已经提供了包括浮点计算和超越函数计算的浮点库,所以不再用em_xxx()这些函数了,对浮点计算,直接写算术表达式即可。光盘上的crunchdemo就是这样的一个例子。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

EM9000协处理器的使用问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: