`
ericbaner
  • 浏览: 177478 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ABI是什么?

 
阅读更多

http://computer.yourdictionary.com/abi

 

(Application Binary Interface) A specification for a specific hardware platform combined with the operating system. It is one step beyond the application program interface (API), which defines the calls from the application to the operating system. The ABI defines the API plus the machine language for a particular CPU family. An API does not ensure runtime compatibility, but an ABI does, because it defines the machine language, or runtime, format.

 


 


ABI,application binary interface,應用程式和作業系統的"low-level interface"。意思是,ABI有一套規則,如果遵循這個規則產生出的object,就能在相對應的系統上正確的運作。這個規則包括了data type的size,alignment,calling convention,function參數傳遞與回傳值,system call的調用等。很明顯的,這跟平台很有關係。比如說,不管用哪一個compiler,只要能生出符合ELF格式的binary,就可以在Linux上跑,或呼叫其library。


而EABI,embedded-application binary interface則規定了embedded software program的規則。跟一般的作業系統的主要差異為: 應用程式可以使用privileged instruction,dynamic linking不是required,更簡潔的stack frame用以省下memory。


而arm 的EABI有些改進,特別是floating point的運算。現在的arm應該都有實作FPA(Floating Point Accelerator),但如果compiler使用了FPU來做floting的運算,且CPU沒有FPU時,就會產生exception。其panelty會是將指令轉為software的floating運算,當然系統也就變慢了。所以支援EABI的kernel與Cross-compiler,加上支援有實作FPA的arm,performance就會好很多。


在lenny之後,就多了armel這個字,其與以前的arm差別就在於EABI這個interface。如前述,這個interface與硬體(CPU)的設計是很有關係的,對於arm不同的版本就會產生限制,因此EABI都常是建議在armv4t以後的版本。


在lenny之後,就多了armel這個字,其與以前的arm差別就在於EABI這個interface。如前述,這個interface與硬體(CPU)的設計是很有關係的,對於arm不同的版本就會產生限制,因此EABI都常是建議在armv4t以後的版本。

 

Why ARM's EABI matters

http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Why-ARMs-EABI-matters/

 

ABI wiki:

http://en.wikipedia.org/wiki/Application_binary_interface

 

 

  • 大小: 15 KB
分享到:
评论

相关推荐

    深入以太坊智能合约 ABI

    本文希望更多了解 ABI,如为什么需要 ABI?如何解读 Ethereum 的智能合约 ABI?以及如何取得合约的 ABI? 数字猫合约 ABI ABI(Application Binary Interface) 如果理解 API 就很容易了解 ABI。简单来说,API 是...

    ABI 7500 setup.exe

    ABI 7500 setup.exe

    MIPS o32 abi

    MIPS O32 abi是一种应用程序二进制接口(Application Binary Interface, ABI),它是针对MIPS RISC处理器的系统V兼容ABI的第三版补充。在MIPS架构中,ABI定义了一系列与编译器、汇编器、链接器以及其他软件工具相关的...

    ABI7500-2.0软件使用指南0223XIE教学内容.docx

    ABI7500-2.0 软件使用指南 ABI7500-2.0 软件是一款专业的生物信息学软件,用于分析和处理生物样本数据。本指南将指导用户如何正确使用 ABI7500-2.0 软件,完成实验设计、数据分析和结果解释。 一、软件安装和启动 ...

    cxx-abi文档

    CXX-ABI,全称是C++ Application Binary Interface,它是C++编程语言在不同编译器之间实现二进制兼容性的规范。这个标准文档详细定义了C++编译器如何生成和解析对象文件、库以及可执行程序中的二进制表示形式。CXX-...

    ABI7500说明书

    ABI7500的使用说明书,一般用于检测13种和14种HPV类型

    iamwwcposts#articles#32-ABI(Application Binary Interface)是什么?1

    比如,对于函数调用参数传递,C语言参数从右向左压栈,而Pascal与其相反C和Pascal编译器各自的标准也隐藏着却是如此(最终编译出来的ABI不兼容)C++编

    前端开源库-abi-decoder

    前端开源库-abi-decoderABI解码器、nodejs和javascript库,用于解码来自以太坊事务的数据参数和事件。”

    flutter_abi.zip

    `flutter build apk --split-per-abi` 是Flutter开发者在构建APK时常用的一个命令,它涉及到的是应用的 ABI(Application Binary Interface)分裂,这是为了让应用程序能够更高效地支持不同架构的设备。 ABI是应用...

    abi.zip_abi75 electron_electron abi_electronics_node abi 查询_怎么查

    "abi.zip_abi75 electron_electron abi_electronics_node abi 查询_怎么查"这个标题和描述提到了几个关键概念,包括ABI(Application Binary Interface)、Node.js、Electron以及它们之间的版本匹配问题。...

    x86_64 ABI

    ### x86_64 ABI 知识点详解 #### 一、引言 x86_64 ABI(Application Binary Interface),即x86_64架构的应用二进制接口,是为确保应用程序能够在x86_64处理器上正确运行而定义的一系列规则与标准。这些规则涉及...

    mips32位ABI标准

    MIPS32位ABI(Application Binary Interface)标准是指MIPS架构下的二进制接口规范,它是软件开发者编写汇编语言以及底层驱动程序时必须遵守的标准。ABI标准规定了不同的二进制接口规则,这些规则包括函数调用方式、...

    arm-gnu-abi接口手册

    《ARM-GNU-Linux ABI接口手册》:深入解析与扩展 **一、文档概览** 在探讨《ARM-GNU-Linux ABI接口手册》时,我们首先聚焦于文档本身及其核心内容。该手册由CodeSourcery LLC于2005年首次发布,旨在补充ARM架构的...

    IA32的C++ABI手册

    IA32的C++ABI手册 IA32的C++ABI手册

    Python库 | eth-abi-1.1.0.tar.gz

    首先,让我们了解什么是ABI。ABI是智能合约的接口定义,类似于传统软件开发中的API,但它是在字节码级别上定义的。ABI定义了合约的函数签名、参数类型以及返回值格式,使得开发者可以准确地调用合约方法并解析响应...

    ABI技术内幕,描述ABI接口技术

    在819-7054.pdf文档中,可能详细阐述了ABI技术的各个方面,包括ABI的定义、Android系统对ABI的支持、ABI与性能的关系、多ABI应用的构建方法以及如何在实际开发中充分利用ABI来提升应用的效率和用户体验。阅读这份...

    abi-compliance-checker_2.3.orig.tar.gz

    "abi-compliance-checker_2.3.orig.tar.gz" 是一个用于检查应用程序二进制接口(ABI)兼容性的工具的源代码压缩包。ABI是指操作系统、库或编程语言如何与软件进行低级别交互的标准,确保不同版本的软件能正确协同...

    PyPI 官网下载 | PyQt5-5.15.5-cp36-abi3-win32.whl

    - "abi3"代表应用程序二进制接口(ABI),意味着它是跨Python版本兼容的,符合Python的ABI标准。 - "win32"则表明这个版本是为32位Windows系统设计的。 **Python Wheel格式:** ".whl"文件是一种Python的二进制...

    使用web3j实现abi转java实现效果 智能合约地址 区块链地址和账户密钥

    使用web3j实现abi转java实现效果 智能合约地址 区块链地址和账户密钥

Global site tag (gtag.js) - Google Analytics