[FE training-materials-updates] Embedded Linux slides: update toolchains
Michael Opdenacker
michael.opdenacker at free-electrons.com
Sun Nov 8 15:11:21 CET 2015
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=e040a6313d1deeff3e329939953ce093437aad26
>---------------------------------------------------------------
commit e040a6313d1deeff3e329939953ce093437aad26
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date: Sun Nov 8 15:11:21 2015 +0100
Embedded Linux slides: update toolchains
- Linaro toolchains removed, not released in a predictable way,
lots of pages out of date
- CodeSourcery reduced
- Reference to page on elinux.org removed, way too obsolete
Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>
>---------------------------------------------------------------
e040a6313d1deeff3e329939953ce093437aad26
slides/sysdev-intro/sysdev-intro.tex | 24 +++----
slides/sysdev-toolchains-obtaining/linaro.png | Bin 5296 -> 0 bytes
.../sysdev-toolchains-obtaining.tex | 78 +++------------------
3 files changed, 21 insertions(+), 81 deletions(-)
diff --git a/slides/sysdev-intro/sysdev-intro.tex b/slides/sysdev-intro/sysdev-intro.tex
index be80169..50083a5 100644
--- a/slides/sysdev-intro/sysdev-intro.tex
+++ b/slides/sysdev-intro/sysdev-intro.tex
@@ -203,20 +203,18 @@
\begin{frame}
\frametitle{Processor and architecture (1)}
+ The Linux kernel and most other architecture-dependent
+ components support a wide range of 32 and 64 bits architectures
\begin{itemize}
- \item The Linux kernel and most other architecture-dependent
- components support a wide range of 32 and 64 bits architectures
- \begin{itemize}
- \item x86 and x86-64, as found on PC platforms, but also embedded systems
- (multimedia, industrial)
- \item ARM, with hundreds of different SoC (multimedia, industrial)
- \item PowerPC (mainly real-time, industrial applications)
- \item MIPS (mainly networking applications)
- \item SuperH (mainly set top box and multimedia applications)
- \item Blackfin (DSP architecture)
- \item Microblaze (soft-core for Xilinx FPGA)
- \item Coldfire, SCore, Tile, Xtensa, Cris, FRV, AVR32, M32R
- \end{itemize}
+ \item x86 and x86-64, as found on PC platforms, but also embedded systems
+ (multimedia, industrial)
+ \item ARM, with hundreds of different SoC (multimedia, industrial)
+ \item PowerPC (mainly real-time, industrial applications)
+ \item MIPS (mainly networking applications)
+ \item SuperH (mainly set top box and multimedia applications)
+ \item Blackfin (DSP architecture)
+ \item Microblaze (soft-core for Xilinx FPGA)
+ \item Coldfire, SCore, Tile, Xtensa, Cris, FRV, AVR32, M32R
\end{itemize}
\end{frame}
diff --git a/slides/sysdev-toolchains-obtaining/linaro.png b/slides/sysdev-toolchains-obtaining/linaro.png
deleted file mode 100644
index 0f7f553..0000000
Binary files a/slides/sysdev-toolchains-obtaining/linaro.png and /dev/null differ
diff --git a/slides/sysdev-toolchains-obtaining/sysdev-toolchains-obtaining.tex b/slides/sysdev-toolchains-obtaining/sysdev-toolchains-obtaining.tex
index bfd39da..62c1beb 100644
--- a/slides/sysdev-toolchains-obtaining/sysdev-toolchains-obtaining.tex
+++ b/slides/sysdev-toolchains-obtaining/sysdev-toolchains-obtaining.tex
@@ -27,81 +27,23 @@
\item Advantage: it is the simplest and most convenient solution
\item Drawback: you can't fine tune the toolchain to your needs
\end{itemize}
- \item Determine what toolchain you need: CPU, endianness, C library, component
- versions, ABI, soft float or hard float, etc.
- \item Check whether the available toolchains match your requirements.
+ \item Make sure the toolchain you find meets your requirements:
+ CPU, endianness, C library, component versions, ABI, soft float
+ or hard float, etc.
\item Possible choices
\begin{itemize}
- \item Sourcery CodeBench toolchains
- \item Linaro toolchains
\item Toolchains packaged by your distribution\\
- Ubuntu example: \code{sudo apt-get install gcc-arm-linux-gnueabi}
- \item More references at \url{http://elinux.org/Toolchains}
+ Ubuntu examples:\\
+ \code{sudo apt-get install gcc-arm-linux-gnueabi}\\
+ \code{sudo apt-get install gcc-arm-linux-gnueabihf}
+ \item Sourcery CodeBench toolchains, now only supporting MIPS,
+ NIOS-II, AMD64, Hexagon. Old versions with ARM support still
+ available through build systems (Buildroot...)
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
- \frametitle{Sourcery CodeBench}
- \begin{itemize}
- \item {\em CodeSourcery} was a company with extended expertise
- on free software toolchains. It has been bought by
- {\em Mentor Graphics}.
- \item They sell toolchains with support, but also provide a
- ”{\em Lite}” version, that is free and usable for commercial
- products
- \item They have toolchains available for
- \begin{itemize}
- \item MIPS
- \item NIOS-II
- \item AMD64
- \item Hexagon
- \end{itemize}
- \item They stopped support for ARM, PowerPC, SuperH, x86!
- \item Be sure to use the GNU/Linux versions. The EABI versions are
- for bare-metal development (no operating system)
- \end{itemize}
- {\small
-\url{http://mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/}}
-\end{frame}
-
-\begin{frame}
- \frametitle{Linaro toolchains}
- \begin{columns}
- \column{0.9\textwidth}
- \begin{itemize}
- \item Linaro contributes to improving mainline gcc on ARM, in
- particular by hiring CodeSourcery developers.
- \item For people who can't wait for the next releases of gcc, Linaro
- releases modified sources of stable releases of gcc, with these
- optimizations for ARM (mainly for recent Cortex A CPUs).
- \item As any gcc release, these sources can be used by build tools
- to build their own binary toolchains (Buildroot, OpenEmbedded...).
- This allows to support glibc, uClibc and eglibc.
- \item \small\url{https://wiki.linaro.org/WorkingGroups/ToolChain}\normalsize
- \end{itemize}
- \column{0.1\textwidth}
- \includegraphics[width=\textwidth]{slides/sysdev-toolchains-obtaining/linaro.png}
- \end{columns}
-\end{frame}
-
-\begin{frame}
- \frametitle{Installing and using a pre-compiled toolchain}
- \begin{itemize}
- \item Follow the installation procedure proposed by the vendor
- \item Usually, it is simply a matter of extracting a tarball
- wherever you want.
- \item Then, add the path to toolchain binaries in your \code{PATH}:\\
- \code{export PATH=/path/to/toolchain/bin/:$PATH}
- \item Finally, compile your applications\\
- \code{PREFIX-gcc -o foobar foobar.c}
- \item \code{PREFIX} depends on the toolchain configuration, and
- allows to distinguish cross-compilation tools from native
- compilation utilities
- \end{itemize}
-\end{frame}
-
-\begin{frame}
\frametitle{Toolchain building utilities}
Another solution is to use utilities that {\bf automate the process of
building the toolchain}
@@ -194,7 +136,7 @@ make install
\begin{itemize}
\item The cross compilation tool binaries, in \code{bin/}
\begin{itemize}
- \item This directory can be added to your \code{PATH} to ease
+ \item This directory should be added to your \code{PATH} to ease
usage of the toolchain
\end{itemize}
\item One or several {\em sysroot}, each containing
More information about the training-materials-updates
mailing list