关于什么是ABI、EABI、OABI

关于ABI 和EABI
codesourcery 公司提供的编译器是符合EABI 标准的编译器,我们公司的文件系统内容
就是基于该编译器制作生成的,因此使用老式的ABI 接口编译器如arm-linux-gcc 2.95.3 等编
译出的可执行文件,是不能在上面运行的。
关于ABI 和EABI 的描述,见下面的说明:
原文链接:
http://linux.chinaunix.net/bbs/thread-1143604-1-8.html
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)和对齐。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值