使用printf打印浮点值时的访问冲突

时间:2014-11-07 13:09:26

标签: floating-point embedded vxworks

当我尝试运行以下行时,我收到运行时访问冲突:

float x;
x = 29.600;
printf("%f", x);

这是CPP项目中的*.C文件,在内核空间中运行。 操作系统为vxworks 6.7

另一方面,整数值正在打印出来。 此外,如果它可能有帮助,浮动值将打印出一次。在完整应用程序的初始化期间。 任务有浮点支持,因此也不应该是问题。 在Windows平台/ MVCE

上,相同的代码段正常运行

关闭之前没有MVCE或显然正确的C代码:

此问题与嵌入式系统上的内核模式有关。 MVCE至少应该包含内核代码和所有内核开发环境参考。 同样在内核开发中,由于内核对性能改进的限制,因此某些完全正确的代码在上下文中会中断,这并不奇怪。

1 个答案:

答案 0 :(得分:1)

这对我有用:

在内核配置(项目浏览器)中,windriver工作台显式提供了添加浮点数学支持的选项,这解决了整个问题。