官术网_书友最值得收藏!

Introducing toolchains

A toolchain represents a compiler and its associated utilities that are used with the purpose of producing kernels, drivers, and applications necessary for a specific target. A toolchain usually contains a set of tools that are usually linked to each other. It consists of gcc, glibc, binutils, or other optional tools, such as a debugger optional compiler, which is used for specific programming languages, such as C++, Ada, Java, Fortran, or Objective-C.

Usually a toolchain, which is available on a traditional desktop or server, executes on these machines and produces executables and libraries that are available and can run on the same system. A toolchain that is normally used for an embedded development environment is called is a cross toolchain. In this case, programs, such as gcc, run on the host system for a specific target architecture, for which it produces a binary code. This whole process is referred to as cross-compilation, and it is the most common way to build sources for embedded development.

In a toolchain environment, three different machines are available:

  • The build machine that represents the machine on which the toolchain was created
  • The host machine that represents the machine on which the toolchain is executed
  • The target machine that represents the machine that the toolchain produces a binary code for

These three machine are used to generate four different toolchain build procedures:

  • A native toolchain: This is usually available on a normal Linux distribution or on your normal desktop system. This is usually compiled and run, and generates code for the same architecture.
  • A cross-native toolchain: This represents a toolchain built on one system, though it runs and produces a binary code for the target system. A normal use case is when a native gcc is needed on the target system without building it on the target platform.
  • A cross-compilation toolchain: This is the most widespread toolchain type used for embedded development. It is compiled and run on an architecture type, usually x86, and produces a binary code for the target architecture.
  • A cross-canadian build: This represents a process that involves building a toolchain on system A. This toolchain is then run on another system, such as B, which produces a binary code for a third system, called C. This is one of the most underused build processes.

The three machines that generate four different toolchain build procedures is described in the following diagram:

Toolchains represent a list of tools that make the existence of most of great projects available today possible. This includes open source projects as well. This persity would not have been possible without the existence of a corresponding toolchain. This also happens in the embedded world where newly available hardware needs the components and support of a corresponding toolchain for its Board Support Package (BSP).

Toolchain configuration is no easy process. Before starting the search for a prebuilt toolchain, or even building one yourself, the best solution would be to check for a target specific BSP; each development platform usually offers one.

主站蜘蛛池模板: 错那县| 新安县| 海宁市| 临湘市| 阿坝| 凉城县| 大连市| 平南县| 冷水江市| 夏津县| 偃师市| 孟津县| 壤塘县| 鄂尔多斯市| 易门县| 都江堰市| 安丘市| 长治县| 惠东县| 武隆县| 进贤县| 建昌县| 华阴市| 鲁甸县| 措美县| 崇左市| 玉溪市| 六安市| 靖州| 武定县| 申扎县| 阿合奇县| 红桥区| 镇康县| 雷波县| 霸州市| 安阳县| 新和县| 营山县| 海城市| 桐梓县|