Here is an excellent doc.
Answer from zhigang on Stack OverflowTool chains have a loose name convention like arch [-vendor] [-os] - eabi
arch - refers to target architecture (which in our case is ARM) vendor - refers to toolchain supplier os - refers to the target operating system eabi - refers to Embedded Application Binary Interfacesome illustrations as follows :
- arm-none-eabi - This tool chain targets for ARM architecture, has no vendor, does not target an operating system and complies with the ARM EABI.
- arm-none-linux-gnueabi - This toolchain targets the ARM architecture, has no vendor, creates binaries that run on the Linux operating system, and uses the GNU EABI. It is used to target ARM-based Linux systems.
arm gcc toolchain as arm-elf or arm-none-eabi, what is the difference? - Stack Overflow
Whats "gcc-arm-none-eabi" toolchain ??
How to quickly determine arm-none-eabi-gcc flags for a stm32 board? - Stack Overflow
gnu arm - GNU Arm Embedded Toolchain | arm-none-eabi-gcc options: What is a difference between Thumb (-mthumb) and Arm (-marm) state? - Stack Overflow
Here is an excellent doc.
Tool chains have a loose name convention like arch [-vendor] [-os] - eabi
arch - refers to target architecture (which in our case is ARM) vendor - refers to toolchain supplier os - refers to the target operating system eabi - refers to Embedded Application Binary Interfacesome illustrations as follows :
- arm-none-eabi - This tool chain targets for ARM architecture, has no vendor, does not target an operating system and complies with the ARM EABI.
- arm-none-linux-gnueabi - This toolchain targets the ARM architecture, has no vendor, creates binaries that run on the Linux operating system, and uses the GNU EABI. It is used to target ARM-based Linux systems.
Each architecture or architecture/os couple has an ABI. The ABI (Application binary Interface) describes how functions should be called, syscalls numbers, arguments passed, which registers can be used ...
The abi describes how the compiler should generate the assembly.
If you use only assembler you don't need to care about the ABI.
arm-elf and arm-none-eabi just use two versions of the Arm ABI. The eabi toolchain uses a newer revision, but could also be called arm-elf-eabi, as it generates elf too.
gcc-arm-none-eabi toolchain, my major question is, why is it made and for what problem to solve ? before toolchains existed, what were the methods used to program a chip ??
also, who makes toolchains and how are they doing it ??