概述
1。什么是ABI ABI,application binary interface (ABI),应用程序二进制接口。 既然是 接口,那就是某两种东西之间的沟通桥梁,此处有这些种情况: A。应用程序 <-> 操作系统; B。应用程序 <-> (应用程序所用到的)库 C 。应用程序各个组件之间 类似于API的作用是使得程序的代码间的兼容,ABI目的是使得程序的二进制(级别)的兼容。 2。什么是OABI 和 EABI OABI中的O,表示“Old”,“Lagacy”,旧的,过时的,OABI就是旧的/老的ABI。 EABI中的E,表示“Embedded”,是一种新的ABI。 EABI有时候也叫做GNU EABI。 OABI和EABI都是专门针对ARM的CPU来说的。 3。EABI的好处 / 为何要用EABI A。支持软件浮点和硬件实现浮点功能混用 B。系统调用的效率更高 C。后今后的工具更兼容 D。软件浮点的情况下,EABI的软件浮点的效率要比OABI高很多。 4。OABI和EABI的区别 两种ABI在如下方面有区别: A。调用规则(包括参数如何传递及如何获得返回值) B。系统调用的数目以及应用程序应该如何去做系统调用 C。目标文件的二进制格式,程序库等 D。结构体中的 填充(padding/packing)和对齐。 E。 OABI: * ABI flags passed to binutils: -mabi=apcs-gnu -mfpu=fpa * gcc -dumpmachine: arm-unknown-linux * objdump -x for compiled binary: private flags = 2: [APCS-32] [FPA float format] [has entry point]* "file" on compiled Debian binary: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), for GNU/Linux 2.2.0, stripped* "readelf -h | grep Flags"" Flags: 0x0EABI: * ABI flags passed by gcc to binutils: -mabi=aapcs-linux -mfloat-abi=soft -meabi=4 * gcc -dumpmachine: arm-unknown-linux-gnueabi * objdump -x for compiled binary: private flags = 4000002: [Version4 EABI] [has entry point]* "file" on compiled binary (under Debian): ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.4.17, dynamically linked (uses shared libs), for GNU/Linux 2.4.17, stripped* "readelf -h | grep Flags"" Flags: 0x4000002, has entry point, Version4 EABI [参考] 1。ABI/EABI/OABI http://blog.csdn.net/hongjiujing/archive/2008/07/21/2686556.aspx 2。Why ARM's EABI Matters http://www.chineselinuxuniversity.net/articles/1255.shtml 3.[PDF] The new arm ABI (EABI) and Debian armel port 下载此文件 (29 个页面) 4ArmEabiPort http://wiki.debian.org/ArmEabiPort
【问答】 问:现在的ARM程序是不是都要选EABI ? 答:不一定。两者均可。只是eabi的性能好像是要好一些,具体细节不清楚。但是有点一定要注意的是,对于同一套系统,比如uboot,kernel,rootfs等等,编译器最好是用同一版本的,要么是oabi要么是eabi,否则不同版本的不同的东西混用,很容易出问题的。
转载自 http://bbs.chinaunix.net/thread-1950213-1-1.html |
最后
以上就是洁净蜻蜓为你收集整理的ABI、OABI和EABI的全部内容,希望文章能够帮你解决ABI、OABI和EABI所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复