关于什么是ABI、EABI、OABI

2024-01-29 06:32
文章标签 abi eabi oabi

本文主要是介绍关于什么是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)和对齐。

这篇关于关于什么是ABI、EABI、OABI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656030

相关文章

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

Qlik数据集成 | Qlik 连续 14 年稳居 2024 Gartner® ABI Magic Quadrant™ 领导者

Qlik 再次当选 2024 年 Gartner® 分析和商业智能平台 Magic Quadrant™ 领导者! 近日,作为引领当今数据集成、数据质量和分析解决方案市场的行业领导者, Qlik 再次当选 2024 年 Gartner® 分析和商业智能平台 Magic Quadrant™ 领导者! 得益于 Qlik 在愿景完备性和执行能力方面的出色表现,这已经是 Qlik 第 14 年位居领导者象

区块链 ABI是什么

ABI是什么 ABI全称 Application Binary Interface,字面意思是应用程序二进制接口,可以通俗的理解为合约的接口说明,当合约被编译后,它对应的abi也就确定了。 abi有点类似于程序中的接口文档,描述了字段名称、字段类型、方法名称、参数名称、参数类型、方法返回值类型等 为什么需要ABI 我们编写智能合约的流程是: 编写合约代码(一般使用solidity

FISCO BCOS 控制台 console solidity合约编译工具 生成abi bin java文件

下载控制台 https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/console/console_of_java_sdk.html   # 若控制台版本小于v2.8.0,脚本sol2java.sh的使用方法如下:$ bash sol2java.sh -h# Compile Solidity Tool./s

ABI和API的区别

ABI和API的区别 ABI(Application Binary Interface): ABI是一种定义了二进制接口规范的概念,用于描述不同模块之间如何进行二进制交互。它定义了函数调用约定、参数传递方式、寄存器使用、内存布局等底层细节。ABI的目标是确保不同编译单元(如不同源文件、不同库)之间能够正确地进行链接和执行,以及确保二进制代码的兼容性。通常,ABI是针对特定的硬件和操作系统平台而

基于Android studio 2.2+ 向项目添加 C 和 C++ 代码并编译成so,指定ABI等全面的配置讲解

https://developer.android.com/studio/projects/add-native-code.html#existing-project 转自 http://blog.csdn.net/wl9739/article/details/52607010

合约ABI探秘

EOA使用ABI调用 合约之间使用接口调用 自己写ABI,自己写接口 ABI探秘 EOA使用的ABI数据与合约间调用时调用者持有的接口时等价的,都是对合约函数签名的完整描述调用者使用ABI数据生成message中的calldata message上下文的变化 合约之间的调用也模拟transaction的结构,并且叫message,变量名msg直接被外部账号调用使用的message可以认为

iOS 报错:!!! _NSLayoutTreeLineFragmentRectForGlyphAtIndex invalid glyph index libc++abi.dylib: termi

出现的场景: UITextView限制输入的字数 - (void)textViewDidChange:(UITextView *)textView { if (textView.text.length == 0) {_placeHolderLab.hidden = NO;}else{_placeHolderLab.hidden = YES;}if (textView.text.leng

Android Studio No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-

No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android 产生原因:新版本NDK更新记录中声: This version of the NDK is incompatible with the Android Gradle pluginversion 3.0 o

安装交叉编译器:EABI-4.3.3_EmbedSky_20100610.tar.bz2

TQ提供的交叉编译器中包含了用于制作各种文件系统镜像的工具集, 不需要再安装mkxxxximage_tools。 1.将EABI-4.3.3_EmbedSky_20100610.tar.bz2在/ 目录下解压:    tar xvf  EABI-4.3.3_EmbedSky_20100610.tar.bz2 -C / 解压后在/opt/EmbedSky下 得到 4.3.3 和 crosstool