应用SDK7.0生成的KERNEL跑一下之前代码发现有问题,而且问题是在浮点运算里面,不知道FAE的大牛们有没有好的建议?
如:double dValue = 3000000;
double test1 = log10(dValue);
dValue = 3000000000LU;
test2 = log10(dValue);
分别打印test1和test2是一个-0.000000和0.000000,这里非常奇怪,而且在老的SDK上代码没有问题。
我也确认过了kernel的组件里选择的浮点项目都是一样的
Steven Liu1:
这些在开发板上都测试过吗?结果是一样的?
能否分享一下你的测试代码还有可执行文件,比较方便复现问题。还有就是两个版本之间,一个好一个坏。能否提供一下好的log和坏的log,这样对比比较直观。
david hu1:
回复 Steven Liu1:
已发邮箱,这个附件里取也可以,
正确的结果如下:
dvalue = 3000000.000000,log10(dValue)=6.477121dValue = 3000000000.000000,log10(dValue)=9.477121dValue = 100.000000,log10(dValue)=2.000000
SDK7.0的系统里运算结果打印全是0
david hu1:
回复 david hu1:
找到原因了,跟编译链居然有关系,新的SDK得用新的编译链才行,用老的编译链才出现我所说的问题
Yaoming Qin:
回复 david hu1:
老的编译工具还没有打开硬件单元,另外,请您也注意命令行参数。
请参考 http://processors.wiki.ti.com/index.php/Sitara_Linux_SDK_GCC_Toolchain#Switch_to_Linaro
TI中文支持网