EABI和OABI - 嵌入式开发
来源:互联网 发布:非科班出身的美工 编辑:程序博客网 时间:2024/06/05 02:44
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: 0x0
EABI:
* 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
- EABI和OABI - 嵌入式开发
- EABI和OABI - 嵌入式开发
- EABI和OABI
- 什么是OABI 和 EABI
- EABI和OABI
- OABI 和 EABI
- EABI和OABI
- 浅谈EABI和OABI
- EABI和OABI
- EABI和OABI
- EABI和OABI
- EABI和OABI
- 什么是OABI 和 EABI
- EABI和OABI
- ABI、OABI和EABI
- EABI和OABI
- 浅谈EABI和OABI
- EABI和OABI的区别
- javaEE动态代理解决乱码问题
- 对oo的抱怨
- 页面倒计时
- Linux 下用gdb单步调试多进程方法.
- JPA和Hibernate的关系
- EABI和OABI - 嵌入式开发
- 文件名命名规则
- 数据库表为纵表时转变为横表的设计方法
- 工具栏停靠控制详述
- 无光驱成功安装Windows Vista/Server2008/Windows7
- VbsEdit的QuickBundles功能演示
- Java 中"=="、equals、hashcode相关
- 十年经验教你如何学习嵌入式系统(基于AR-电子系统设计论坛)
- ios中几种截屏的办法