arm-linux-gcc 4.3.3 Illegal instruction 及制作文件系统
时间:2010-10-11 来源:城市守望者
4.3.3这个编译器是带EABI的,也就是说具有突出的浮点预算性能,就是Float Point Performance,它使用Vector Float Point(矢量浮点),因此可以极大提高涉及到浮点运算的程序 。而现在手头既有6410又有2410,这个EABI对这两个处理器编译出来的程序有什么不同么?
一、预先了解它会做什么首先我们就先弄清楚它是什么(arm-linux-gcc 是自己做的软连接):
arm-linux-gcc --help 提示中有一个值得注意:
-print-libgcc-file-name Display the name of the compiler's companion library
这个告诉我们编译器使用的是哪个库,执行结果如下,从中我们可以知道其使用的是黯然mv4t版本的库,其实在/usr/local/arm/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/目录还有一套版本的库
arm-linux-gcc -print-libgcc-file-name
/usr/local/arm/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/armv4t/libgcc.a
执行下面命令可以看到编译器会搜索的目录,从结果可以看到既会搜索mv4t版本也会搜索更高版本的库。
arm-linux-gcc -print-search-dirs
首先看一下两个处理器的架构区别:
S3C2410/S3C2440,是ARM920T的核心,架构指令是armv4t
S3C6410 ARM1176JZF-S核心,是armv6架构