[VxWorks] vxWorks 6.2 中的浮点运算问题

lian   2008-5-20 18:12 楼主
CPU :AMCC-440EPx
操作系统 :VxWorks 6.2
开发环境 :WorkBench 2.4

当使用浮点运行时,结果不正确,在Config.h配置了以下内容:
#undef INCLUDE_SW_FP
#define INCLUDE_HW_FP
#define INCLUDE_FLOATING_POINT

AMCC-440EPx支持硬件浮点运算,但执行以下代码的结果不正确:

float f1=2.08;
double f2=0.34;
double f3=0.0;

f3=f1+f2;
printf("%f + %lf = %lf\n", f1, f2, f3);

结果是:0.00000000 + 0.00000000 = NaN

为什么?是原因造成的?

回复评论 (3)


taskSpawn()函数Create一个task的时候加入浮点的支持VX_FP_TASK,要不然taskSpawn()create出来的task进行浮点运算会出现异常!具体请查阅手册!
点赞  2008-5-20 23:03
检查一下bsp是否在sys.asm对浮点寄存器进行初始化???
点赞  2008-6-17 10:02
所有需要浮点数运算的task在taskSpanw的时候第三个参数都要加VX_FP_TASK。
点赞  2008-6-17 13:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复