Skip to content
Snippets Groups Projects
Commit 4cbcc123 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

initial revision

parents
Branches 2015ss
No related tags found
No related merge requests found
Showing
with 1701 additions and 0 deletions
File added
src/csa2.jpg

3.04 MiB

% es-20150402.pdf - Lecture Slides on Software Development for Embedded Systems
% Copyright (C) 2013, 2014, 2015 Peter Gerwinski
%
% This document is free software: you can redistribute it and/or
% modify it either under the terms of the Creative Commons
% Attribution-ShareAlike 3.0 License, or under the terms of the
% GNU General Public License as published by the Free Software
% Foundation, either version 3 of the License, or (at your option)
% any later version.
%
% This document is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this document. If not, see <http://www.gnu.org/licenses/>.
%
% You should have received a copy of the Creative Commons
% Attribution-ShareAlike 3.0 Unported License along with this
% document. If not, see <http://creativecommons.org/licenses/>.
\documentclass[10pt,t]{beamer}
\usepackage{pgslides}
\usepackage{rotating}
\title{Software-Entwicklung fr eingebettete Systeme}
\author{Prof.\ Dr.\ Peter Gerwinski}
\date{26.\ Mrz 2015}
\begin{document}
\begin{frame}[plain]
\vspace*{8cm}
% \begin{picture}(0,0)
% \put(0,-0.39){\mbox{\Large\bf\color{gray}Eingebettete Systeme}}
% \end{picture}%
\begin{picture}(0,0)
\put(12.3,8.0){\makebox(0,0)[tr]{\LARGE\bf\color{gray}\shortstack[r]{%
{\normalsize Software-Entwicklung fr}\\[0.5ex]
Eingebettete\\Systeme\\[2ex]
\includegraphics[width=4.3cm]{logo-hochschule-bochum.pdf}}}}
%\put(9.5,5.05) % zum Vergleich
\put(0.0,8.0){\makebox(0,0)[tl]{\includegraphics[width=2.87cm]{logo-hochschule-bochum-cvh-text.pdf}}}
\end{picture}%
% \pause
\begin{picture}(-0.3,-0.5)
\put(-0.2,0){\includegraphics[width=4cm]{intermec-ck1b.jpg}}
\end{picture}%
% \pause
% \begin{picture}(0,0)
% \put(6,4.0){\includegraphics[width=4cm]{rp6.jpg}}
% \end{picture}%
% \pause
\begin{picture}(0,0)
\put(3.8,3.3){\includegraphics[width=4cm]{ez430-chronos-2.jpg}}
\end{picture}%
% \pause
% \begin{picture}(0,0)
% \put(0,4.3){\includegraphics[width=5cm]{beagleboard-2420765852_063c30160b_b-660x507.jpg}}
% \end{picture}%
% \pause
% \begin{picture}(0,0)
% \put(0,1.5){\includegraphics[width=6cm]{mr-pi.jpg}}
% \end{picture}%
% \pause
% \begin{picture}(0,0)
% \put(5,5){\includegraphics[width=6cm]{fap-dsc_7013.jpg}}
% \end{picture}%
% \pause
\begin{picture}(0,0)
\put(6.1,-0.7){\includegraphics[width=6cm]{csa2.jpg}}
\end{picture}
\begin{picture}(0,0)
\put(0.2,-0.7){\makebox(0,0)[bl]{\bf\color{gray}\shortstack[l]{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski\\2.\ April 2015}}}
\end{picture}
%mr-pi.jpg
%430_chronos.jpg
%avr-net-io-gross.jpg
%csa2.jpg
%es-20120111.tex
%fap-dsc_7013.jpg
%hi_earth_eZ430_chronos.jpg
%intermec-ck1b.jpg
\end{frame}
\section{Einfhrung}
\begin{frame}
\showsection
% \pause
\begin{itemize}
\item
Projektaufgabe:\\
Eingebettetes System eigener Wahl zum Laufen bringen
% \pause
\arrowitem
Projektaufgabe berlegen
\end{itemize}
\bigskip
% \pause
Beispiele:
\begin{itemize}
\item Motorsteuerung fr Rasenmhroboter
\item Differential GPS
\item 3d-Indoor-Positioning-System fr Quadrocopter
\item LCD-Steuerung fr Lichtschranken-Mestrecke fr Physik-Praktikum
\item Verbesserungen an Flugzeugkabinensimulatoren
\item Scheibenwischersteuerung
\item Haus-Informationssystem zeigt Anrufer an
\item \dots
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{itemize}
\item
Hier wird programmiert.
\begin{picture}(0,0)
\put(2.8,-0.5){\makebox(0,0){%
\begin{rotate}{10}
\textbf{Projektaufgabe berlegen!}
\end{rotate}}}
\end{picture}
% \pause
\item
Richtig programmiert.\\
% \pause
\begin{itemize}\itemsep2pt
\item
Quantitt: hoher Zeitanteil, hohe Komplexitt
% \pause
\item
Qualitt: robust, wartbar\\[2pt]
Good Code: \url{http://www.xkcd.com/844/}
\end{itemize}
\end{itemize}
\end{frame}
\subsectionnonumber{Fahrplan}
\begin{frame}
\showsection
\begin{itemize}
\item
Hier wird programmiert.
\item
Richtig programmiert.
\end{itemize}
\vspace{1.5\medskipamount}
\showsubsectionnonumber
\vspace{-1.5\medskipamount}
\begin{enumerate}\itemsep\bigskipamount
\item
\begin{itemize}\itemsep2pt
\item
Programmieren fr Fortgeschrittene\\
(in C und evtl.\ anderen Sprachen)
\item
Entwicklungswerkzeuge fr Fortgeschrittene\\
(z.\,B.\ Festplatten spiegeln)
\item
parallel: Durchfhrung der Projektaufgaben
\end{itemize}
\item
Durchfhrung und Prsentation der Projektaufgaben
% \pause
\item
Exkursionen
\begin{picture}(0,0)(3,0)
\put(9.5,4){\includegraphics[width=2cm]{lft.png}}
\put(10,1.5){\includegraphics[width=2.3cm]{tfc.png}}
\end{picture}
\end{enumerate}
\end{frame}
\section{Arrays und Zeiger fr Fortgeschrittene}
\begin{frame}[fragile]
\showsection
\pause
\begin{minipage}[t]{6cm}
Array:
\smallskip
\begin{lstlisting}[gobble=6]
char a[] = "Test";
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}[t]{6cm}
Zeiger:
\smallskip
\begin{lstlisting}[gobble=6]
char *p = "Test";
\end{lstlisting}
\end{minipage}
\pause
\bigskip
\begin{itemize}
\item
In beiden Fllen wird ein Array von ganzen Zahlen\\
(5 \lstinline{char}-Variable mit den Werten 84, 101, 115, 116 und 0)\\
im Speicher angelegt.
\pause
\medskip
\item
Links heit das Array \lstinline{a};
rechts ist es "`anonym"'.
\item
Rechts wird zustzlich ein Zeiger \lstinline{p} im Speicher angelegt,\\
der auf das (anonyme) Array zeigt.
\pause
\medskip
\item
\lstinline{&a} ist dasselbe wie \lstinline{a},
nmlich die Adresse des Arrays.
\item
\lstinline{&p} ist die Adresse des Zeigers.
\item
\lstinline{p} ist der Wert des Zeigers,\\
momentan also die Adresse des (anonymen) Arrays.
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{minipage}[t]{7cm}
Array:
\smallskip
\begin{lstlisting}[gobble=6]
char *a[] = { "Dies", "ist", "ein", "Test" };
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}[t]{5cm}
Zeiger:
\smallskip
\begin{lstlisting}[gobble=6]
char **p = a;
\end{lstlisting}
\end{minipage}
\pause
\bigskip
\begin{itemize}
\item
Array von Zeigern auf \lstinline{char}-Variable
\item
Zeiger auf das Array = Zeiger auf Zeiger auf \lstinline{char}-Variable
\item
Schleife durch ueres Array mit \lstinline{p++} mglich
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{minipage}[t]{7cm}
Array:
\smallskip
\begin{lstlisting}[gobble=6]
char a[][5] = { "Dies", "ist", "ein", "Test" };
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}[t]{5cm}
Zeiger:
\smallskip
\begin{lstlisting}[gobble=6]
char *p = a[0];
\end{lstlisting}
\end{minipage}
\pause
\bigskip
\begin{itemize}
\item
zweidimensionales Array von \lstinline{char}-Variablen
\item
Zeiger auf Array-Komponente\\
= Zeiger auf eindimensionales Array\\
= Zeiger auf \lstinline{char}-Variable
\item
Schleife durch ueres Array mit Zeiger-Arithmetik nicht mglich
\end{itemize}
\pause
\begin{picture}(0,0)
\color{red}
\thicklines
\put(8.6,0.7){\line(1,0){0.9}}
\put(9.05,0.4){\makebox(0,0)[t]{$\overbrace{\mbox{nur mit Trick:
\lstinline{p += 5}}}$}}
\end{picture}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{lstlisting}
typedef char string5[5];
string5 a[] = { "Dies", "ist", "ein", "Test" };
string5 *p = a;
\end{lstlisting}
\pause
\bigskip
\begin{itemize}
\item
Array von Array von \lstinline{char}-Variablen\\
= zweidimensionales Array von \lstinline{char}-Variablen
\item
Zeiger auf zweidimensionales Array
\item
Schleife durch ueres Array mit \lstinline{p++} mglich
\pause
\bigskip
\arrowitem
Fazit:\\
Ein Hoch auf \lstinline{typedef}!
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{lstlisting}
typedef char string5[5];
string5 *p = { "Dies", "ist", "ein", "Test" };
\end{lstlisting}
\pause
\bigskip
\begin{itemize}
\item
anonymes Array von Array von \lstinline{char}-Variablen\\
= anonymes zweidimensionales Array von \lstinline{char}-Variablen
\item
Zeiger auf zweidimensionales Array
\item
Schleife durch ueres Array mit \lstinline{p++} mglich
\end{itemize}
\begin{picture}(0,0)(-2,-0.4)
\color{red}
\thicklines
\put(0,0){\line(2,1){4}}
\put(0,2){\line(2,-1){4}}
\end{picture}
Das Konstrukt \lstinline|{ "Dies", "ist", "ein", "Test" }|\\
steht fr ein Array von 4 Zeigern auf \lstinline{char}-Variable.
\smallskip
\lstinline{string5 *p} hingegen erwartet einen Zeiger auf ein Array
von 5 \lstinline{char}-Variablen.
\smallskip
Es bekommt die Adresse von \lstinline{"Dies"} zugewiesen.
\smallskip
Durch das Erhhen von \lstinline{p} (um 5) zeigt es danach
\emph{zufllig\/} auf das \lstinline{"ist"}.
Bei nochmaligem Erhhen zeigt es auf das \lstinline{"in"} von \lstinline{"ein"}.
\smallskip
(Auch ohne Optimierung werden die Strings \lstinline{"ist"}, \lstinline{"ein"}
und \lstinline{"Test"}\\
u.\,U.\ wegoptimiert.)
\end{frame}
\sectionnonumber{Aufgaben}
\begin{frame}[c]
\showsectionnonumber
\begin{description}
\item[Aufgabe 1:]
Sieb des Eratosthenes\\[\smallskipamount]
mglichst viele Primzahlen berechnen
% \\[\medskipamount]
% \textarrow\ Erledigt.
\bigskip
\item[Aufgabe 2:]
Kalender\\[\smallskipamount]
Jahreszahl eingeben,\\
Kalender mit Feiertagen ausgeben
\medskip
Hinweis: "`Osterformel"'
\end{description}
\end{frame}
\iffalse
\section{Dynamischer Speicher}
\subsection{malloc() und free()}
\begin{frame}[fragile]
\showsection
\showsubsection
\begin{lstlisting}
#include <stdlib.h>
char *s = malloc (42) * sizeof (char);
\end{lstlisting}
\begin{itemize}
\item
Reserviere \newterm{zur Laufzeit\/} Speicherplatz
fr 42 \lstinline{char}-Variable
\item
Wenn die Speicheranforderung fehlschlgt, erhalten wir \lstinline{NULL}.
\item
\lstinline{sizeof (char)} ist grundstzlich 1.\\
\item
ber die Gre anderer Typen (z.\,B.\ \lstinline{sizeof (int)})\\
drfen wir nichts voraussetzen.
\end{itemize}
\bigskip
\begin{lstlisting}
free (s);
\end{lstlisting}
\begin{itemize}
\item
mit \lstinline{malloc()} reservierten Speicher wieder freigeben
\end{itemize}
\end{frame}
\begingroup
\sectionnonumber{Aufgabe}
\begin{frame}[c]
\showsectionnonumber
Schreiben Sie ein Programm, das eine Text-Datei\\
in einen Speicherbereich (\newterm{Puffer\/}) einliest.
\medskip
ber die Gre der Datei oder die Lnge der Zeilen\\
drfen wir nichts voraussetzen.
\end{frame}
\endgroup
\subsection{malloc() und free()}
\subsection{Rekursive Datenstrukturen}
\begin{frame}
\showsection
\showsubsection
\begin{itemize}
\item
verkettete Listen
\item
Bume
\item
\dots
\end{itemize}
\end{frame}
\fi
\end{document}
% es-20150409.pdf - Lecture Slides on Software Development for Embedded Systems
% Copyright (C) 2013, 2014, 2015 Peter Gerwinski
%
% This document is free software: you can redistribute it and/or
% modify it either under the terms of the Creative Commons
% Attribution-ShareAlike 3.0 License, or under the terms of the
% GNU General Public License as published by the Free Software
% Foundation, either version 3 of the License, or (at your option)
% any later version.
%
% This document is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this document. If not, see <http://www.gnu.org/licenses/>.
%
% You should have received a copy of the Creative Commons
% Attribution-ShareAlike 3.0 Unported License along with this
% document. If not, see <http://creativecommons.org/licenses/>.
\documentclass[10pt,t]{beamer}
\usepackage{pgslides}
\usepackage{rotating}
\title{Software-Entwicklung fr eingebettete Systeme}
\author{Prof.\ Dr.\ Peter Gerwinski}
\date{9.\ April 2015}
\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C}
\begin{document}
%\maketitleframe
\begin{frame}[plain]
\vspace*{8cm}
\begin{picture}(0,0)
\put(12.3,8.0){\makebox(0,0)[tr]{\LARGE\bf\color{gray}\shortstack[r]{%
{\normalsize Software-Entwicklung fr}\\[0.5ex]
Eingebettete\\Systeme\\[2ex]
\includegraphics[width=4.3cm]{logo-hochschule-bochum.pdf}}}}
%\put(9.5,5.05) % zum Vergleich
\put(0.0,8.0){\makebox(0,0)[tl]{\includegraphics[width=2.87cm]{logo-hochschule-bochum-cvh-text.pdf}}}
\end{picture}%
\begin{picture}(-0.3,-0.5)
\put(0,0.5){\includegraphics[width=5.6cm]{floppys.jpg}}
\end{picture}%
\begin{picture}(0,0)
\put(0.5,2.7){\includegraphics[width=7.3cm]{hexapode.png}}
\end{picture}%
\begin{picture}(0,0)
\put(6.1,-0.7){\includegraphics[width=6cm]{csa2.jpg}}
\end{picture}
\begin{picture}(0,0)
\put(0.2,-0.7){\makebox(0,0)[bl]{\bf\color{gray}\shortstack[l]{\insertauthor\\[\smallskipamount]\insertdate}}}
\end{picture}
\end{frame}
\section{Einfhrung}
\begin{frame}
\showsection
% \pause
\begin{itemize}
\item
Projektaufgabe:\\
Eingebettetes System eigener Wahl zum Laufen bringen
% \pause
\arrowitem
Projektaufgabe berlegen
\end{itemize}
\bigskip
% \pause
Beispiele:
\begin{itemize}
\item Motorsteuerung fr Rasenmhroboter
\item Differential GPS
\item 3d-Indoor-Positioning-System fr Quadrocopter
\item Verbesserungen an Flugzeugkabinensimulatoren
\item {\color{red}Sampler-Grabber fr MIDI}
\item {\color{red}"`Tastsinn"' fr Hexapoden}
\item \dots
\end{itemize}
\end{frame}
\section{Arrays und Zeiger fr Fortgeschrittene}
\begin{frame}[fragile]
\showsection
\begin{minipage}[t]{6cm}
Array:
\smallskip
\begin{lstlisting}[gobble=6]
char a[] = "Test";
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}[t]{6cm}
Zeiger:
\smallskip
\begin{lstlisting}[gobble=6]
char *p = "Test";
\end{lstlisting}
\end{minipage}
\bigskip
\begin{itemize}
\item
In beiden Fllen wird ein Array von ganzen Zahlen\\
(5 \lstinline{char}-Variable mit den Werten 84, 101, 115, 116 und 0)\\
im Speicher angelegt.
\medskip
\item
Links heit das Array \lstinline{a};
rechts ist es "`anonym"'.
\item
Rechts wird zustzlich ein Zeiger \lstinline{p} im Speicher angelegt,\\
der auf das (anonyme) Array zeigt.
\medskip
\item
\lstinline{&a} ist dasselbe wie \lstinline{a},
nmlich die Adresse des Arrays.
\item
\lstinline{&p} ist die Adresse des Zeigers.
\item
\lstinline{p} ist der Wert des Zeigers,\\
momentan also die Adresse des (anonymen) Arrays.
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{minipage}[t]{7cm}
Array:
\smallskip
\begin{lstlisting}[gobble=6]
char *a[] = { "Dies", "ist", "ein", "Test" };
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}[t]{5cm}
Zeiger:
\smallskip
\begin{lstlisting}[gobble=6]
char **p = a;
\end{lstlisting}
\end{minipage}
\bigskip
\begin{itemize}
\item
Array von Zeigern auf \lstinline{char}-Variable
\item
Zeiger auf das Array = Zeiger auf Zeiger auf \lstinline{char}-Variable
\item
Schleife durch ueres Array mit \lstinline{p++} mglich
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{minipage}[t]{7cm}
Array:
\smallskip
\begin{lstlisting}[gobble=6]
char a[][5] = { "Dies", "ist", "ein", "Test" };
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}[t]{5cm}
Zeiger:
\smallskip
\begin{lstlisting}[gobble=6]
char *p = a[0];
\end{lstlisting}
\end{minipage}
\bigskip
\begin{itemize}
\item
zweidimensionales Array von \lstinline{char}-Variablen
\item
Zeiger auf Array-Komponente\\
= Zeiger auf eindimensionales Array\\
= Zeiger auf \lstinline{char}-Variable
\item
Schleife durch ueres Array mit Zeiger-Arithmetik nicht mglich
\end{itemize}
\begin{picture}(0,0)
\color{red}
\thicklines
\put(8.6,0.7){\line(1,0){0.85}}
\put(9.05,0.4){\makebox(0,0)[t]{$\overbrace{\mbox{nur mit Trick:
\lstinline{p += 5}}}$}}
\end{picture}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{lstlisting}
typedef char string5[5];
string5 a[] = { "Dies", "ist", "ein", "Test" };
string5 *p = a;
\end{lstlisting}
\bigskip
\begin{itemize}
\item
Array von Array von \lstinline{char}-Variablen\\
= zweidimensionales Array von \lstinline{char}-Variablen
\item
Zeiger auf zweidimensionales Array
\item
Schleife durch ueres Array mit \lstinline{p++} mglich
\bigskip
\arrowitem
Fazit:\\
Ein Hoch auf \lstinline{typedef}!
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\showsection
\begin{lstlisting}
typedef char string5[5];
string5 *p = { "Dies", "ist", "ein", "Test" };
\end{lstlisting}
\bigskip
\begin{itemize}
\item
anonymes Array von Array von \lstinline{char}-Variablen\\
= anonymes zweidimensionales Array von \lstinline{char}-Variablen
\item
Zeiger auf zweidimensionales Array
\item
Schleife durch ueres Array mit \lstinline{p++} mglich
\end{itemize}
\begin{picture}(0,0)(-2,-0.4)
\color{red}
\thicklines
\put(0,0){\line(2,1){4}}
\put(0,2){\line(2,-1){4}}
\end{picture}
Das Konstrukt \lstinline|{ "Dies", "ist", "ein", "Test" }|\\
steht fr ein Array von 4 Zeigern auf \lstinline{char}-Variable.
\smallskip
\lstinline{string5 *p} hingegen erwartet einen Zeiger auf ein Array
von 5 \lstinline{char}-Variablen.
\smallskip
Es bekommt die Adresse von \lstinline{"Dies"} zugewiesen.
\smallskip
Durch das Erhhen von \lstinline{p} (um 5) zeigt es danach
\emph{zufllig\/} auf das \lstinline{"ist"}.
Bei nochmaligem Erhhen zeigt es auf das \lstinline{"in"} von \lstinline{"ein"}.
\smallskip
(Auch ohne Optimierung werden die Strings \lstinline{"ist"}, \lstinline{"ein"}
und \lstinline{"Test"}\\
u.\,U.\ wegoptimiert.)
\end{frame}
\sectionnonumber{Aufgaben}
\begin{frame}[c]
\showsectionnonumber
\begin{description}
\item[Aufgabe 1:]
Sieb des Eratosthenes\\[\smallskipamount]
mglichst viele Primzahlen berechnen
% \\[\medskipamount]
% \textarrow\ Erledigt.
\bigskip
\item[Aufgabe 2:]
Kalender\\[\smallskipamount]
Jahreszahl eingeben,\\
Kalender mit Feiertagen ausgeben
\medskip
Hinweis: "`Osterformel"'
\end{description}
\end{frame}
\section{Bus-Systeme}
\begin{frame}
\showsection
Standard-Computer:
\begin{itemize}
\item
Einsteckkarten: PCI (und Vorgnger)
\item
Festplatten: SATA (und Vorgnger)
\item
USB, FireWire, \dots
\item
Ethernet, CAN-Bus, \dots
\item
WLAN, BlueTooth, IR, \dots
\item
PS/2, RS-232, Centronics
\end{itemize}
\medskip
Minimal-Hardware:
\begin{itemize}
\item
RS-232
\item
\ItwoC\ (TWI)
\item
SPI
\end{itemize}
\begin{picture}(0,0)
\put(5,1.5){\includegraphics[height=3cm]{motherboard-anschluesse.jpg}}
\end{picture}
\end{frame}
\begin{frame}
\showsection
\begin{itemize}
\item
\ItwoC: seriell, synchron, mit Adressierung
\par
\begin{picture}(0,0)(-0.7,0)
\put(1.0,-3.5){\includegraphics[height=3.5cm]{kompassmodul-an-roboter.jpg}}
\put(6.0,-3.3){\includegraphics[height=4.5cm]{kompassmodul.jpg}}
\put(6.0,1.2){\line(-1,-1){2.2}}
\put(6.0,-3.3){\line(-2,1){2.2}}
\end{picture}
\vspace*{3.7cm}
\item
RS-232: seriell, asynchron, Punkt-zu-Punkt
\item
RS-485, USB, CAN: seriell, asynchron, mit Adressierung
\item
SPI: seriell, synchron, Punkt-zu-Punkt oder mit Adressierung
\end{itemize}
\end{frame}
\subsectionnonumber{Beispiel: Benutzung des \protect\ItwoC-Busses}
\begin{frame}[fragile]
\showsection
\showsubsectionnonumber
\begin{picture}(0,0)
\put(8.75,-0.75){\includegraphics[height=2.75cm]{kompassmodul.jpg}}
\end{picture}%
\begin{onlyenv}<1>
\begin{lstlisting}[gobble=6]
void read_compass (uint16_t *x, uint16_t *y)
{
I2CTWI_transmit2Bytes (0x60, 0x00, 0x02); // set coil
mSleep (1);
I2CTWI_transmit2Bytes (0x60, 0x00, 0x04); // reset coil
mSleep (5);
uint8_t result[5];
I2CTWI_transmit2Bytes (0x60, 0x00, 0x01); // Messung starten
mSleep (5); // 5ms warten, bis Sensor fertig gemessen hat
I2CTWI_transmitByte (0x60, 0x01); // Leseindex setzen
I2CTWI_readBytes (0x61, result, 4); // lesen: msb x, lsb x, msb y, lsb y
result[0] &= 0b00001111; // Unwichtge Bits vom msb abschneiden
result[2] &= 0b00001111;
*x = (result[0] << 8) + result[1]; // Wert berechnen aus msb und lsb
*y = (result[2] << 8) + result[3];
}
\end{lstlisting}
\end{onlyenv}
\begin{onlyenv}<2-3>
\begin{lstlisting}[gobble=6,style=shy]
void read_compass (uint16_t *x, uint16_t *y)
{ ... }
int main (void)
{
uint16_t compass_x, compass_y;
read_compass (&compass_x, &compass_y);
writeInteger (compass_x, DEC);
writeChar (' ');
writeInteger (compass_y, DEC);
writeChar ('\n');
return 0;
}
\end{lstlisting}
\end{onlyenv}
\begin{onlyenv}<4->
\begin{lstlisting}[gobble=6,style=shy]
void read_compass (uint16_t *x, uint16_t *y)
{
I2CTWI_transmit2Bytes (0x60, 0x00, 0x02); // set coil
mSleep (1);
I2CTWI_transmit2Bytes (0x60, 0x00, 0x04); // reset coil
mSleep (5);
uint8_t result[5];
I2CTWI_transmit2Bytes (0x60, 0x00, 0x01); // Messung starten
mSleep (5); // 5ms warten, bis Sensor fertig gemessen hat
I2CTWI_transmitByte (0x60, 0x01); // Leseindex setzen
I2CTWI_readBytes (0x61, result, 4); // lesen: msb x, lsb x, msb y, lsb y
result[0] &= 0b00001111; // Unwichtge Bits vom msb abschneiden
result[2] &= 0b00001111;
*x = (result[0] << 8) + result[1]; // Wert berechnen aus msb und lsb
*y = (result[2] << 8) + result[3];
}
\end{lstlisting}
\end{onlyenv}
\begin{onlyenv}<5-7>
\begin{picture}(0,0)
\color{red}
\put(3.85,5.3){\vector(1,1){0.5}}
\put(3.5,5.2){\makebox(0,0)[t]{\shortstack{Gert adressieren:\\Schreib-Adresse}}}
\end{picture}
\end{onlyenv}
\begin{onlyenv}<6-7>
\begin{picture}(0,0)
\color{red}
\put(5.25,4.5){\vector(0,1){1.3}}
\put(5.25,4.4){\makebox(0,0)[t]{\shortstack{Register-Nr.\\innerhalb des Gerts}}}
\end{picture}
\end{onlyenv}
\begin{onlyenv}<7>
\begin{picture}(0,0)
\color{red}
\put(6.6,5.3){\vector(-1,1){0.5}}
\put(6.95,5.2){\makebox(0,0)[t]{Befehl: Spule an}}
\end{picture}
\end{onlyenv}
\vspace*{-2cm}
\end{frame}
\begin{frame}[fragile]
\showsection
\showsubsectionnonumber
\begin{picture}(0,0)
\put(8.75,-0.75){\includegraphics[height=2.75cm]{kompassmodul.jpg}}
\end{picture}%
\begin{lstlisting}[style=shy]
void read_compass (uint16_t *x, uint16_t *y)
{
I2CTWI_transmit2Bytes (0x60, 0x00, 0x02); // set coil
mSleep (1);
I2CTWI_transmit2Bytes (0x60, 0x00, 0x04); // reset coil
mSleep (5);
uint8_t result[5];
I2CTWI_transmit2Bytes (0x60, 0x00, 0x01); // Messung starten
mSleep (5); // 5ms warten, bis Sensor fertig gemessen hat
I2CTWI_transmitByte (0x60, 0x01); // Leseindex setzen
I2CTWI_readBytes (0x61, result, 4); // lesen: msb x, lsb x, msb y, lsb y
result[0] &= 0b00001111; // Unwichtge Bits vom msb abschneiden
result[2] &= 0b00001111;
*x = (result[0] << 8) + result[1]; // Wert berechnen aus msb und lsb
*y = (result[2] << 8) + result[3];
}
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]
\showsection
\showsubsectionnonumber
\begin{picture}(0,0)
\put(8.75,-0.75){\includegraphics[height=2.75cm]{kompassmodul.jpg}}
\end{picture}%
Messung:\\
Roboter im Kreis drehen lassen,\\
x- und y-Werte aufzeichnen\\
und gegeneinander auftragen
\smallskip
Ergebnis: Ellipse
\begin{picture}(0,0)(0,0.5)
\put(5,-3){\includegraphics[height=4cm]{kompass-messung.png}}
\end{picture}%
\bigskip
Anwendung:\\
Roboter in eine Himmelsrichtung ausrichten
\begin{itemize}
\item
Achsen normieren:\\
Mittelwert subtrahieren
\begin{picture}(0,0)(0,0.5)
\put(3.75,0.95){\vector(1,0){4}}
\put(7.55,0.90){\makebox(0,0)[t]{x}}
\put(5.75,-1.05){\vector(0,1){4}}
\put(5.75,2.95){\makebox(0,0)[r]{y}}
\end{picture}%
\item
Nulldurchgang einer Achse\\
markiert eine Himmelsrichtung
\item
Vorzeichen der anderen Achse\\
sagt aus, welche Himmelsrichtung
\end{itemize}
\vspace{-0.5cm}
\begin{flushright}
Beispiel: nach Norden ausrichten\\
Grob drehen, bis $y$ positiv ist,
fein drehen, bis $x = 0$ ist
\end{flushright}
% $x = 0$, $y$ positiv: Norden\\
% $x = 0$, $y$ negativ: Sden
% $y = 0$, $x < 0$: Westen
% $y = 0$, $x > 0$: Osten
\vspace*{-2cm}
\end{frame}
\end{document}
src/ez430-chronos-2.jpg

245 KiB

src/ez430-chronos.jpg

218 KiB

src/floppys.jpg

610 KiB

src/hexapode.png

968 KiB

src/intermec-ck1b.jpg

866 KiB

src/kompass-messung.png

10.3 KiB

src/kompassmodul-an-roboter.jpg

451 KiB

src/kompassmodul.jpg

86.2 KiB

src/lft.png

11.2 KiB

File added
% lic-20150402.pdf - Lecture Slides on Applied Computer Sciences
% Copyright (C) 2012, 2015 Peter Gerwinski
%
% This document is free software: you can redistribute it and/or
% modify it either under the terms of the Creative Commons
% Attribution-ShareAlike 3.0 License, or under the terms of the
% GNU General Public License as published by the Free Software
% Foundation, either version 3 of the License, or (at your option)
% any later version.
%
% This document is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this document. If not, see <http://www.gnu.org/licenses/>.
%
% You should have received a copy of the Creative Commons
% Attribution-ShareAlike 3.0 Unported License along with this
% document. If not, see <http://creativecommons.org/licenses/>.
\documentclass[10pt]{beamer}
\usepackage[latin1]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{helvet}
\renewcommand*\familydefault{\sfdefault}
\usetheme{default}
\usefonttheme{structurebold}
\setbeamertemplate{navigation symbols}{}
\setbeamersize{text margin left = 0.3cm, text margin right = 0.2cm}
\setbeamertemplate{itemize item}{$\bullet$}
\setbeamertemplate{itemize subitem}{--}
\setbeamerfont{itemize/enumerate subbody}{size=\normalsize}
\setbeamerfont{itemize/enumerate subsubbody}{size=\normalsize}
\addtolength{\topmargin}{0.15cm}
\usepackage{pstricks}
\newrgbcolor{darkgreen}{0.0 0.3 0.0}
\newrgbcolor{lightred}{1.0 0.7 0.7}
\newrgbcolor{lightgray}{0.85 0.85 0.85}
\newrgbcolor{medgray}{0.4 0.4 0.4}
\usepackage{listings}
\lstset{basicstyle=\color{structure},
language=C,
captionpos=b,
gobble=4,
columns=fullflexible,
aboveskip=0pt,
belowskip=0pt,
moredelim=**[is][\color{red}]{}{},
moredelim=**[is][\only<2->{\color{structure}}]{}{},
moredelim=**[is][\only<3->{\color{structure}}]{}{},
moredelim=**[is][\only<4->{\color{structure}}]{}{},
moredelim=**[is][\only<5->{\color{structure}}]{}{},
moredelim=**[is][\only<6->{\color{structure}}]{}{},
moredelim=**[is][\only<7->{\color{structure}}]{}{},
moredelim=**[is][\only<8->{\color{structure}}]{}{}}
\lstdefinestyle{terminal}{basicstyle=\ttfamily\color{darkgreen},
columns=fixed,
moredelim=**[is][\color{red}]{}{},
moredelim=**[is][\color{structure}]{}{}}
\lstdefinestyle{shy}{basicstyle=\color{lightgray},
moredelim=**[is][\color{structure}]{}{}}
\lstdefinestyle{semishy}{basicstyle=\color{medgray},
moredelim=**[is][\color{structure}]{}{}}
\usepackage{multirow}
\setcounter{topnumber}{3}
\renewcommand\topfraction{0.7}
\setcounter{bottomnumber}{3}
\renewcommand\bottomfraction{0.7}
\setcounter{totalnumber}{5}
\renewcommand\textfraction{0.1}
\renewcommand\floatpagefraction{0.9}
\setlength{\unitlength}{1cm}
\newcommand{\protectfile}[1]{#1}
\newcommand{\file}[1]{{\color{structure}\protectfile{#1}}}
\newcommand{\textarrow}{{\boldmath $\longrightarrow$}}
\newcommand{\arrowitem}{\item[\textarrow]}
\newcommand{\BIGskip}{\vspace{1cm}}
\newcommand{\shy}{\color{lightgray}}
\newcommand{\hot}{\color{red}}
\newcommand{\shyhot}{\color{lightred}}
\newcommand{\sectionnonumber}[1]{\section{#1}\addtocounter{section}{-1}}
\def\showsectionnonumber{{\Large\color{structure}\bf\secname\par}\bigskip}
\def\showsection{\hbox{\Large\color{structure}\bf
\vtop{\hbox{\arabic{section}}}\kern1em%
\vtop{\secname}\par}\bigskip}
\newcommand{\subsectionnonumber}[1]{\subsection{#1}\addtocounter{subsection}{-1}}
\def\showsubsectionnonumber{{\large\color{structure}\bf\subsecname\par}\bigskip}
\def\showsubsection{\hbox{\large\color{structure}\bf
\vtop{\hbox{\arabic{section}.\arabic{subsection}}}\kern1em%
\vtop{\subsecname}\par}\bigskip}
\begin{document}
\sectionnonumber{Einschub: Software-Lizenzen}
\subsectionnonumber{Vorab: Dies ist keine Rechtsdienstleistung!}
\begin{frame}[t,plain]
\showsectionnonumber
\pause
\showsubsectionnonumber
\textbf{\S\,2 RDG: Begriff der Rechtsdienstleistung}
\smallskip
(1) Rechtsdienstleistung ist jede Ttigkeit in
{\only<3->{\color{red}}konkreten} fremden Angelegenheiten,
sobald sie eine rechtliche Prfung des
{\only<3->{\color{red}}Einzelfalls} erfordert.
\medskip
\strut\hfill Quelle: \url{http://www.gesetze-im-internet.de/rdg/}
\pause
\pause
\bigskip
Konkreter Fall:
\begin{itemize}
\item
Konkretes Programm unter Lizenz A
\item
Konkrete Bibliothek unter Lizenz B
\item
Beratung: Pat das zusammen?
\arrowitem
Rechtsdienstleistung
\end{itemize}
\end{frame}
\subsectionnonumber{Lizenz-Beratung unter Kollegen?}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
\textbf{\S\,6 RDG: Unentgeltliche Rechtsdienstleistungen}
\smallskip
(1) Erlaubt sind Rechtsdienstleistungen, die nicht im Zusammenhang mit einer entgeltlichen
Ttigkeit stehen (unentgeltliche Rechtsdienstleistungen).
\smallskip
(2) Wer unentgeltliche Rechtsdienstleistungen auerhalb familirer, nachbarschaftlicher oder
hnlich enger persnlicher Beziehungen erbringt, muss sicherstellen, dass die Rechtsdienstleistung
durch eine Person, der die entgeltliche Erbringung dieser Rechtsdienstleistung erlaubt ist, durch
eine Person mit Befhigung zum Richteramt oder unter Anleitung einer solchen Person erfolgt.
[\,\dots]
\medskip
\strut\hfill Quelle: \url{http://www.gesetze-im-internet.de/rdg/}
\pause
\bigskip
\begin{itemize}
\arrowitem
Nur allgemein beraten!\\
Konkrete Flle an Anwalt verweisen!
\end{itemize}
\end{frame}
\subsectionnonumber{berblick}
\newcommand{\lcr}{\includegraphics[width=0.5cm]{Copyright.pdf}}
\newcommand{\lcl}{\includegraphics[width=0.5cm]{Copyleft.pdf}}
\newcommand{\lcc}{\includegraphics[width=0.5cm]{creative-commons.png}}
\newcommand{\lpd}{\includegraphics[width=0.5cm]{PD-icon.pdf}}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
\begin{itemize}
\item
Grundlage: Urheberrecht ($\approx$ Copyright) \hfill \lcr\\
"`Wer Software schreibt, entscheidet, was damit geschehen darf."'
\pause
\medskip
\item
anderen etwas erlauben: Lizenz
\pause
\medskip
\item
"`gar keine Lizenz"' = alles verboten
\end{itemize}
\end{frame}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
\begin{center}
\begin{picture}(12,5)
\put(5,5){\makebox(0,0){Software-Lizenz}}
\put(4.5,4.7){\vector(-1,-1){1}}
\put(5.5,4.7){\vector(1,-1){1}}
\put(3,3.4){\makebox(0,0){proprietr}}
\put(7,3.4){\makebox(0,0){frei / Open Source}}
\put(6.5,3.1){\vector(-1,-1){1.5}}
\put(7.5,3.1){\vector(1,-1){1}}
\put(4.5,1.3){\makebox(0,0){freizgig}}
\put(9,1.8){\makebox(0,0){Copyleft}}
\end{picture}%
\begin{onlyenv}<2->%
\begin{picture}(0,0)(12,0)
\color{darkgreen}
\put(2.5,3.1){\vector(-1,-1){0.5}}
\put(3.5,3.1){\vector(1,-1){0.5}}
\put(2.0,2.3){\makebox(0,0){kommerziell}}
\put(4.0,2.3){\makebox(0,0){gratis}}
\put(4.0,1.0){\vector(-1,-1){0.5}}
\put(5.0,1.0){\vector(1,-1){0.5}}
\put(3.5,0.2){\makebox(0,0){kommerziell}}
\put(5.5,0.2){\makebox(0,0){gratis}}
\put(8.5,1.5){\vector(-1,-1){0.5}}
\put(9.5,1.5){\vector(1,-1){0.5}}
\put(8.0,0.7){\makebox(0,0){kommerziell}}
\put(10.0,0.7){\makebox(0,0){gratis}}
\end{picture}%
\end{onlyenv}%
\end{center}
\end{frame}
\subsectionnonumber{Lizenzmodelle}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
\begin{itemize}
\item
Freie Software darf man
\hfill\begin{picture}(0,0)
\put(-1.8,-0.8){\includegraphics[width=2cm]{a-gnu-head.pdf}}
\end{picture}
\begin{itemize}
\item[0.]
benutzen,
\item[1.]
studieren und anpassen,
\item[2.]
weitergeben,
\item[3.]
weiterentwickeln und verffentlichen.
\end{itemize}
\strut\hfill
4 Grundfreiheiten --
\url{http://www.gnu.org/philosophy/free-sw}\\
\pause
\begin{picture}(0,0)
\color{red}
\put(6.95,1.85){\vector(-1,0){1.5}}
\put(7.00,1.75){\vector(-1,-1){0.5}}
\put(7.05,1.85){\makebox(0,0)[l]{Quelltext erforderlich!}}
\end{picture}%
\pause
\medskip
\item
Open Source: i.\,w.\ dasselbe in 10 Kriterien
\hfill\begin{picture}(0,0)
\put(-1.2,-0.5){\includegraphics[width=1.1cm]{osi-logo.jpg}}
\end{picture}\\
Begrndung: technisch statt philosophisch\\[\smallskipamount]
\strut\hfill
Definition:
\url{http://www.opensource.org/docs/osd}
\end{itemize}
\end{frame}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
\begin{itemize}
\item
Proprietre Software / Closed Source\\
Gegenteil von freier Software / Open Source
\medskip
\begin{itemize}
\item
Benutzen, Weitergeben und/oder Verffentlichen\\
erfordert individuelle Erlaubnis des Rechteinhabers
\medskip
\item
Studieren, Anpassen und/oder Weiterentwickeln\\
nur dem Rechteinhaber erlaubt
\pause
{\color{red}und/oder mglich\\
(Quelltext erforderlich!)}
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
\begin{itemize}
\item
Freie Software
\smallskip
\begin{itemize}
\item
Copyleft\only<2->{:}\\[\smallskipamount]
\begin{visibleenv}<2->
Weitergabe nur unter gleichen Bedingungen erlaubt\\
\textarrow\ Umwandlung in proprietre Software nicht erlaubt
\end{visibleenv}
\medskip
\item
freizgig\only<3->{:}\\[\smallskipamount]
\begin{visibleenv}<3->
Weitergabe auch unter anderen Bedingungen erlaubt\\
\textarrow\ Umwandlung in \only<4->{Copyleft- oder }proprietre Software erlaubt
\end{visibleenv}
\begin{onlyenv}<5->
\medskip
\item
Teil-Copyleft:\\[\smallskipamount]
Linken mit proprietrer Software erlaubt
\end{onlyenv}
\end{itemize}
\end{itemize}
\end{frame}
\subsectionnonumber{Beispiel-Programme}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
\begin{center}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{|c||c|c|c|}\hline
& \multirow{2}{*}{proprietr} & \multicolumn{2}{c|}{frei}\\\cline{3-4}
& & freizgig & Copyleft \\\hline\hline
\color{darkgreen}kommerziell
& \color{structure}\visible<2->{\shortstack{\\\includegraphics[width=0.5cm]{Microsoft_Power_Point_2010.png}\\\small Microsoft PowerPoint}}
& \color{structure}\visible<6->{\shortstack{\\\includegraphics[width=1.0cm]{721px-Pfs-logo.png}\\\small pfSense}}
& \color{structure}\visible<5->{\shortstack{\\\includegraphics[width=0.8cm]{open-xchange.jpg}\\\small Open-Xchange}} \\\hline
\color{darkgreen}gratis
& \color{structure}\visible<4->{\shortstack{\\\includegraphics[width=0.8cm]{Adobe-Reader.png}\\\small Adobe Reader}}
& \color{structure}\visible<6->{\shortstack{\\\includegraphics[width=0.5cm]{putty.png}\\\small PuTTY}}
& \color{structure}\visible<3->{\shortstack{\\\includegraphics[width=0.5cm]{libreoffice-impress.pdf}\\\small LibreOffice Impress}} \\\hline
\end{tabular}
\end{center}
\begin{onlyenv}<7->%
\begin{picture}(0,0)(0,-0.5)
\color{red}
\put(7.38,1.38){$\updownarrow$}
\put(9.8,1.38){$\updownarrow$}
\end{picture}%
\end{onlyenv}%
\begin{onlyenv}<8->%
\begin{picture}(0,0)(0,-0.7)
\color{red}
\put(6.3,2.7){$\longleftarrow$}
\put(8.05,2.7){$\longrightarrow$}
\end{picture}%
\end{onlyenv}%
\end{frame}
\subsectionnonumber{Beispiel-Lizenzen}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
Generell: Gewhrleistungsausschlu
\bigskip
\pause
Freie Software / Open Source
\begin{itemize}
\item
strenges Copyleft:
GNU GPL, GNU FDL, CC BY-SA
\pause
\item
Teil-Copyleft:
GNU LGPL, Mozilla-Lizenz, Microsoft Public License
\pause
\item
freizgig:
Modifizierte BSD-Lizenz, Apache-Lizenz, CC BY,\\
CC0, Public Domain
\end{itemize}
\pause
\strut\hfill\url{http://www.gnu.org/licenses/license-list}
\end{frame}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
Generell: Gewhrleistungsausschlu
\bigskip
Proprietre Software
\begin{itemize}
\item
Lizenz i.\,d.\,R.\ fr jedes Programm anders
\pause
\medskip
\item
"`Normales"' Beispiel (Januar 2012):\\
Adobe Reader EULA\\[\smallskipamount]
Verwenden \only<3->{nur auf PCs }erlaubt\pause\pause,\\
Studieren und Weitergeben nicht erlaubt\pause,\\
Screenshots nicht erlaubt\\[\smallskipamount]
\pause
Der Software ist die Kommunikation mit Adobe\\
und mit Werbeanbietern erlaubt.\\[\medskipamount]
\pause
\strut\hfill\url{http://www.adobe.com/products/eulas/reader/x/eula_de_de.html}
\medskip
\end{itemize}
\end{frame}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
Generell: Gewhrleistungsausschlu
\bigskip
Proprietre Software
\begin{itemize}
\item
Kontroverses Beispiel (Januar 2012):\\
iBooks Author EULA\\[\smallskipamount]
Layout fr elektronische Bcher erstellen\\
\pause
\textarrow\ Buch darf nur ber den iBooks Store verkauft werden\\[\medskipamount]
\strut\hfill\url{http://venomousporridge.com/post/16126436616/}\\
\strut\hfill\url{ibooks-author-eula-audacity}
\end{itemize}
\end{frame}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
Generell: Gewhrleistungsausschlu
\bigskip
Proprietre Software
\begin{itemize}
\item
Kontroverses Beispiel (September 2001):\\
Microsoft FrontPage 2002 EULA\\[\smallskipamount]
Webseiten erstellen\\
\pause
\textarrow\ Webseiten drfen Microsoft nicht "`herabsetzen"'\\[\medskipamount]
\strut\hfill\url{http://www.heise.de/newsticker/data/jes-21.09.01-001/}
\end{itemize}
\end{frame}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
Generell: Gewhrleistungsausschlu
\bigskip
Proprietre Software
\begin{itemize}
\item
Kontroverses Beispiel (Juli 2001):\\
Microsoft Mobile Internet Toolkit EULA\\[\smallskipamount]
Software erstellen\\
\pause
\textarrow\ Verbot, {\color{darkgreen}"`virale"'} Software
\only<3->{(= Copyleft-Software) }zu erstellen \\
\pause
\pause
\textarrow\ Verbot, Copyleft-Werkzeuge mit einzusetzen \\
\textarrow\ Verbot, entwickelte Software gemeinsam mit Copyleft-Software\\
\strut\phantom{\textarrow} einzusetzen oder zu vertreiben\\[\medskipamount]
\strut\hfill\url{http://web.archive.org/web/20010626201507/}\\
\strut\hfill\url{http://msdn.microsoft.com/downloads/eula_mit.htm}
\end{itemize}
% Nicht auf derselben CD: http://msdn.microsoft.com/downloads/eula_mit.htm, 22.7.2001
\end{frame}
\subsectionnonumber{Copyleft}
\begin{frame}[t,plain]
\showsectionnonumber
\showsubsectionnonumber
Microsoft: Copyleft-Software ist {\color{darkgreen}"`viral"'}\\[\smallskipamount]
\strut\hfill\url{http://web.archive.org/web/20010626201507/}\\
\strut\hfill\url{http://msdn.microsoft.com/downloads/eula_mit.htm}
\bigskip
\begin{center}
\color{structure}%
\begin{onlyenv}<2->%
\begin{picture}(10,5)
\put(5,5){\makebox(0,0){Code aus fremder Software benutzen}}
\end{picture}%
\end{onlyenv}%
\begin{onlyenv}<3->%
\begin{picture}(0,0)(10,0)
\put(4.5,4.7){\vector(-1,-1){1}}
\put(3.5,3.4){\makebox(0,0){\strut GPL-Software:}}
\put(3.5,2.95){\makebox(0,0){\strut{\color{darkgreen}bedingt} erlaubt}}
\end{picture}%
\end{onlyenv}%
\begin{onlyenv}<4->%
\begin{picture}(0,0)(10,0)
\color{darkgreen}
\put(3.0,2.7){\vector(0,-1){0.7}}
\put(3.0,1.8){\makebox(0,0){\strut Gesamtwerk mu}}
\put(3.0,1.35){\makebox(0,0){\strut unter GPL stehen}}
\end{picture}%
\end{onlyenv}%
\begin{onlyenv}<5->%
\begin{picture}(0,0)(10,0)
\put(5.5,4.7){\vector(1,-1){1}}
\put(6.5,3.4){\makebox(0,0){\strut MS-Software:}}
\put(6.5,2.95){\makebox(0,0){\strut{\color{red}nicht} erlaubt}}
\end{picture}%
\end{onlyenv}%
\begin{onlyenv}<6->%
\begin{picture}(0,0)(10,0)
\color{black}
\put(5.5,1.2){\makebox(0,0)[l]{\textarrow\
\begin{minipage}[t]{5cm}
Lizenzen lesen,\\
sorgfltig auswhlen
\end{minipage}}}
\end{picture}%
\end{onlyenv}%
\end{center}
\end{frame}
\subsectionnonumber{Fazit}
\begin{frame}[t,plain]
\showsectionnonumber
{\large\color{structure}\bf Fazit\par}
\begin{itemize}
\item
Generell: Vor Benutzung Lizenz lesen, durch Anwalt prfen lassen
\pause
\item
"`gar keine Lizenz"' = alles verboten
\end{itemize}
\pause
Bearbeitung, Weitergabe und Mitverwendung
\begin{itemize}
\pause
\item
nicht erlaubt oder nicht mglich
\textarrow\ proprietre Software / Closed Source
\pause
\item
erlaubt \textarrow\ freie Software / Open Source
\begin{itemize}
\pause
\item
bei Mitverwendung Lizenz bernehmen \textarrow\ Copyleft
\pause
\item
Lizenz umwandelbar \textarrow\ freizgig
\end{itemize}
\end{itemize}
\pause
\bigskip
{\large\color{structure}\bf Lizenz fr Material zu dieser Vorlesung\par}
\begin{itemize}
\item
Skript: Copyleft
\item
Beispiel-Programme: freizgig
\end{itemize}
\end{frame}
\end{document}
File added
File added
src/motherboard-anschluesse.jpg

502 KiB

src/open-xchange.jpg

9.05 KiB

src/osi-logo.jpg

3.55 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment