arm-linux-androideabi于arm-linux-gnueabi区别

arm-linux-androideabi于arm-linux-gnueabi区别,第1张

现在android的工程大部分是用clang编译,在之前的android工程主要是使用gcc,也就是arm-linux-androideabi-gcc,但是其他嵌入式系统使用的是arm-linux-gnueabi,那么这两个有什么区别呢? 能不能混用呢?

先说区别,根据linaro给的,主要有三处

1)There are a few differences between the Linux EABI and Android EABI definitions - most notably, Android defines the size of an enum to 32 bits while regular Linux defines it as variable.

2)Android does not currently use the hardfloat ABI conventions that have become common in regular Linux.

3)Android uses the Gold linker by default while the regular Linux builds default to using the BFD linker (this is for upstream compatibility - Android uses gold while most regular Linux distributions use the BFD linker).

翻译后是两者之前区别很少,主要有enum不一样,谷歌定义enum为32为,而其他的都定义为变量。android编译器使用的是softfp,而其他的使用的是hardfloat,如果使用linux-arm-gnueabi编译android工程的话,会出现“unrecognized option '-mfloat-abi=softfp'”就是指的这个,第三个是linker不同,这个应该好理解,android在bionic中定制了linker。

ARM-Linux嵌入式系统的基本组成:

1、bootloader:相当于PC机的 BIOS,用于引导基本 *** 作系统。

2、基本 Linux 系统,作用就不用多说了,就是应用软件的基础平台。

3、文件系统,作用就是用来管理嵌入式系统的存储空间。本来应该算 *** 作系统的一部分,但因为 Linux 源代码中有大量的文件系统支持部分(支持过百种文件系统),而嵌入式系统存储空间有限,只保留一种就可以了,因此这部分需要比较复杂的处理。

4、图形用户界面库,其作用是为应用程序提供图形环境。虽然它也可以算是 *** 作系统的一部分,但因嵌入式系统的特殊性往往要另外定制。这部分不是所有的嵌入式系统都需要。

5、设备驱动程序,其作用也无需多说。因为每一种嵌入式设备都可能有自己独特的设备,因此,需要为它开发驱动程序。

6、应用程序,其作用更加明了。比如,手机你至少需要有通讯处理的应用、数码相机你至少要用图像处理的应用、GPS你至少要有对接收到的导航卫星系统所发的信息进行处理的应用。

arm linux 就是 linux,只不过不是运行在通常的PC上,而是运行在 ARM 处理器环境,比如各种 arm 处理器的手机平板中运行的 android 系统,其内核就是 arm linux。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6179064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存