Eabi (Embedded Application binary Interface), binary interface of embedded applications.
AbiDefinition
Abi describes the underlying interfaces between applications and the operating system, between applications and libraries, and between application components. Abi allows compiled target code to run in a system compatible with Abi without any changes.
EabiSpecific Definition
There is a QA like this on codesourcery:
Https://support.codesourcery.com/GNUToolchain/kbentry32
Question
What
Is the abi for the ARM architecture? Is it the same as the arm Eabi?
Answer
The
Abi for the ARM architecture is a standard developed by arm and its partners
That explains how compilers, schedulers, linkers, and other similar tools
Shocould generate object files and executable files.
Tools
That correctly implement the abi for the ARM architecture can interoperate;
I. e., object files built with one toolchain can be combined with object files
Built with another toolchain if both compilers use the abi for the arm
Architecture and provided that the Code Compiled observes certain conventions.
Codesourcery
Was an active participant ipant in the design of the abi for the ARM architecture.
(In fact, the C ++ Abi used by arm is derived from the itanium C ++ Abi
Co-designed by codesourcery.) codesourcery continues to work with arm, Ltd.
Validate interoperability between sourcery g ++ and arm's proprietary tools.
The
"Arm Eabi" is an informal name for the abi for the ARM architecture.
The "arm Eabi" is
Informal name for the abi for the ARM architecture.
Here we mentionThe so-calledArm EabiYesForArmInformal name of the application binary interface of the Architecture.
In the infocenter of arm, you can find the relevant documents of ABI for the ARM architecture:
Http://infocenter.arm.com/help/index.jsp? Topic =/com.arm.doc. subset. swdev. Abi/index.html
"ForArmApplication binary interface of the Architecture(ABI)OfArmDocument Set. These interfaces includeArmProcedure Call Standard(APCs),Arm elf,Arm dwarfBasic PlatformAbi (bpabi),C ++ Abi, Exception HandlingAbi, RuntimeAbiAndCLibraryAbi."
The terms and abbreviations in the document include:
Aeabi (embedded) abi for the ARM architecture (this
Abi ...)
It is also confirmed that Eabi is the application binary interface for the ARM architecture.
EabiContent
Abi for the ARM architecture is a collection of many specifications:
Aadwarf dwarf
For the ARM architecture
Aaelf elf for the ARM architecture
Aapcs procedure call standard for the arm
Architecture
Addenda addenda
To, and errata in, the abi for the ARM architecture
Bpabi base platform abi for the ARM architecture
Bsabi abi for the ARM architecture (Base
Standard)
Clibabi C library abi for the ARM architecture
Cppabi C ++
Abi for the ARM architecture
Ehabi Exception Handling abi for the arm
Architecture
Ehegi Exception Handling component Specimen
Implementations
Rtabi run-time abi for the arm
Architecture
EabiFunction
The purpose of Eabi is to enable interoperability of binary files compiled by different compilers, such as codesourcery, rvct,
Rvds compilers. Libraries compiled according to the Eabi compiler can be linked to each other, so that software developers can use binary libraries that comply with the Eabi standards provided by different vendors in a hybrid manner.
The following content is from http://www.arm.com/community/software-enablement/linux.php? Language = ZH
"ArmHelpfulGNUCompiler project, which is trackedArmThe development of the architecture andArmHigh QualityGNUTool chain.
This toolchain supports allArmArchitecture and processor (includingThumb-2 instruction set and
ARM architecture 7th) And plans to support future processors and architectures.
The tool chain conforms to the latestARM application binary InterfaceThereforeArm realview development suiteOr meetAbiAny other tool chain interaction work. Users can use it together
ArmProvides commercial and professional tool chains to optimize code size and performance and code generated using open-source tools.
Available fromCodesourceryAccessGNUThe source code and preset version of the compiler. url:Http://www.codesourcery.com/gnu_toolchains/arm"
Of course, the Eabi performance will also improve compared with the previous Abi.
EabiCompared with the previousAbiImprovement
Differences
Between V1 and V2 of the abi for the ARM architecture list the differences between abi for the ARM architecture V1 and V2. Here abi for the ARM architecture V2 is Eabi, v1 is also called Old
Abi or lagacy Abi.EabiYes2005Compared with the previous"Old"In terms of time"Old"Now--So many of these so-called"Change"In fact, it is now a standard practice.For example, exception
Handling Abi improves floating point performance, 8-byte stack alignment, and structure packing.
GNU Eabi
In many places, there is the GNU Eabi statement. Is it a different Abi?
Or QA on codesourcery:
Http://www.codesourcery.com/sgpp/lite/arm/portal/kbentry38
Question
Why is the configuration name
GNU/Linux arm-None-Linux-gnueabi instead of just arm-None-Linux-Eabi? Is there
A gnu variant of the Eabi?
Answer
The
Free Software Foundation prefers that configuration names for GNU/Linux contain
Both the string Linux and the string GNU. The configuration arm-None-Linux-GNU
Refers to the legacy arm abi for GNU/Linux. Some tools depend on the fact that
Configuration names have at most three hyphens, so GNU and Eabi were combined
Into a single word.
The
Abi used on GNU/Linux is not a special GNU variant of the Eabi; it is just
Eabi.
GNU
Eabi is Eabi for the ARM architecture.
Related Materials
Debian wiki: armeabiport
Http://wiki.debian.org/ArmEabiPort/
FAQ about ARM architecture on codesourcery
Http://www.codesourcery.com/sgpp/lite/arm/portal/target_arch? @ Action = FAQ & target_arch = arm
Abi on Wikipedia
Http://en.wikipedia.org/wiki/Application_binary_interface
Csdn hongjiujing Summary: Abi/Eabi/oabi
Http://blog.csdn.net/hongjiujing/archive/2008/07/21/2686556.aspx
Improved floating point number performance by Eabi: Why arm's Eabi matters
Http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Why-ARMs-EABI-matters/