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
为什么?是原因造成的?
taskSpawn()函数Create一个task的时候加入浮点的支持VX_FP_TASK,要不然taskSpawn()create出来的task进行浮点运算会出现异常!具体请查阅手册!
检查一下bsp是否在sys.asm对浮点寄存器进行初始化???
所有需要浮点数运算的task在taskSpanw的时候第三个参数都要加VX_FP_TASK。