将int转换为float会导致非法指令

时间:2014-08-27 15:32:25

标签: c floating-point embedded-linux

我正在使用运行Linux的MINI2440主板(S3C2440 CPU)。

我有这个工作:

double a=168.168;
printf("\nsqrt(%f)=%f\n", a, sqrt(a));

但是这导致了"非法指令" :

float a = 0.0;
int b = 1;
a = (float)b;

我无法将一个int转换为浮动..

我尝试添加/删除-msoft_float以及-D__GCC_FLOAT_NOT_NEEDED选项,但它不会改变任何内容..

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

搞定了......

我错过了指定-march = armv4t和-mtune = arm920t选项。

现在完美无缺,谢谢。