summaryrefslogtreecommitdiff
path: root/slides/ecc2011-klauser.nios2-linux.tex
diff options
context:
space:
mode:
Diffstat (limited to 'slides/ecc2011-klauser.nios2-linux.tex')
-rw-r--r--slides/ecc2011-klauser.nios2-linux.tex139
1 files changed, 128 insertions, 11 deletions
diff --git a/slides/ecc2011-klauser.nios2-linux.tex b/slides/ecc2011-klauser.nios2-linux.tex
index cd8697d..5903eef 100644
--- a/slides/ecc2011-klauser.nios2-linux.tex
+++ b/slides/ecc2011-klauser.nios2-linux.tex
@@ -7,6 +7,7 @@
\usetheme{Boadilla}
+\usepackage{epstopdf}
\usepackage{ngerman}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
@@ -32,7 +33,7 @@
% \setbeamercovered{dynamic}
}
-\logo{\includegraphics[width=2cm]{images/zhaw-logo.png}}
+\logo{\includegraphics[width=2cm]{images/ines-logo.png}}
\title{Linux auf dem Nios II Softcore Prozessor}
\subtitle{}
@@ -71,20 +72,19 @@
\section{Übersicht FPGA und Softcore Prozessoren}
-\begin{frame}
+\begin{frame}{FPGA und Softcore}
\begin{itemize}
\item Field Programmable Gate Array
\begin{itemize}
\item Chip-Logik (Gateware) wird in einer Beschreibungssprache (VHDL, Verilog) codiert
- \item Änderungen am Design relativ einfach
+ \item Änderungen am Design relativ einfach, Custom Systems
\item Parallelität
- \item Custom Systems
\end{itemize}
\item Softcore
\begin{itemize}
\item Prozessor innerhalb des FPGA implementiert
\item Fast immer Bestandteil eines System-on-a-Chip
- \item Konfigurierbar (z.B. mit oder ohne MMU), erweiterbar (z.B. Custom Instructions)
+ \item Konfigurierbar (z.B. MMU), erweiterbar (z.B. Custom Instructions)
\item Proprietär, herstellerabhängig: Nios II (Altera), MicroBlaze (Xilinx),
Cortex M1 (ARM)
\item Open-Source Softcores: Gaisler LEON, OpenRISC, LatticeMico32
@@ -92,13 +92,30 @@
\end{itemize}
\end{frame}
+\begin{frame}{Nios II}
+ \begin{itemize}
+ \item 32-bit RISC Softcore-Prozessorarchitektur für Altera FPGAs
+ \item 3 Basisvarianten:
+ \begin{itemize}
+ \item Economy (600-700 LEs)
+ \item Standard (1200-1400 LEs)
+ \item Fast (2600-3000 LEs)
+ \end{itemize}
+ \item Konfigurierbar mit oder ohne Memory Management Unit (MMU)
+ \item Optionale Hardware MUL/DIV Instruktionen, Custom Instructions
+ \item Peripherie (Timer, UART, Ethernet MAC, Flash Controller, \dots) als IP über SOPC
+ System konfigurierbar
+ \end{itemize}
+\end{frame}
+
\section{Übersicht Linux}
\begin{frame}{Wieso ein Betriebssystem?}
\begin{itemize}
\item Multi-Tasking, Multi-User
\item Memory Management, Memory Protection (MMU benötigt)
- \item TCP/IP
+ \item TCP/IP Stack
+ \item Filesysteme
\item Bestehende Software und Treiber
\end{itemize}
\end{frame}
@@ -109,26 +126,47 @@
Smartphones), Skalierbarkeit
\item Umfangreiches Software-Ökosystem, grosse Community
\item Einheitliche Entwicklungsumgebung (Unix-artig, POSIX-Standard)
- \item Portierungen auf zahlreiche (~30) Prozessor-Architekturen
- \item Niedrige Kosten
+ \item Portierungen auf zahlreiche ($\sim 30$) Prozessor-Architekturen
+ \item Niedrige Kosten, freie Lizenzen
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Embedded Linux}
+ \begin{columns}
+ \column{8cm}
+ \begin{itemize}
+ \item Linux Kernel als Kernkomponente eines Linux Systems
+ \item Libraries und Applikationen werden zusätzlich benötigt, um ein
+ komplettes System zu erhalten
+ \item Minimale Voraussetzungen:
+ \begin{itemize}
+ \item 32-bit Prozessor (mit oder ohne MMU)
+ \item unterstützte Toolchain (GCC, binutils, \dots)
+ \item libc (uClibc, eglibc)
+ \end{itemize}
\end{itemize}
+ \column{4.5cm}
+ \begin{center}
+ \includegraphics[width=0.8\textwidth]{images/tux.pdf}
+ \end{center}
+ \end{columns}
\end{frame}
\section{Linux auf dem Nios II}
\begin{frame}{Linux/uClinux auf dem Nios II}
\begin{itemize}
- \item Nios II: 32-bit Softcore-Prozessorarchitektur für Altera FPGAs
\item Linux unterstützt Nios II mit \emph{und} ohne MMU
\begin{itemize}
\item Erster Port von Microtronix für Nios II NOMMU
\item Separater Port von Wind River für Nios II MMU
\end{itemize}
\item Open Source Nios II Linux
+ (\href{http://www.alterawiki.com/wiki/Linux}{alterawiki.com/wiki/Linux})
\begin{itemize}
\item MMU und NOMMU Ports zusammengeführt
\item Anpassungen an aktuelle Linux Kernel Versionen
- \item Integration in Mainline (kernel.org) geplant
+ \item Integration in Mainline (\href{http://www.kernel.org}{kernel.org}) geplant
\end{itemize}
\item Kommerzielle Anbieter
\begin{itemize}
@@ -138,9 +176,88 @@
\end{itemize}
\end{frame}
+\begin{frame}{Development Workflow}
+ \begin{center}
+ \includegraphics[height=0.8\textheight]{images/design-flow.pdf}
+ \end{center}
+\end{frame}
+
+\begin{frame}[containsverbatim]{Linux Image}
+ \begin{itemize}
+ \item Kernel Image als ELF-Binary
+ \item Device Tree: Strukturierte Beschreibung der Hardware
+ \begin{itemize}
+ \item Bestandteil des Kernel Images
+ \item Optional in Flash (bedingt Verwendung von u-boot Bootloader)
+ \end{itemize}
+ \item Root Filesystem in einem \verb|initramfs| an Kernel angehängt
+ \item Keine Persistenz über Reboot hinweg
+ \begin{itemize}
+ \item Alternative: Root FS separat in Flash speichern
+ \item NFS (Network Filesystem) verwenden
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[containsverbatim]{Bootprozess - RAM}
+ \begin{enumerate}
+ \item Laden des FPGA-Bitstreams via JTAG
+ \item Laden des Linux Images via JTAG
+ \item ...
+ \item Beim Booten wird das \verb|initramfs| durch den Kernel ins RAM entpackt und
+ verwendet
+ \end{enumerate}
+\end{frame}
+
\section{Anwendungsbeispiele}
-\begin{frame}{Danke}
+\begin{frame}{Anwendungsbeispiel - Redundantes Kommunikationsnetzwerk}
+ \begin{columns}
+ \column{8cm}
+ \begin{itemize}
+ \item Ethernet-basiert, optional SHDSL
+ \item Parallel Redundancy Protocol
+ \item Software-Komponenten für SHDSL, Webserver, SNMP
+ \item Treiber für eigene IP-Komponenten
+ \end{itemize}
+ \column{4.5cm}
+ \begin{center}
+ \end{center}
+ \end{columns}
+\end{frame}
+
+\begin{frame}{Anwendungsbeispiel - Übertragung von HD-Videodaten}
+ \begin{itemize}
+ \item Gigabit-Ethernet
+ \item USB Host- und Device-Controller
+ \item Software-Komponenten für Session-Setup, Webserver
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Zusammenfassung}
+ \begin{columns}[t]
+ \column{0.5\textwidth}
+ \begin{itemize}
+ \item foo
+ \item bar
+ \item baz
+ \item quuz
+ \end{itemize}
+ \column{0.5\textwidth}
+ \begin{itemize}
+ \item foo
+ \item bar
+ \end{itemize}
+ \end{columns}
+\end{frame}
+
+\begin{frame}{Danke für Ihre Aufmerksamkeit}
+\begin{center}
+Tobias Klauser\\
+Institute of Embedded Systems\\
+Zürcher Hochschule für Angewandte Wissenschaften\\
+\href{mailto:klto@zhaw.ch}{klto@zhaw.ch}\\
+\end{center}
\end{frame}
\end{document}