Concept of arm tool chain-Eabi

Source: Internet
Author: User



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
Arm
Provides 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/

 

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.