rasperry pi part 9

18
www.techvilla.org.in TECHVILLA www.techvilla.org. in

Upload: techvilla

Post on 18-Aug-2015

13 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Rasperry pi Part 9

wwwtechvillaorgin

TECHVILLA

wwwtechvillaorgin

wwwtechvillaorgin

ARM Processors and developement

Introduction to arm processor

Embedded development on arm

Toolchain

wwwtechvillaorgin

Which architecture is my processor

wwwtechvillaorgin

Embedded Processors

wwwtechvillaorgin

Application Processors

wwwtechvillaorgin

ARM Ltd

Originally part of a government sponsored IT programme to provide computers in schoolsndash The lsquoBBCrsquo computer Acorn then Archimedes

ARM founded in November 1990

ndash Spun out of Acorn Computers

Designs the ARM range of RISC processor cores Licenses ARM core designs to semiconductor partners who fabricate

and sell to their customers

ndash ARM does not fabricate silicon itself

Also develop technologies to assist with the design-in of the ARM architecture

ndash Software tools boards debug hardware application software bus architectures peripherals etc

wwwtechvillaorgin

Why ARM

1048576Leading provider of 32-bit embedded RISC microprocessors 75 of market

1048576Common architecture 1048576High performance 1048576Low power consumption 1048576Low system cost 1048576Solutions for

Embedded real-time systems for mass storage automotive industrial and networking applications

Secure applications ndash smartcards and SIMs 1048576Open platforms running complex operating systems

wwwtechvillaorgin

What is RISC

What is RISC

ndash Reduced instructions ndashfixed length

ndash Use of pipelines to breakdown and speed up processing

ndash Large number of registers ndash used as very fast onboard RAM

ndash Load-store architecture ndash must load and store from memory to register via special instructions

Overall faster simpler processer

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 2: Rasperry pi Part 9

wwwtechvillaorgin

ARM Processors and developement

Introduction to arm processor

Embedded development on arm

Toolchain

wwwtechvillaorgin

Which architecture is my processor

wwwtechvillaorgin

Embedded Processors

wwwtechvillaorgin

Application Processors

wwwtechvillaorgin

ARM Ltd

Originally part of a government sponsored IT programme to provide computers in schoolsndash The lsquoBBCrsquo computer Acorn then Archimedes

ARM founded in November 1990

ndash Spun out of Acorn Computers

Designs the ARM range of RISC processor cores Licenses ARM core designs to semiconductor partners who fabricate

and sell to their customers

ndash ARM does not fabricate silicon itself

Also develop technologies to assist with the design-in of the ARM architecture

ndash Software tools boards debug hardware application software bus architectures peripherals etc

wwwtechvillaorgin

Why ARM

1048576Leading provider of 32-bit embedded RISC microprocessors 75 of market

1048576Common architecture 1048576High performance 1048576Low power consumption 1048576Low system cost 1048576Solutions for

Embedded real-time systems for mass storage automotive industrial and networking applications

Secure applications ndash smartcards and SIMs 1048576Open platforms running complex operating systems

wwwtechvillaorgin

What is RISC

What is RISC

ndash Reduced instructions ndashfixed length

ndash Use of pipelines to breakdown and speed up processing

ndash Large number of registers ndash used as very fast onboard RAM

ndash Load-store architecture ndash must load and store from memory to register via special instructions

Overall faster simpler processer

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 3: Rasperry pi Part 9

wwwtechvillaorgin

Which architecture is my processor

wwwtechvillaorgin

Embedded Processors

wwwtechvillaorgin

Application Processors

wwwtechvillaorgin

ARM Ltd

Originally part of a government sponsored IT programme to provide computers in schoolsndash The lsquoBBCrsquo computer Acorn then Archimedes

ARM founded in November 1990

ndash Spun out of Acorn Computers

Designs the ARM range of RISC processor cores Licenses ARM core designs to semiconductor partners who fabricate

and sell to their customers

ndash ARM does not fabricate silicon itself

Also develop technologies to assist with the design-in of the ARM architecture

ndash Software tools boards debug hardware application software bus architectures peripherals etc

wwwtechvillaorgin

Why ARM

1048576Leading provider of 32-bit embedded RISC microprocessors 75 of market

1048576Common architecture 1048576High performance 1048576Low power consumption 1048576Low system cost 1048576Solutions for

Embedded real-time systems for mass storage automotive industrial and networking applications

Secure applications ndash smartcards and SIMs 1048576Open platforms running complex operating systems

wwwtechvillaorgin

What is RISC

What is RISC

ndash Reduced instructions ndashfixed length

ndash Use of pipelines to breakdown and speed up processing

ndash Large number of registers ndash used as very fast onboard RAM

ndash Load-store architecture ndash must load and store from memory to register via special instructions

Overall faster simpler processer

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 4: Rasperry pi Part 9

wwwtechvillaorgin

Embedded Processors

wwwtechvillaorgin

Application Processors

wwwtechvillaorgin

ARM Ltd

Originally part of a government sponsored IT programme to provide computers in schoolsndash The lsquoBBCrsquo computer Acorn then Archimedes

ARM founded in November 1990

ndash Spun out of Acorn Computers

Designs the ARM range of RISC processor cores Licenses ARM core designs to semiconductor partners who fabricate

and sell to their customers

ndash ARM does not fabricate silicon itself

Also develop technologies to assist with the design-in of the ARM architecture

ndash Software tools boards debug hardware application software bus architectures peripherals etc

wwwtechvillaorgin

Why ARM

1048576Leading provider of 32-bit embedded RISC microprocessors 75 of market

1048576Common architecture 1048576High performance 1048576Low power consumption 1048576Low system cost 1048576Solutions for

Embedded real-time systems for mass storage automotive industrial and networking applications

Secure applications ndash smartcards and SIMs 1048576Open platforms running complex operating systems

wwwtechvillaorgin

What is RISC

What is RISC

ndash Reduced instructions ndashfixed length

ndash Use of pipelines to breakdown and speed up processing

ndash Large number of registers ndash used as very fast onboard RAM

ndash Load-store architecture ndash must load and store from memory to register via special instructions

Overall faster simpler processer

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 5: Rasperry pi Part 9

wwwtechvillaorgin

Application Processors

wwwtechvillaorgin

ARM Ltd

Originally part of a government sponsored IT programme to provide computers in schoolsndash The lsquoBBCrsquo computer Acorn then Archimedes

ARM founded in November 1990

ndash Spun out of Acorn Computers

Designs the ARM range of RISC processor cores Licenses ARM core designs to semiconductor partners who fabricate

and sell to their customers

ndash ARM does not fabricate silicon itself

Also develop technologies to assist with the design-in of the ARM architecture

ndash Software tools boards debug hardware application software bus architectures peripherals etc

wwwtechvillaorgin

Why ARM

1048576Leading provider of 32-bit embedded RISC microprocessors 75 of market

1048576Common architecture 1048576High performance 1048576Low power consumption 1048576Low system cost 1048576Solutions for

Embedded real-time systems for mass storage automotive industrial and networking applications

Secure applications ndash smartcards and SIMs 1048576Open platforms running complex operating systems

wwwtechvillaorgin

What is RISC

What is RISC

ndash Reduced instructions ndashfixed length

ndash Use of pipelines to breakdown and speed up processing

ndash Large number of registers ndash used as very fast onboard RAM

ndash Load-store architecture ndash must load and store from memory to register via special instructions

Overall faster simpler processer

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 6: Rasperry pi Part 9

wwwtechvillaorgin

ARM Ltd

Originally part of a government sponsored IT programme to provide computers in schoolsndash The lsquoBBCrsquo computer Acorn then Archimedes

ARM founded in November 1990

ndash Spun out of Acorn Computers

Designs the ARM range of RISC processor cores Licenses ARM core designs to semiconductor partners who fabricate

and sell to their customers

ndash ARM does not fabricate silicon itself

Also develop technologies to assist with the design-in of the ARM architecture

ndash Software tools boards debug hardware application software bus architectures peripherals etc

wwwtechvillaorgin

Why ARM

1048576Leading provider of 32-bit embedded RISC microprocessors 75 of market

1048576Common architecture 1048576High performance 1048576Low power consumption 1048576Low system cost 1048576Solutions for

Embedded real-time systems for mass storage automotive industrial and networking applications

Secure applications ndash smartcards and SIMs 1048576Open platforms running complex operating systems

wwwtechvillaorgin

What is RISC

What is RISC

ndash Reduced instructions ndashfixed length

ndash Use of pipelines to breakdown and speed up processing

ndash Large number of registers ndash used as very fast onboard RAM

ndash Load-store architecture ndash must load and store from memory to register via special instructions

Overall faster simpler processer

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 7: Rasperry pi Part 9

wwwtechvillaorgin

Why ARM

1048576Leading provider of 32-bit embedded RISC microprocessors 75 of market

1048576Common architecture 1048576High performance 1048576Low power consumption 1048576Low system cost 1048576Solutions for

Embedded real-time systems for mass storage automotive industrial and networking applications

Secure applications ndash smartcards and SIMs 1048576Open platforms running complex operating systems

wwwtechvillaorgin

What is RISC

What is RISC

ndash Reduced instructions ndashfixed length

ndash Use of pipelines to breakdown and speed up processing

ndash Large number of registers ndash used as very fast onboard RAM

ndash Load-store architecture ndash must load and store from memory to register via special instructions

Overall faster simpler processer

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 8: Rasperry pi Part 9

wwwtechvillaorgin

What is RISC

What is RISC

ndash Reduced instructions ndashfixed length

ndash Use of pipelines to breakdown and speed up processing

ndash Large number of registers ndash used as very fast onboard RAM

ndash Load-store architecture ndash must load and store from memory to register via special instructions

Overall faster simpler processer

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 9: Rasperry pi Part 9

wwwtechvillaorgin

ARM Architecture

Based on the Berkeley RISC machinendash Fixed length instructionsndash Pipe linesndash Loadstore architecture

The ARM is a 32-bit architecture

When used in relation to the ARMndash Byte means 8 bitsndash Halfword means 16 bits (two bytes)ndash Word means 32 bits (four bytes)

Most ARMrsquos implement two instruction setsndash 32-bit ARM Instruction Setndash 16-bit Thumb Instruction Set

Jazelle cores can also execute Java bytecode

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 10: Rasperry pi Part 9

wwwtechvillaorgin

ARM and RISC

The ARM processors have many features in common with RISC chips ndash but is not pure RISCndash Uses variable cycle instructionsndash In-line barrel shifter leads to complex instructionsndash Thumb mode ndash a 16 bit extension to ARM assemblerndash Conditional execution of instructionsndash Enhanced instructions ndash ie DSP instructions

ARM processors are well adapted to embedded low power and mobile solutions

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 11: Rasperry pi Part 9

wwwtechvillaorgin

Toolchains

A toolchain is a set of distinct software development tools that are linked (or chained) together by specific stages such as GCC binutils and glibc (a portion of the GNU Toolchain)

Optionally a toolchain may contain other tools such as a Debugger or a Compiler for a specific programming language such as C++

the toolchain used for embedded development is a cross toolchain or more commonly known as a cross compiler

All the programs (like GCC) run on a host system of a specific architecture (such as x86) but produce binary code (executables) to run on a different architecture (eg ARM) This is called cross compilation and is the typical way of building embedded software

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 12: Rasperry pi Part 9

wwwtechvillaorgin

Toolchain

the build machine on which the toolchain is built

the host machine on which the toolchain is executed

the target machine for which the toolchain generates code

Four different types of toolchain building processes

A native toolchain as can be found in normal Linux distributions has usually been compiled on x86 runs on x86 and generates code for x86

A cross-compilation toolchain which is the most interesting toolchain type for embedded development is typically compiled on x86 runs on x86 and generates code for the target architecture (eg ARM)

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 13: Rasperry pi Part 9

wwwtechvillaorgin

Toolchain(contd)

A cross-native toolchain is a toolchain that has been built on x86 but runs on your target architecture and generates code for your target architecture Its typically needed when you want a native gcc on your target platform without building it on your target platform

A canadian build is the process of building a toolchain on machine A so that it runs on machine B and generates code for machine C Its usually not really necessary

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 14: Rasperry pi Part 9

wwwtechvillaorgin

Toolchain components

Binutils

The GNU Binutils are the first component of a toolchain The GNU Binutils contains two very important tools

as the assembler that turns assembly code (generated by gcc) to binary

ld the linker that links several object code into a library or an executable

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 15: Rasperry pi Part 9

wwwtechvillaorgin

C C++ Java Ada Fortran Objective-C compiler

The second major component of a toolchain is the compiler

In the embedded Linux the only realistic solution today is GCC the GNU Compiler Collection

Nowadays as input it not only supports C but also C++ Java Fortran Objective-C and Ada

As output it supports a very wide range of architectures

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 16: Rasperry pi Part 9

wwwtechvillaorgin

C library

The C library implements the traditional POSIX API that can be used to develop userspace applications It interfaces with the kernel through system calls and provides higher-level services

glibc is the C library from the GNU project Its the C library used by virtually all desktop and server GNULinux systems Its feature-full portable complies to standards but a bit bloated

The C library has a special relation with the C compiler choice of the C library must be done when the toolchain is generated

Once the toolchain has been built it is no longer possible to switch to another library

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 17: Rasperry pi Part 9

wwwtechvillaorgin

Compilerassembler toolchain

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps
Page 18: Rasperry pi Part 9

wwwtechvillaorgin

Installation steps

Open terminal and type following commands

Sudo apt-get install binutils-arm-none-eabi libc6 binutils gcc gdb

  • TECHVILLA
  • ARM Processors and developement
  • Which architecture is my processor
  • Embedded Processors
  • Application Processors
  • ARM Ltd
  • Why ARM
  • What is RISC
  • ARM Architecture
  • ARM and RISC
  • Toolchains
  • Toolchain
  • Toolchain(contd)
  • Toolchain components
  • C C++ Java Ada Fortran Objective-C compiler
  • C library
  • Compilerassembler toolchain
  • Installation steps