Initial commit

This commit is contained in:
Andreas Mieke 2018-03-15 14:34:23 +01:00
commit 1f0e2aad64
64 changed files with 2531 additions and 0 deletions

292
.gitignore vendored Normal file
View file

@ -0,0 +1,292 @@
# Created by https://www.gitignore.io/api/latex,macos,linux,windows
### LaTeX ###
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
## Intermediate documents:
*.dvi
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.gtex
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Comment the next line if you want to keep your tikz graphics files
*.tikz
*-tikzDictionary
# listings
*.lol
# makeidx
*.idx
*.ilg
*.ind
*.ist
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# nomencl
*.nlo
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# todonotes
*.tdo
# easy-todo
*.lod
# xindy
*.xdy
# xypic precompiled matrices
*.xyc
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# Kile
*.backup
# KBibTeX
*~[0-9]*
# auto folder when using emacs and auctex
/auto/*
# expex forward references with \gathertags
*-tags.tex
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### macOS ###
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Windows ###
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
# End of https://www.gitignore.io/api/latex,macos,linux,windows
# Ignore generated files
Diplomarbeit.pdf

7
Allgemein/Allgemein.tex Normal file
View file

@ -0,0 +1,7 @@
\pageauthor{Mieke, Reischl, Schuh}
\section{Allgemein}
\label{sec:allgemein}
\section{Sektion 2}

98
Diplomarbeit.tex Normal file
View file

@ -0,0 +1,98 @@
%% Vorlage HTBL Hollabrunn Diplomarbeit
%% KOMA Script
\documentclass[12pt,ngerman,a4paper,parskip,twoside,listof=totoc]{scrartcl}
\usepackage{hhline} % Tutorial Table border
\usepackage{listings} % Code Listings
\usepackage{lstlangarm} % ARM ASM
\lstset{
language=C,
basicstyle=\ttfamily,
keywordstyle=\color{blue}\ttfamily,
stringstyle=\color{red}\ttfamily,
commentstyle=\color{green}\ttfamily,
morecomment=[l][\color{magenta}]{\#},
basicstyle=\footnotesize,
numbers=left,
stepnumber=1,
showstringspaces=false,
tabsize=1,
breaklines=true,
breakatwhitespace=false,
}
\lstset{
language=[ARM]Assembler,
basicstyle=\ttfamily,
keywordstyle=\color{blue}\ttfamily,
stringstyle=\color{red}\ttfamily,
commentstyle=\color{green}\ttfamily,
morecomment=[l][\color{magenta}]{\#},
basicstyle=\footnotesize,
numbers=left,
stepnumber=1,
showstringspaces=false,
tabsize=1,
breaklines=true,
breakatwhitespace=false,
}
\usepackage{hyperref}
\usepackage[ngerman]{babel}
\usepackage[german]{fancyref}
\usepackage{htlDT} % HTBL Diplomarbeitsstyle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% General Settings, like Title, Students and supporters
\title{Advanced Microcontroller Training System}
\student{Andreas Mieke}{Software ARM Cortex-M3 Minimalsystem}{5BHEL}{Dipl.-Ing. Josef Reisinger}
\student{Andreas Reischl}{Z80 Minimalsystem}{5AHEL}{Dipl.-Ing. Josef Reisinger}
\student{Kevin Schuh}{Hardware ARM Cortex-M3 Minimalsystem}{5BHEL}{Dipl.-Ing. Josef Reisinger}
\termyear{2017/18}
\class{5xHEL}
\keywords{ARM\\Cortex\\Training System\\Digital Education}
\sthanks{Besonderer Dank geht an verschiedene Leute!}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Bibliography
\usepackage[backend=bibtex, style=ieee, citestyle=ieee, hyperref=true]{biblatex}
\makeatletter
\def\blx@maxline{77}
\makeatother
\usepackage{xpatch}
\makeatletter
\xpatchcmd\blx@head@bibliography{\markboth}{\@mkboth}{}{\undefined}
\makeatother
\addbibresource{literatur.bib}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Gloassaries
\usepackage[nomain,acronym,toc,section]{glossaries}
\makeglossaries
\makeindex
\input{glossary}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Begin Document
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Titlepage, DA database and TOC
\maketitle{}
\makedadb{pdfs/DADB}{pdfs/DADBErklärung}
\maketoc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% First real page
\input{Allgemein/Allgemein}
\input{Mieke/Mieke}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Appendix
\cleardoublepage
\appendix
\printbibliography[heading=bibintoc,title={Literaturverzeichnis}]
\listoffigures
\listoftables
\printglossary[title=Begriffsverzeichnis,toctitle=Begriffsverzeichnis]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End Document
\end{document}

15
Mieke/Mieke.tex Normal file
View file

@ -0,0 +1,15 @@
\newcommand*{\uVision}{$\mu$Vision}
\clearpage
\pageauthor{Mieke}
\section{Software}
\label{sec:software}
\subsection{Keil \uVision{} 5}
\label{sec:uvision-5}
Zur Programmierung des neuen \gls{Minimalsystem}s wurde die \gls{IDE} Keil \uVision{} 5 verwendet. Da sich diese erheblich von der Version 4 unterscheidet, und das Projekt weiters auch im Unterricht verwendet werden solle, wurde eine Anleitung für eben diese neue Version 5 der \gls{IDE} verfasst, welche alle Schritte von der Installation bis zum \gls{Debugging} erklärt und demonstriert. Weiters wurde der \gls{Debugging}-Adapter ausgetauscht, anstelle eine \gls{Keil} ULINK/ME kommt nun standardmäßig ein ST-Link zum Einsatz.
In den nun folgenden Kapiteln wurde dieses Tutorial, in leicht abgewandelter Form, übernommen, das Originaldokument kann unter \cite{doku:tutorial} gefunden werden.
\input{Mieke/Tutorial/Tutorial}

View file

@ -0,0 +1,49 @@
AREA BLINKEN, CODE, READONLY
INCLUDE STM32_F103RB_MEM_MAP.INC
EXPORT __main
__main PROC
BL init_port
LDR R1, =GPIOB_ODR
_main_again LDR R0, [R1]
EOR R0, R0, #0x100
STR R0, [R1]
BL wait_500ms
B _main_again
ENDP
init_port PROC
PUSH {R0-R2, LR}
MOV R2, #0x8
LDR R1, =RCC_APB2ENR
LDR R0, [R1]
ORR R0, R0, R2
STR R0, [R1]
LDR R1, =GPIOB_CRH
LDR R0, [R1]
LDR R2, =0xFFFFFFF0
AND R0, R0, R2
MOV R2, #0x03
ORR R0, R0, R2
STR R0, [R1]
POP {R0-R2, PC}
ENDP
wait_500ms PROC
PUSH {R0-R2, LR}
MOV R0, #0x1F4
MOV R1, #0
_wait_ms_loop MOV R2, #0x63B
_wait_ms_loop1 SUB R2, R2, #1
CMP R2, R1
BNE _wait_ms_loop1
SUB R0, R0, #1
CMP R0, R1
BNE _wait_ms_loop
POP {R0-R2, PC}
ENDP
END

View file

@ -0,0 +1,77 @@
#include <stm32f10x.h>
void wait(void);
void init_leds_switches(void);
void set_leds(char value);
char get_switches(void);
void wait_ms(int ms);
void init_leds_switches() {
int temp;
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
temp = GPIOA->CRL;
temp &= 0x00000000;
temp |= 0x88888888;
GPIOA->CRL = temp;
GPIOA->BSRR = 0x00FF;
temp = GPIOB->CRH;
temp &= 0x00000000;
temp |= 0x33333333;
GPIOB->CRH = temp;
}
void set_leds(char value) {
GPIOB->ODR = (GPIOB->ODR & 0xFFFF00FF) |
((value & 0x000000FF) <<8);
}
char get_switches() {
return (GPIOA->IDR & 0x000000FF);
}
void wait_ms(int ms) {
int i,j;
for (i = 0; i < ms; i++) {
for (j = 0; j < 1595; j++);
}
}
void wait() {
unsigned char speed;
unsigned char i;
speed = get_switches();
speed = ~speed;
speed = speed & 0x7f;
for (i = 0; i <= speed; i++) {
wait_ms(100);
}
}
int main () {
char i;
char hs;
char lauflicht;
init_leds_switches();
hs = get_switches() & 0x80;
while (hs) {
lauflicht = 0x01;
i = 0;
while (i < 8) {
set_leds(lauflicht);
lauflicht = lauflicht << 1;
i++;
wait();
}
hs = get_switches() & 0x80;
}
while (1);
}

View file

@ -0,0 +1,20 @@
#include "stm32f10x.h"
void init_leds_switches(void) {
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
GPIOB->CRH &= 0x00000000;
GPIOB->CRH |= 0x00000003;
}
int main()
{
int i;
init_leds_switches();
for (;;) {
GPIOB->ODR = 0x01FF & ~(GPIOB->ODR & 0x01FF);
for (i=0; i < 65535; i++);
for (i=0; i < 65535; i++);
for (i=0; i < 65535; i++);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

273
Mieke/Tutorial/Tutorial.tex Normal file
View file

@ -0,0 +1,273 @@
\subsubsection{Einführung}
\label{sec:tut-intro}
\subsubsubsection{Warum der Umstieg zu \uVision{} 5?}
In der HTBL Hollabrunn wurde in den letzten Jahren laufend die Version 4 der \gls{IDE} \uVision{} verwendet, ein Umstieg auf die neuere Version 5 war weder nötig noch wirklich sinnvoll.
Allerdings hat die \uVision{} in der Version 4 einen großen Nachteil, welcher die Verwendbarkeit in der Zukunft stark einschränkt. Denn ein kompilieren von Programmen für Cortex-M4 oder höher ist bei dieser Version nicht möglich, und Version 5 wird zur zwingenden Vorraussetzung. Da die Entwicklung weiter voran schreitet, ist es für die HTBL Hollabrunn nicht mehr praktikabel die veraltete Version 4 einzusetzen.
Dieses Dokument wird kurz auf die Mindestanforderungen der neuen Software, und des Weiteren auf die Inbetriebnahme mittels einfacher Beispielprogramme eingehen. Alte \uVision{} 4 Projekte können auf diese Weise in die neue Umgebung übertragen werden.
\subsubsubsection{Mindestsystemanforderungen}
\tab{tut-systemanforderungen}{\uVision{} 5: Systemanforderungen}{Systemanforderungen der \gls{Keil} \uVision{} 5}{|c|p{5cm}|p{5cm}|}{
\hline
& Minimum & Empfohlen\\
\hhline{|=|=|=|}
Prozessor & 1 GHz (32/64 bit) & 2 GHz (64 bit) oder mehr\\
\hline
RAM & 1 GB & 4 GB oder mehr\\
\hline
Festplattenspeicher & 2 GB & 5 GB oder mehr\\
\hline
Internet & & 2 Mb/s oder mehr (für Pack Installer)\\
\hline
}
Alle Windows Versionen ab Windows Vista (32/64 bit) werden unterstützt.
\begin{warning}
Achtung: Im Gegensatz zu \uVision{} in Version 4, wird von dieser Version das Betriebssystem Microsoft Windows XP nicht mehr unterstützt!
\end{warning}
\subsubsection{Das erste \uVision{} 5 Projekt}
\label{sec:tut-firstproject}
\subsubsubsection{Die Installation}
\label{sec:tut-firstproject1}
Bevor mit der eigentlichen Installation der \gls{IDE} begonnen werden kann, muss diese von der offiziellen \gls{Keil} Webseite heruntergeladen werden. Dies kann unter diesem Link getan werden:
\url{https://www.keil.com/demo/eval/arm.htm}
\fig{tut-installer}{\uVision{} 5: Installer}{Der heruntergeladene \uVision{} 5 Installer}{\textwidth}{Mieke/Tutorial/Screenshots/installer}
Nachdem der Installer heruntergeladen wurde, sollte eine ausführbare Datei wie in \fref{fig:tut-installer} zu sehen ist vorhanden sein, eventuell sollte die Größe dieser Datei überprüft werden, um auszuschließen, dass es beim Download zu einem Fehler kam.
\fig{tut-windowsUAC}{\uVision{} 5: Windows UAC Dialog}{Dialog von Windows User Account Control}{0.5\textwidth}{Mieke/Tutorial/Screenshots/windowsUAC}
Danach muss dieser mit einem Doppelklick gestartet werden. Eventuell zeigt Windows einen Bestätigungsdialog (\fref{fig:tut-windowsUAC}) an, dieser ist mit einem Klick auf den Button \texttt{Ja} zu bestätigen.
\fig{tut-install1}{\uVision{} 5: Begrüßungsbildschirm}{Begrüßungsbildschirm des Installers}{0.75\textwidth}{Mieke/Tutorial/Screenshots/install1}
Wenn der Dialog bestätigt wurde, startet der eigentliche Installationsprozess. Im Begrüßungsbildschirm (\fref{fig:tut-install1}) wird nochmals erläutert welche Version der Software zur Zeit installiert wird (in diesem Fall \uVision{} in Version \texttt{5.23}). Die Richtigkeit dieser Angaben wird mit einem Klick auf \texttt{Next} bestätigt.
\fig{tut-install2}{\uVision{} 5: Lizenzbedingungen}{Lizenzbedingungen}{0.75\textwidth}{Mieke/Tutorial/Screenshots/install2}
Nun müssen die Lizenzbedingungen akzeptiert werden (\fref{fig:tut-install2}), hierzu muss der Hacken in der Checkbox gesetzt werden und wieder mit einem Klick auf \texttt{Next} bestätigt werden.
\fig{tut-install3}{\uVision{} 5: Installationspfade}{Auswahl der Installationspfade}{0.75\textwidth}{Mieke/Tutorial/Screenshots/install3}
Im nächsten Bildschirm (\fref{fig:tut-install3}) wird der Installationsort für den Compiler und die IDE, sowie der Pfad für die Installation von \gls{CMSIS}-Packs (\fref{fig:tut-pack4}) abgefragt. Grundsätzlich können beide Felder auf beliebige Pfade gesetzt werden, aufgrund der Kompatibilität und der vereinfachten Fehlersuche wird aber empfohlen den Standard beizubehalten.
\fig{tut-install4}{\uVision{} 5: Benutzerdaten}{Eingabe der Benutzerdaten}{0.75\textwidth}{Mieke/Tutorial/Screenshots/install4}
Danach werden Daten zum Benutzer abgefragt (\fref{fig:tut-install4}). Diese Felder können entweder mit erfundenen Daten, oder -- wenn man später ggf. eine Lizenz hinzufügen will -- mit den realen Daten des Benutzers gefüllt werden.
\fig{tut-install5}{\uVision{} 5: Installationsfortschritt}{Installationsfortschritt}{0.75\textwidth}{Mieke/Tutorial/Screenshots/install5}
Jetzt wird mit der eigentlichen Installation der Dateien begonnen. Der Fortschritt wird in einem eigenen Bildschirm (\fref{fig:tut-install5}) angezeigt. Nun muss gewartet werden, bis der Balken komplett durchgelaufen ist.
\fig{tut-install6}{\uVision{} 5: Warnung der Windows-Sicherheit}{Warnung der Windows-Sicherheit}{0.75\textwidth}{Mieke/Tutorial/Screenshots/install6}
Je nach Windows Version kann ein Konsolenfenster auf gehen, welches einfach ignoriert werden kann. Gegebenenfalls wird auch eine Warnung der Windows-Sicherheit bezüglich der Installation von Treibern angezeigt (\fref{fig:tut-install6}). Diese ist mit einem Klick auf \texttt{Installieren} zu bestätigen.
\fig{tut-install7}{\uVision{} 5: Erfolgreiche Installation}{Erfolgreiche Installation}{0.75\textwidth}{Mieke/Tutorial/Screenshots/install7}
Am letzten Bildschirm (\fref{fig:tut-install7}) wird nachgefragt ob die Release Notes angezeigt werden sollen, dies ist nicht nötig und somit sollte in der Checkbox auch kein Hacken sein. Mit einem klick auf den \texttt{Finish} Button wird die Installation beendet. Ein Neustart des Rechners sollte nicht nötig sein.
\subsubsubsection{Der Pack Installer}
\label{sec:tut-firstproject2}
Nachdem die Installation erfolgreich beendet wurde, startet der \texttt{Pack Installer} der \uVision{}. Dieses Programm verwaltet alle \gls{CMSIS}-Pakete welche im Laufe der Verwendung der \gls{IDE} heruntergeladen und installiert werden. Der Installer hat im groben zwei Spalten, auf der linken Seite kann man den Prozessor, welchen man verwenden will, aussuchen und auf der rechten Seite werden dann die für diesen Prozessor verfügbaren Pakete angezeigt.
\fig{tut-pack1}{\uVision{} 5: Pack Installer}{Der Pack Installer nach dem ersten Start}{0.75\textwidth}{Mieke/Tutorial/Screenshots/pack1}
Beim ersten Start des Pack Installers wird eine Willkommensnachricht, welche diesen kurz beschreibt, angezeigt (\fref{fig:tut-pack1}). Diese kann entweder durch deaktivieren der entsprechenden Checkbox für immer versteckt, oder mittels Button geschlossen werden.
\fig{tut-pack3}{\uVision{} 5: Downloadfortschritt}{Downloadfortschritt}{\textwidth}{Mieke/Tutorial/Screenshots/pack3}
Beim ersten Start sind nur die direkt von \gls{ARM} ausgelieferten Prozessorkerne im Installer verfügbar (\fref{fig:tut-pack1}), allerdings wird gleichzeitig auch ein Updateprozess gestartet, welcher alle nötigen Paket-Infos herunterlädt und gegebenenfalls bereits installierte Pakete updatet. Um den Installer richtig verwenden zu können, müssen wir dieses erste Update abwarten. In der Statusleiste des Programms (\fref{fig:tut-pack3}) sieht man den entsprechenden Fortschritt. Wenn dieser auf 100\% steigt, beziehungsweise der Text komplett verschwindet ist das Update beendet und wir können fortfahren.
\begin{warning}
Zu beachten: Es kann vorkommen, dass die Fortschrittsanzeige beim installieren der einzelnen Pakete kurz verschwindet, es sollte also zur Sicherheit einige Sekunden gewartet werden, wenn der Text verschwindet um sicher zu gehen, dass das Update auch wirklich fertig eingespielt wurde.
\end{warning}
\fig{tut-pack4}{\uVision{} 5: Verfügbare Pakete}{Verfügbare Pakete}{0.75\textwidth}{Mieke/Tutorial/Screenshots/pack4}
Nachdem die Updates erfolgreich eingespielt wurden sollte sich die gerade noch leere Liste (\fref{fig:tut-pack4}) mit knapp 4000 verfügbaren Prozessoren gefüllt haben.
\fig{tut-pack6}{\uVision{} 5: Prozessor des Minimalsystems}{Prozessor des \gls{Minimalsystem}s}{\textwidth}{Mieke/Tutorial/Screenshots/pack6}
Danach muss der passende Prozessor ausgewählt werden (\fref{fig:tut-pack6}). Im Zuge dieser Diplomarbeit wurde der Prozessor für den Schulgebrauch von \texttt{STM32F103RB} zu einem \texttt{STM32F107RB} geändert, dieser bietet mehr Features als der Alte Prozessor. Man kann den richtigen Prozessor entweder über die Liste auswählen, oder einfach das Suchfeld oben links verwenden um direkt den Richtigen angezeigt zu bekommen.
\fig{tut-pack7}{\uVision{} 5: Verfügbare Pakete für Prozessor}{Verfügbare Pakete für den Prozessor des \gls{Minimalsystem}s}{0.75\textwidth}{Mieke/Tutorial/Screenshots/pack7}
Auf der rechten Seite (\fref{fig:tut-pack7}) scheinen, sobald der richtige Prozessor ausgewählt ist, die für diesen Prozessor verfügbaren \gls{CMSIS}-Pakete auf, diese können nun mittels Klick auf den entsprechenden Button installiert und danach in der \gls{IDE} verwendet werden. Für den Schulgebrauch ist das Paket \texttt{\gls{Keil}::STM32F1xx\_DFP} nötig und ausreichend. Dieses beinhaltet alle verwendeten Libraries und auch Beispielprogramme. Während der Installation des Pakets ist wieder auf die Statusleiste und den Fortschritt in dieser zu achten, wenn alles erfolgreich installiert wurde, sollte unser verwendeter Prozessor auf der linken Übersichtsseite grün hinterlegt sein, siehe dazu \fref{fig:tut-pack9}. Des weiteren sollten sämtliche Packs, bei welchen \texttt{Update} steht geupdatet werden.
\fig{tut-pack9}{\uVision{} 5: Erfolgreich installierter Prozessor}{Erfolgreich installierter Prozessor}{0.75\textwidth}{Mieke/Tutorial/Screenshots/pack9}
\subsubsubsection{Installation des HTBL Packs}
\label{sec:tut-firstproject2.1}
Um die spezifischen Libraries und Header Files der HTBL Hollabrunn einfach zur Verfügung zu stellen, gibt es für eben diese ein eigenes \gls{CMSIS}-Pack. Dieses wird aber anders als die anderen Packs (noch) nicht über das Internet vertrieben, sondern vom Lehrer auf einem Medium wie USB-Stick oder CD ausgeteilt. Dementsprechend muss dieses Pack manuell in den Pack-Manager hinzugefügt werden.
\fig{tut-pack10}{\uVision{} 5: Menüpunkt zum manuellen Import von Packs}{Menüpunkt zum manuellen Import von Packs}{0.25\textwidth}{Mieke/Tutorial/Screenshots/pack10}
Hierzu muss auf \texttt{File}, und dann auf \texttt{Import...} geklickt werden, wie in \fref{fig:tut-pack10} dargestellt. Danach öffnet sich ein Explorer Fenster, in welchem man die entsprechende \texttt{.pack}-Datei auswählen muss. Wenn dies geschehen ist wird die Datei eingelesen und automatisch installiert. Sollte aus irgendeinem Grund die Zieldatei schon existieren, so ist das überschreiben mittels Klick auf \texttt{Ja} im entsprechenden Dialogfenster zu bestätigen. Nach erfolgter Installation sollte das Übersichtsfenster wie in \fref{fig:tut-pack11} aussehen.
\fig{tut-pack11}{\uVision{} 5: Hauptfenster mit HTL Pack}{Hauptfenster nach erfolgreicher Installation des HTBL Packs}{0.75\textwidth}{Mieke/Tutorial/Screenshots/pack11}
\subsubsection{Die Projekterstellung}
\label{sec:tut-firstproject3}
Als nächstes muss ein \uVision{} Projekt erstellt werden. Projekte dienen zur Organisation der Source-Files und der verwendeten Bibliotheken, sowohl \gls{CMSIS}- als auch eigene Bibliotheken. Das Projekt kann mittels grafischem Interface einfach konfiguriert und mit \gls{CMSIS}-Libraries versehen werden.
\fig{tut-projekt1}{\uVision{} 5: Hauptfenster der IDE}{Hauptfenster der \gls{IDE}}{0.75\textwidth}{Mieke/Tutorial/Screenshots/projekt1}
Nach dem Start der \gls{IDE} ist zunächst ein leeres Fenster zu sehen (\fref{fig:tut-projekt1}). Dieses besteht aus einer Menüleiste ganz oben und den Schnellzugriffsschaltflächen direkt darunter. Auf der linken Seite ist ein noch leerer Projektbaum zu finden und rechts im großen grauen Feld der eigentliche Texteditor für die Source-Files. Darunter befindet sich noch ein Fenster für Log und Compiler Ausgaben, unter diesem die Statusleiste.
\fig{tut-projekt2}{\uVision{} 5: Projekt-Menü}{Projekt-Menü}{0.3\textwidth}{Mieke/Tutorial/Screenshots/projekt2}
Mit einem Klick auf den entsprechenden Menüpunkt (\fref{fig:tut-projekt2}) kann ein neues \uVision{} Projekt erstellt werden.
\fig{tut-projekt3}{\uVision{} 5: Prozessorauswahldialog}{Prozessorauswahldialog}{0.75\textwidth}{Mieke/Tutorial/Screenshots/projekt3}
Im nächsten Bildschirm (\fref{fig:tut-projekt3}) wird abgefragt welcher Prozessor verwendet werden soll, in unserem Fall ist dies wieder der \texttt{STM32F107RB}. Man kann den richtigen Prozessor entweder in der Liste heraus suchen, oder den Namen direkt in das Suchfeld eingeben. Auf der rechten Seite wird ein Beschreibungstext mit den Features des gewählten Prozessors angezeigt.
\fig{tut-projekt4}{\uVision{} 5: Laufzeitumgebungskonfigurationsfenster}{Laufzeitumgebungskonfigurationsfenster}{0.75\textwidth}{Mieke/Tutorial/Screenshots/projekt4}
Danach wird gefragt welche \gls{CMSIS}-Libraries eingebunden werden sollen (\fref{fig:tut-projekt4}), hier ist mindestens \texttt{CORE} im Reiter \texttt{CMSIS} und \texttt{Startup} im Reiter \texttt{Device} zu wählen. Werden mehr Features benötigt, können diese in den entsprechenden Reitern aktiviert werden. Ein späteres Ändern der Laufzeitumgebung ist über einen Klick auf die entsprechende Schnellzugriffsschaltfläche ohne größere Umstände möglich. Die Konfiguration ist mittels Klick auf \texttt{OK} zu bestätigen.
\begin{warning}
Zu beachten: Während die meisten \gls{CMSIS}-Libraries frei verfügbar sind, gibt es auch einige wenige (File System, Graphics, Network, USB) welche nur mit einer Pro Version von \uVision{} verwendbar sind. Ist dies der Fall muss auf freie Libraries ausgewichen, oder eine Pro Version erworben werden.
\end{warning}
\fig{tut-projekt5}{\uVision{} 5: Beispielprogramm}{Beispielprogramm}{0.75\textwidth}{Mieke/Tutorial/Screenshots/projekt5}
In \fref{fig:tut-projekt5} ist ein kleines Beispielprogramm zu sehen, welches die LEDs der LED-/Schalterplatine blinken lässt. Links zu sehen ist der Projektbaum. \gls{C}-Files werden über den entsprechenden Menüpunkt (Rechtsklick auf die \texttt{Source Group 1} und dann \texttt{Add Item to Group...}) angelegt und direkt in das Projekt eingebunden. Der passende Dateiname und Typ ist im folgenden Fenster (\fref{fig:tut-projekt5-2}) entsprechend zu wählen. Das \fref{lst:tut-example1} kann einfach in das \gls{C}-File kopiert werden.
\fig{tut-projekt5-2}{\uVision{} 5: Dateierstellungsdialog}{Dateierstellungsdialog}{0.75\textwidth}{Mieke/Tutorial/Screenshots/asm2}
\FloatBarrier
\lstinputlisting[language={[ANSI]C}, caption=LED Blinklicht, label=lst:tut-example1]{Mieke/Tutorial/Listings/example1.c}
\fig{tut-projekt5-1}{\uVision{} 5: Schaltfläche zum kompilieren}{Schaltfläche zum kompilieren}{0.3\textwidth}{Mieke/Tutorial/Screenshots/projekt5-1}
Als nächstes muss das geschriebene Programm kompiliert werden, dazu ist einfach auf die Schaltfläche (\fref{fig:tut-projekt5-1}) zu klicken. Nach einigen wenigen Sekunden sollte dieser Vorgang erfolgreich abgeschlossen sein (Ausgabe im Logfenster (Übersicht: \fref{fig:tut-projekt1}) beachten).
\fig{tut-projekt6}{\uVision{} 5: Optionsschaltfläche}{Optionsschaltfläche}{0.3\textwidth}{Mieke/Tutorial/Screenshots/projekt6}
Bevor nun aber das fertig kompilierte Programm auf das \gls{Minimalsystem} geflasht werden kann, muss der Debugging Adapter\footnote{In unserem Fall ein \gls{Keil} ULINK-ME} angeschlossen (\fref{fig:tut-projekt6-1}) und dessen Software geupdatet werden. Dies kann mittels Klick auf den Zauberstab (\fref{fig:tut-projekt6}) gestartet werden werden.
\fig{tut-projekt6-1}{\uVision{} 5: Aufbau des Minimalsystems}{Aufbau des \gls{Minimalsystem}s}{0.75\textwidth}{Mieke/Tutorial/Pictures/SetUp}
\fig{tut-projekt7}{\uVision{} 5: Optionsfenster}{Optionsfenster}{0.75\textwidth}{Mieke/Tutorial/Screenshots/projekt7}
Danach geht das in \fref{fig:tut-projekt7} abgebildete Fenster auf. Eventuell steht die Auswahl nicht auf dem Debug Reiter oben, dann ist dies manuell mittels Mausklick durchzuführen. Auf der rechten Seite muss der Radio Button bei \texttt{Use} ausgewählt werden und im Dropdown daneben \texttt{ULINK2/ME Cortex Debugger}. Wenn die Updateaufforderung (\fref{fig:tut-projekt8}) nicht automatisch auftaucht, muss der Button \texttt{Settings} geklickt werden.
\fig{tut-projekt8}{\uVision{} 5: Firmwareupdate}{Firmwareupdate}{0.75\textwidth}{Mieke/Tutorial/Screenshots/projekt8}
\begin{warning}
Achtung: Das Firmware Update ist notwendig um den Debugger zusammen mit \uVision{} 5 zu verwenden, allerdings ist dieser dann nicht mehr mit Version 4 kompatibel, hierfür muss die Firmware wieder mittels externem Programm auf die Alte geändert werden.
\end{warning}
Die Meldung zum Update der Firmware muss mittels Klick auf den Button \texttt{OK} bestätigt werden. Danach muss gewartet werden, bis das Update durchgelaufen ist.
\begin{warning}
Achtung: Trennen Sie in dieser Zeit nicht das USB Kabel des Debuggers, da dieser sonst gegebenenfalls irreperabel beschädigt werden könnte!
\end{warning}
Wenn das Update fertig durchgelaufen ist, und wieder das Optionsfenster (\fref{fig:tut-projekt7}) zu sehen ist, stellen Sie sicher, dass die dort gezeigten Einstellungen übereinstimmen, und klicken Sie dann auf \texttt{OK}.
\fig{tut-projekt9}{\uVision{} 5: Debugger Einstellungen}{Debugger Einstellungen}{0.75\textwidth}{Mieke/Tutorial/Screenshots/projekt9}
Im nun auf gegangenen Fenster (\fref{fig:tut-projekt9}) sollte die Checkbox \texttt{Reset and Run} aktiviert werden. Dies ist zwar für den korrekten Betrieb nicht nötig, erleichtert aber das Arbeiten sehr, da nicht nach jedem mal neu flashen der Reset Knopf des Prozessors gedrückt werden muss.
\fig{tut-projekt10}{\uVision{} 5: Load Button}{Load Button}{0.3\textwidth}{Mieke/Tutorial/Screenshots/projekt10}
Nun kann das kompilierte Programm mittels des Load Buttons (\fref{fig:tut-projekt10}) auf den Zielprozessor geladen werden. Wenn die Einstellungen, welche bei \fref{fig:tut-projekt9} zu sehen sind richtig angewendet wurden, sollte nun die LEDs der LED-/Schalterplatine anfangen zu blinken. Damit ist die \uVision{} \gls{IDE} in der Version 5 fertig eingerichtet und bereit verwendet zu werden!
\subsubsection{Debugging}
\label{sec:tut-debugging}
Im nächsten Teil dieses Tutorials wird auf den Debugger der \gls{Keil} \uVision{} 5 eingegangen werden, und des weiteren auch erläutert, wie sich eben dieser vom Debugger der \uVision{} 4 unterscheidet.
In der Symbolleiste (\fref{fig:tut-debugging1}) befinden sich entsprechende Icons zum starten des Debuggers und um Breakpoints zu verwalten. Mit Hilfe dieser Buttons kann der Debugger gestartet und gestoppt werden (Lupe ganz links) und Breakpoints hinzugefügt (roter Punkt), aktiviert und deaktiviert (weißer Punkt) werden. Des weiteren können alle Breakpoints gleichzeitig mittels Klick auf das Icon mit den zwei weißen Kreisen mit rotem Rand deaktiviert werden. Der Button rechts daneben löscht alle Breakpoints komplett.
\fig{tut-debugging1}{\uVision{} 5: Debugging-Symbolleiste}{\gls{Debugging}-Symbolleiste}{0.3\textwidth}{Mieke/Tutorial/Screenshots/debugging1}
Wird der Debugger nun mittels Klick auf die Lupe in \fref{fig:tut-debugging1} aktiviert, so wird das aktuelle Programm neu auf den Prozessor geflasht und gestartet, gleichzeitig erweitert sich auch das User Interface der \gls{IDE} (\fref{fig:tut-debugging2}) um für das \gls{Debugging} relevante Fenster. Weiters wird, wenn kein Breakpoint gesetzt ist, das Programm bis zum \texttt{main}-Aufruf ausgeführt und dort angehalten.
\fig{tut-debugging2}{\uVision{} 5: Debugging Modus}{User Interface der \gls{Keil} \uVision{} 5 im \gls{Debugging} Modus}{0.75\textwidth}{Mieke/Tutorial/Screenshots/debugging2}
Im Register Fenster (\fref{fig:tut-debugging3}) sind alle Register des Microcontrollers zu sehen, zusätzlich dazu sind jene, welche sich seit dem letzten Step verändert haben, blau eingefärbt. Das Register Fenster ist für das \gls{Debugging} von \gls{C}/\gls{C++} Programmen nicht wirklich sinnvoll, für Assembler-Programme aber eine große Hilfe.
\fig{tut-debugging3}{\uVision{} 5: Register Fenster}{Register Fenster}{0.3\textwidth}{Mieke/Tutorial/Screenshots/debugging3}
Ein weiteres Fenster ist das Disassembly-Fenster, zu sehen in \fref{fig:tut-debugging4}, welches den zur Zeit ausgeführten Binärcode in Form von Assemblerbefehlen zeigt. Dies ist sinnvoll, wenn eine binäre Library analysiert und auf Fehler geprüft werden muss. Des weiteren kann man hier gut sehen bei welchem Teil einer Libraryfunktion das Programm zum Beispiel abstürzt oder hängen bleibt.
\fig{tut-debugging4}{\uVision{} 5: Disassembly Fenster}{Disassembly Fenster}{0.75\textwidth}{Mieke/Tutorial/Screenshots/debugging4}
Im Hauptfenster (\fref{fig:tut-debugging5}) wird der zur Zeit ausgeführte Programmcode angezeigt, mit zwei Pfeilen auf der Seite, welche die aktuelle Position und die Cursor-Position anzeigen. Der Cursor-Pfeil macht Sinn, wenn man die Funktion \enquote{Run to Line} benutzen will. Dies ist der zweite Button von rechts in \fref{fig:tut-debugging6}.
\fig{tut-debugging5}{\uVision{} 5: Hauptfenster}{Hauptfenster}{0.75\textwidth}{Mieke/Tutorial/Screenshots/debugging5}
\fig{tut-debugging6}{\uVision{} 5: Stepping-Buttons}{Stepping-Buttons}{0.3\textwidth}{Mieke/Tutorial/Screenshots/debugging6}
Des weiteren kann durch einen Klick auf die graue Fläche neben den Zeilennummern für die entsprechende Zeile ein Breakpoint aktiviert (und deaktiviert) werden. Siehe dazu \fref{fig:tut-debugging7}. Ein Breakpoint hält die Ausführung der laufenden Anwendung an dieser Stelle an und setzt diese erst nach einem Klick auf Run (\fref{fig:tut-debugging6}, zweiter Button von links) oder auf einen der Stepping-Buttons (zweite Buttongruppe von rechts) wieder im entsprechenden Modus fort. Dies ist sehr sinnvoll um sich zum Beispiel den Inhalt von Registern anzusehen und so Fehler zu suchen.
\fig{tut-debugging7}{\uVision{} 5: Breakpoint und Ausführungs-Pfeil}{Programmzeile mit Breakpoint und Ausführungs-Pfeil}{0.75\textwidth}{Mieke/Tutorial/Screenshots/debugging7}
Neben den Hauptregistern selbst, \fref{fig:tut-debugging3}, kann im Debugger auch die Konfiguration von einzelnen Peripherieeinheiten angesehen werden. Hierfür gibt es jeweils Extra Fenster, welche über das Hauptmenü geöffnet werden kann, zu sehen in \fref{fig:tut-debugging8}, in diesem Beispiel sehen wir uns die Konfiguration von GPIOA an.
\fig{tut-debugging8}{\uVision{} 5: Peripherie-Hauptmenü}{Peripherie-Hauptmenü}{0.3\textwidth}{Mieke/Tutorial/Screenshots/debugging8}
Nach dem Klick auf den entsprechenden Menüeintrag öffnet sich ein weiteres Fenster, \fref{fig:tut-debugging9}, entweder rechts angedockt, oder frei über der IDE liegend. Sollte es rechts angedockt sein, empfehle ich das Fenster raus zu ziehen und etwas größer zu machen, da dies der Übersicht hilft.
\fig{tut-debugging9}{\uVision{} 5: GPIOA Registerfenster}{GPIOA Registerfenster}{0.5\textwidth}{Mieke/Tutorial/Screenshots/debugging9}
Mit Hilfe dieses Fensters kann nun die Konfiguration der entsprechenden Peripherieeinheit angesehen werden. Anders als bei \gls{Keil} \uVision{} 4, werden in diesem Fenster nur noch die Konfigurationswerte in Hexadezimal dargestellt, beziehungsweise binäre Werte in Form von Checkboxen. Dies kann leider auch nach Nachfrage beim \gls{Keil} Support nicht umgestellt werden, was das einzige Manko der \uVision{} 5 gegenüber der Version 4 ist.
\fig{tut-debugging10}{\uVision{} 5: Memory Fenster}{Memory Fenster}{0.75\textwidth}{Mieke/Tutorial/Screenshots/debugging10}
Eine weitere Möglichkeit des Debuggings ist es, das Memory Fenster zu benutzen. Dieses Fenster (\fref{fig:tut-debugging10}) zeigt den Inhalt des Speichers ab einer eingegebenen Adresse an. Hier zu sehen ist die Instruktion, welche gerade in \fref{fig:tut-debugging4} ausgeführt wird. Weiters ist es Möglich mittels Rechtsklick den Inhalt von Speicherbereichen zu ändern. Dies ist insbesondere dann sinnvoll, wenn man den Op-Code einer Instruktion oder ähnliches während das Programm läuft ändern möchte.
\fig{tut-debugging11}{\uVision{} 5: Watches Fenster}{Watches Fenster}{0.75\textwidth}{Mieke/Tutorial/Screenshots/debugging11}
Mit Hilfe des Watches Fenster (\fref{fig:tut-debugging11}) können Variablen im \gls{C} Programm \enquote{beobachtet} werden. Das Fenster zeigt, sofern auf die Variable an der entsprechenden Programmstelle zugegriffen werden kann, immer den aktuellen Wert eben dieser an. Auch hier ist es möglich den Wert in Echtzeit zu ändern, außerdem können einfache Berechnungen durchgeführt werden.
\subsubsubsection[Keil ULINK2/ME Debugger]{\gls{Keil} ULINK2/ME Debugger}
\label{sec:tut-debugging1}
Der ULINK/ME\footnote{Diese Bezeichnung bezeichnet die alte Firmware, nach dem Upgrade der Firmware für \uVision{} 5 wird dieser Adapter als ULINK2/ME bezeichnet und ist inkompatibel zu \uVision{} 4.} ist der Standard-Debug-Adapter, welcher bis 2017 verwendet wurde und bei den alten \gls{Minimalsystem}en immer noch verwendet wird. Die entsprechende Konfiguration und das nötige Firmware-Upgrade wurden hierfür schon in \fref{sec:tut-firstproject3} erläutert. Hierbei sind besonders \fref{fig:tut-projekt7} und \fref{fig:tut-projekt9} zu beachten.
\subsubsubsection{ST-Link Debugger}
\label{sec:tut-debugging2}
Das neue \gls{Minimalsystem} ist dafür vorgesehen mit einem ST-Link Debugger im \gls{SWD}-Modus verwendet zu werden. Wenn das \gls{Core-Modul} mit der \gls{Basisplatine} vebunden ist, kann allerdings auch der ULINK2/ME \gls{Debugging}-Adapter verwendet werden. Der ST-Link braucht im Gegensatz zu einem auf \gls{JTAG} basierenden Debugger weniger Pins und somit weniger Platz auf dem Zielsystem. Die \gls{IDE} muss lediglich auf diesen neuen Debugger umgestellt werden, siehe dazu auch das Debug-Fenster, wo der ST-Link Debugger ausgewählt ist (\fref{fig:tut-debugging12}). Nähere Infos dazu, wie man zu diesem Fenster kommt kann in \fref{sec:tut-firstproject3} gefunden werden. Die Verwendung des aktuellen ST-Link (Version 2) \gls{Debugging}-Adapters ist in \uVision{} 4 nicht mehr möglich.
\fig{tut-debugging12}{\uVision{} 5: Debug Fenster (ST-Link ausgewählt)}{Debug Fenster (ST-Link ausgewählt)}{0.75\textwidth}{Mieke/Tutorial/Screenshots/debugging12}
\subsubsection{Assembler-Programmierung}
\label{sec:tut-asm}
Zu Beginn wird die Programmierung vom Cortex-M3 mittels Assembler unterrichtet, dementsprechend befasst sich auch dieses Tutorial zuerst mir der Assembler-Programmierung. Hierzu wird ein Beispielprogramm verwendet und erläutert wie die \gls{IDE} eingestellt werden muss, und was alles zu tun ist um dieses Programm erfolgreich zu assemblieren und auszuprobieren.
Als erstes muss ein neues Projekt angelegt werden wie in \fref{sec:tut-firstproject3} erklärt. Wichtig hierbei ist es die richtigen \gls{CMSIS}-Packs zu wählen, da das Ziel ein Assembler-Projekt ist, ist hierbei das HTL Assembler-Pack (\fref{fig:tut-asm1}) zu wählen.
\fig{tut-asm1}{\uVision{} 5: Paketwahldialog mit HTL Pack}{Paketwahldialog mit HTL Pack}{0.75\textwidth}{Mieke/Tutorial/Screenshots/asm1}
Ist dies erledigt, kann eine neue Assembler Source-Datei erstellt werden, dazu klickt man mit der rechten Maustaste auf die \texttt{Source Group 1} und wählt im Kontextmenü \texttt{Add New Item to Group...}, im sich nun öffnenden Fenster (\fref{fig:tut-asm2}) wählt man nun \texttt{Asm File} und vergibt einen passenden Namen (zum Beispiel \texttt{main.s}).
\fig{tut-asm2}{\uVision{} 5: Dateierstellungsdialog}{Dateierstellungsdialog}{0.75\textwidth}{Mieke/Tutorial/Screenshots/asm2}
Durch einen Kick auf \texttt{Add} wird die Datei hinzugefügt und kann anschließend bearbeitet werden. In diesem Beispiel wird das erste Beispielprogramm (eine blinkende LED auf der LED-/Schalterplatine) programmiert. Hierzu ist der Source Code aus \fref{lst:tut-asm} zu verwenden. In der zweiten Zeile wird die HTBL Memory Map inkludiert, welche durch das \gls{CMSIS}-Pack zur Verfügung gestellt wird.
\lstinputlisting[language={[ARM]Assembler}, caption=LED Blinklicht, label=lst:tut-asm]{Mieke/Tutorial/Listings/asm.s}
Danach kann das Programm assembliert und anschließend auf den Cortex geladen werden. Dieses vorgehen ist näher in \fref{sec:tut-firstproject3} beschrieben. Nun sollte, nach einem Reset des Microcontrollers, die erste LED von rechts (PB8) auf der LED-/Schalterplatine blinken. Nähere Informationen zum Debugging können in \fref{sec:tut-debugging} gefunden werden.
\subsubsection{\gls{C}-Programmierung}
\label{sec:tut-c}
Nach dem Einstieg mit Assembler, wird auch die Programmierung mit der Sprache \gls{C} unterrichtet, die Projekterstellung für diese Sprache weicht nicht sonderlich von der für Assembler (\fref{sec:tut-asm}) und dem vorgehen im Allgemeinen (\fref{sec:tut-firstproject3}) ab. Allerdings ist auch hier zu beachten das richtige \gls{CMSIS} Pack der HTL zu verwenden. Dies ist im Anfang noch nicht so wichtig, da die ersten Programme ohne die \gls{STDLib} auskommen, allerdings ist diese in den späteren Programmen unbedingt nötig. Um die Library einzufügen, ist diese im Pack Manager (\fref{fig:tut-c1}) auszuwählen.
\fig{tut-c1}{\uVision{} 5: Paketwahldialog mit HTL STDLib Pack}{Paketwahldialog mit \gls{STDLib} Pack}{0.75\textwidth}{Mieke/Tutorial/Screenshots/c1}
Als erstes Demoprogramm ist hier ein Lauflicht, welches in \fref{lst:tut-c} zu sehen ist, zu realisieren.
\lstinputlisting[language={[ANSI]C}, caption=LED Lauflicht, label=lst:tut-c]{Mieke/Tutorial/Listings/c.c}
Auch hier verhält sich das Debugging so wie in \fref{sec:tut-debugging} beschrieben.

View file

@ -0,0 +1,433 @@
\ProvidesFile{lstlangarm.sty}
[2013/10/20 1.0 listings language file for ARM]
%%
%% ARM definition (c) 2013 Jacques Supcik
%%
\lstdefinelanguage[ARM]{Assembler}%
{morekeywords={adc,adcal,adcals,adccc,adcccs,adccs,adccss,adceq,adceqs, %
adcge,adcges,adcgt,adcgts,adchi,adchis,adchs,adchss,adcle,adcles, %
adclo,adclos,adcls,adclss,adclt,adclts,adcmi,adcmis,adcne,adcnes, %
adcpl,adcpls,adcs,adcvc,adcvcs,adcvs,adcvss,add,addal,addals,addcc, %
addccs,addcs,addcss,addeq,addeqs,addge,addges,addgt,addgts,addhi, %
addhis,addhs,addhss,addle,addles,addlo,addlos,addls,addlss,addlt, %
addlts,addmi,addmis,addne,addnes,addpl,addpls,adds,addvc,addvcs,addvs, %
addvss,and,andal,andals,andcc,andccs,andcs,andcss,andeq,andeqs,andge, %
andges,andgt,andgts,andhi,andhis,andhs,andhss,andle,andles,andlo, %
andlos,andls,andlss,andlt,andlts,andmi,andmis,andne,andnes,andpl, %
andpls,ands,andvc,andvcs,andvs,andvss,b,bal,bcc,bcs,beq,bge,bgt,bhi, %
bhs,bic,bical,bicals,biccc,bicccs,biccs,biccss,biceq,biceqs,bicge, %
bicges,bicgt,bicgts,bichi,bichis,bichs,bichss,bicle,bicles,biclo, %
biclos,bicls,biclss,biclt,biclts,bicmi,bicmis,bicne,bicnes,bicpl, %
bicpls,bics,bicvc,bicvcs,bicvs,bicvss,bkpt,bl,blal,blcc,blcs,ble,bleq, %
blge,blgt,blhi,blhs,blle,bllo,blls,bllt,blmi,blne,blo,blpl,bls,blt, %
blvc,blvs,blx,blxal,blxcc,blxcs,blxeq,blxge,blxgt,blxhi,blxhs,blxle, %
blxlo,blxls,blxlt,blxmi,blxne,blxpl,blxvc,blxvs,bmi,bne,bpl,bvc,bvs, %
bx,bxal,bxcc,bxcs,bxeq,bxge,bxgt,bxhi,bxhs,bxj,bxjal,bxjcc,bxjcs, %
bxjeq,bxjge,bxjgt,bxjhi,bxjhs,bxjle,bxjlo,bxjls,bxjlt,bxjmi,bxjne, %
bxjpl,bxjvc,bxjvs,bxle,bxlo,bxls,bxlt,bxmi,bxne,bxpl,bxvc,bxvs,cdp, %
cdp2,cdpal,cdpcc,cdpcs,cdpeq,cdpge,cdpgt,cdphi,cdphs,cdple,cdplo, %
cdpls,cdplt,cdpmi,cdpne,cdppl,cdpvc,cdpvs,clz,clzal,clzcc,clzcs,clzeq, %
clzge,clzgt,clzhi,clzhs,clzle,clzlo,clzls,clzlt,clzmi,clzne,clzpl, %
clzvc,clzvs,cmn,cmnal,cmncc,cmncs,cmneq,cmnge,cmngt,cmnhi,cmnhs,cmnle, %
cmnlo,cmnls,cmnlt,cmnmi,cmnne,cmnpl,cmnvc,cmnvs,cmp,cmpal,cmpcc,cmpcs, %
cmpeq,cmpge,cmpgt,cmphi,cmphs,cmple,cmplo,cmpls,cmplt,cmpmi,cmpne, %
cmppl,cmpvc,cmpvs,cps,cpsid,cpsie,cpy,cpyal,cpycc,cpycs,cpyeq,cpyge, %
cpygt,cpyhi,cpyhs,cpyle,cpylo,cpyls,cpylt,cpymi,cpyne,cpypl,cpyvc, %
cpyvs,eor,eoral,eorals,eorcc,eorccs,eorcs,eorcss,eoreq,eoreqs,eorge, %
eorges,eorgt,eorgts,eorhi,eorhis,eorhs,eorhss,eorle,eorles,eorlo, %
eorlos,eorls,eorlss,eorlt,eorlts,eormi,eormis,eorne,eornes,eorpl, %
eorpls,eors,eorvc,eorvcs,eorvs,eorvss,ldc,ldc2,ldcal,ldccc,ldccs, %
ldceq,ldcge,ldcgt,ldchi,ldchs,ldcle,ldclo,ldcls,ldclt,ldcmi,ldcne, %
ldcpl,ldcvc,ldcvs,ldmalda,ldmaldb,ldmalea,ldmaled,ldmalfa,ldmalfd, %
ldmalia,ldmalib,ldmccda,ldmccdb,ldmccea,ldmcced,ldmccfa,ldmccfd, %
ldmccia,ldmccib,ldmcsda,ldmcsdb,ldmcsea,ldmcsed,ldmcsfa,ldmcsfd, %
ldmcsia,ldmcsib,ldmda,ldmdb,ldmea,ldmed,ldmeqda,ldmeqdb,ldmeqea, %
ldmeqed,ldmeqfa,ldmeqfd,ldmeqia,ldmeqib,ldmfa,ldmfd,ldmgeda,ldmgedb, %
ldmgeea,ldmgeed,ldmgefa,ldmgefd,ldmgeia,ldmgeib,ldmgtda,ldmgtdb, %
ldmgtea,ldmgted,ldmgtfa,ldmgtfd,ldmgtia,ldmgtib,ldmhida,ldmhidb, %
ldmhiea,ldmhied,ldmhifa,ldmhifd,ldmhiia,ldmhiib,ldmhsda,ldmhsdb, %
ldmhsea,ldmhsed,ldmhsfa,ldmhsfd,ldmhsia,ldmhsib,ldmia,ldmib,ldmleda, %
ldmledb,ldmleea,ldmleed,ldmlefa,ldmlefd,ldmleia,ldmleib,ldmloda, %
ldmlodb,ldmloea,ldmloed,ldmlofa,ldmlofd,ldmloia,ldmloib,ldmlsda, %
ldmlsdb,ldmlsea,ldmlsed,ldmlsfa,ldmlsfd,ldmlsia,ldmlsib,ldmltda, %
ldmltdb,ldmltea,ldmlted,ldmltfa,ldmltfd,ldmltia,ldmltib,ldmmida, %
ldmmidb,ldmmiea,ldmmied,ldmmifa,ldmmifd,ldmmiia,ldmmiib,ldmneda, %
ldmnedb,ldmneea,ldmneed,ldmnefa,ldmnefd,ldmneia,ldmneib,ldmplda, %
ldmpldb,ldmplea,ldmpled,ldmplfa,ldmplfd,ldmplia,ldmplib,ldmvcda, %
ldmvcdb,ldmvcea,ldmvced,ldmvcfa,ldmvcfd,ldmvcia,ldmvcib,ldmvsda, %
ldmvsdb,ldmvsea,ldmvsed,ldmvsfa,ldmvsfd,ldmvsia,ldmvsib,ldr,ldral, %
ldralb,ldralbt,ldrald,ldralh,ldralsb,ldralsh,ldralt,ldrb,ldrbt,ldrcc, %
ldrccb,ldrccbt,ldrccd,ldrcch,ldrccsb,ldrccsh,ldrcct,ldrcs,ldrcsb, %
ldrcsbt,ldrcsd,ldrcsh,ldrcssb,ldrcssh,ldrcst,ldrd,ldreq,ldreqb, %
ldreqbt,ldreqd,ldreqh,ldreqsb,ldreqsh,ldreqt,ldrex,ldrexal,ldrexcc, %
ldrexcs,ldrexeq,ldrexge,ldrexgt,ldrexhi,ldrexhs,ldrexle,ldrexlo, %
ldrexls,ldrexlt,ldrexmi,ldrexne,ldrexpl,ldrexvc,ldrexvs,ldrge,ldrgeb, %
ldrgebt,ldrged,ldrgeh,ldrgesb,ldrgesh,ldrget,ldrgt,ldrgtb,ldrgtbt, %
ldrgtd,ldrgth,ldrgtsb,ldrgtsh,ldrgtt,ldrh,ldrhi,ldrhib,ldrhibt,ldrhid, %
ldrhih,ldrhisb,ldrhish,ldrhit,ldrhs,ldrhsb,ldrhsbt,ldrhsd,ldrhsh, %
ldrhssb,ldrhssh,ldrhst,ldrle,ldrleb,ldrlebt,ldrled,ldrleh,ldrlesb, %
ldrlesh,ldrlet,ldrlo,ldrlob,ldrlobt,ldrlod,ldrloh,ldrlosb,ldrlosh, %
ldrlot,ldrls,ldrlsb,ldrlsbt,ldrlsd,ldrlsh,ldrlssb,ldrlssh,ldrlst, %
ldrlt,ldrltb,ldrltbt,ldrltd,ldrlth,ldrltsb,ldrltsh,ldrltt,ldrmi, %
ldrmib,ldrmibt,ldrmid,ldrmih,ldrmisb,ldrmish,ldrmit,ldrne,ldrneb, %
ldrnebt,ldrned,ldrneh,ldrnesb,ldrnesh,ldrnet,ldrpl,ldrplb,ldrplbt, %
ldrpld,ldrplh,ldrplsb,ldrplsh,ldrplt,ldrsb,ldrsh,ldrt,ldrvc,ldrvcb, %
ldrvcbt,ldrvcd,ldrvch,ldrvcsb,ldrvcsh,ldrvct,ldrvs,ldrvsb,ldrvsbt, %
ldrvsd,ldrvsh,ldrvssb,ldrvssh,ldrvst,mar,maral,marcc,marcs,mareq, %
marge,margt,marhi,marhs,marle,marlo,marls,marlt,marmi,marne,marpl, %
marvc,marvs,mcr,mcr2,mcral,mcrcc,mcrcs,mcreq,mcrge,mcrgt,mcrhi,mcrhs, %
mcrle,mcrlo,mcrls,mcrlt,mcrmi,mcrne,mcrpl,mcrr,mcrr2,mcrral,mcrrcc, %
mcrrcs,mcrreq,mcrrge,mcrrgt,mcrrhi,mcrrhs,mcrrle,mcrrlo,mcrrls,mcrrlt, %
mcrrmi,mcrrne,mcrrpl,mcrrvc,mcrrvs,mcrvc,mcrvs,mia,miaal,miacc,miacs, %
miaeq,miage,miagt,miahi,miahs,miale,mialo,mials,mialt,miami,miane, %
miaph,miaphal,miaphcc,miaphcs,miapheq,miaphge,miaphgt,miaphhi,miaphhs, %
miaphle,miaphlo,miaphls,miaphlt,miaphmi,miaphne,miaphpl,miaphvc, %
miaphvs,miapl,miavc,miavs,miaxy,miaxyal,miaxycc,miaxycs,miaxyeq, %
miaxyge,miaxygt,miaxyhi,miaxyhs,miaxyle,miaxylo,miaxyls,miaxylt, %
miaxymi,miaxyne,miaxypl,miaxyvc,miaxyvs,mla,mlaal,mlaals,mlacc,mlaccs, %
mlacs,mlacss,mlaeq,mlaeqs,mlage,mlages,mlagt,mlagts,mlahi,mlahis, %
mlahs,mlahss,mlale,mlales,mlalo,mlalos,mlals,mlalss,mlalt,mlalts, %
mlami,mlamis,mlane,mlanes,mlapl,mlapls,mlas,mlavc,mlavcs,mlavs,mlavss, %
mov,moval,movals,movcc,movccs,movcs,movcss,moveq,moveqs,movge,movges, %
movgt,movgts,movhi,movhis,movhs,movhss,movle,movles,movlo,movlos, %
movls,movlss,movlt,movlts,movmi,movmis,movne,movnes,movpl,movpls,movs, %
movvc,movvcs,movvs,movvss,mra,mraal,mracc,mracs,mraeq,mrage,mragt, %
mrahi,mrahs,mrale,mralo,mrals,mralt,mrami,mrane,mrapl,mravc,mravs,mrc, %
mrc2,mrcal,mrccc,mrccs,mrceq,mrcge,mrcgt,mrchi,mrchs,mrcle,mrclo, %
mrcls,mrclt,mrcmi,mrcne,mrcpl,mrcvc,mrcvs,mrrc,mrrc2,mrrcal,mrrccc, %
mrrccs,mrrceq,mrrcge,mrrcgt,mrrchi,mrrchs,mrrcle,mrrclo,mrrcls,mrrclt, %
mrrcmi,mrrcne,mrrcpl,mrrcvc,mrrcvs,mrs,mrsal,mrscc,mrscs,mrseq,mrsge, %
mrsgt,mrshi,mrshs,mrsle,mrslo,mrsls,mrslt,mrsmi,mrsne,mrspl,mrsvc, %
mrsvs,msr,msral,msrcc,msrcs,msreq,msrge,msrgt,msrhi,msrhs,msrle,msrlo, %
msrls,msrlt,msrmi,msrne,msrpl,msrvc,msrvs,mul,mulal,mulals,mulcc, %
mulccs,mulcs,mulcss,muleq,muleqs,mulge,mulges,mulgt,mulgts,mulhi, %
mulhis,mulhs,mulhss,mulle,mulles,mullo,mullos,mulls,mullss,mullt, %
mullts,mulmi,mulmis,mulne,mulnes,mulpl,mulpls,muls,mulvc,mulvcs,mulvs, %
mulvss,mvn,mvnal,mvnals,mvncc,mvnccs,mvncs,mvncss,mvneq,mvneqs,mvnge, %
mvnges,mvngt,mvngts,mvnhi,mvnhis,mvnhs,mvnhss,mvnle,mvnles,mvnlo, %
mvnlos,mvnls,mvnlss,mvnlt,mvnlts,mvnmi,mvnmis,mvnne,mvnnes,mvnpl, %
mvnpls,mvns,mvnvc,mvnvcs,mvnvs,mvnvss,nop,orr,orral,orrals,orrcc, %
orrccs,orrcs,orrcss,orreq,orreqs,orrge,orrges,orrgt,orrgts,orrhi, %
orrhis,orrhs,orrhss,orrle,orrles,orrlo,orrlos,orrls,orrlss,orrlt, %
orrlts,orrmi,orrmis,orrne,orrnes,orrpl,orrpls,orrs,orrvc,orrvcs,orrvs, %
orrvss,pkhbt,pkhbtal,pkhbtcc,pkhbtcs,pkhbteq,pkhbtge,pkhbtgt,pkhbthi, %
pkhbths,pkhbtle,pkhbtlo,pkhbtls,pkhbtlt,pkhbtmi,pkhbtne,pkhbtpl, %
pkhbtvc,pkhbtvs,pkhtb,pkhtbal,pkhtbcc,pkhtbcs,pkhtbeq,pkhtbge,pkhtbgt, %
pkhtbhi,pkhtbhs,pkhtble,pkhtblo,pkhtbls,pkhtblt,pkhtbmi,pkhtbne, %
pkhtbpl,pkhtbvc,pkhtbvs,pld,pop,popal,popcc,popcs,popeq,popge,popgt, %
pophi,pophs,pople,poplo,popls,poplt,popmi,popne,poppl,popvc,popvs, %
push,pushal,pushcc,pushcs,pusheq,pushge,pushgt,pushhi,pushhs,pushle, %
pushlo,pushls,pushlt,pushmi,pushne,pushpl,pushvc,pushvs,qadd,qadd16, %
qadd16al,qadd16cc,qadd16cs,qadd16eq,qadd16ge,qadd16gt,qadd16hi, %
qadd16hs,qadd16le,qadd16lo,qadd16ls,qadd16lt,qadd16mi,qadd16ne, %
qadd16pl,qadd16vc,qadd16vs,qadd8,qadd8al,qadd8cc,qadd8cs,qadd8eq, %
qadd8ge,qadd8gt,qadd8hi,qadd8hs,qadd8le,qadd8lo,qadd8ls,qadd8lt, %
qadd8mi,qadd8ne,qadd8pl,qadd8vc,qadd8vs,qaddal,qaddcc,qaddcs,qaddeq, %
qaddge,qaddgt,qaddhi,qaddhs,qaddle,qaddlo,qaddls,qaddlt,qaddmi,qaddne, %
qaddpl,qaddsubx,qaddsubxal,qaddsubxcc,qaddsubxcs,qaddsubxeq, %
qaddsubxge,qaddsubxgt,qaddsubxhi,qaddsubxhs,qaddsubxle,qaddsubxlo, %
qaddsubxls,qaddsubxlt,qaddsubxmi,qaddsubxne,qaddsubxpl,qaddsubxvc, %
qaddsubxvs,qaddvc,qaddvs,qdadd,qdaddal,qdaddcc,qdaddcs,qdaddeq, %
qdaddge,qdaddgt,qdaddhi,qdaddhs,qdaddle,qdaddlo,qdaddls,qdaddlt, %
qdaddmi,qdaddne,qdaddpl,qdaddvc,qdaddvs,qdsub,qdsubal,qdsubcc,qdsubcs, %
qdsubeq,qdsubge,qdsubgt,qdsubhi,qdsubhs,qdsuble,qdsublo,qdsubls, %
qdsublt,qdsubmi,qdsubne,qdsubpl,qdsubvc,qdsubvs,qsub,qsub16,qsub16al, %
qsub16cc,qsub16cs,qsub16eq,qsub16ge,qsub16gt,qsub16hi,qsub16hs, %
qsub16le,qsub16lo,qsub16ls,qsub16lt,qsub16mi,qsub16ne,qsub16pl, %
qsub16vc,qsub16vs,qsub8,qsub8al,qsub8cc,qsub8cs,qsub8eq,qsub8ge, %
qsub8gt,qsub8hi,qsub8hs,qsub8le,qsub8lo,qsub8ls,qsub8lt,qsub8mi, %
qsub8ne,qsub8pl,qsub8vc,qsub8vs,qsubaddx,qsubaddxal,qsubaddxcc, %
qsubaddxcs,qsubaddxeq,qsubaddxge,qsubaddxgt,qsubaddxhi,qsubaddxhs, %
qsubaddxle,qsubaddxlo,qsubaddxls,qsubaddxlt,qsubaddxmi,qsubaddxne, %
qsubaddxpl,qsubaddxvc,qsubaddxvs,qsubal,qsubcc,qsubcs,qsubeq,qsubge, %
qsubgt,qsubhi,qsubhs,qsuble,qsublo,qsubls,qsublt,qsubmi,qsubne,qsubpl, %
qsubvc,qsubvs,rev,rev16,rev16al,rev16cc,rev16cs,rev16eq,rev16ge, %
rev16gt,rev16hi,rev16hs,rev16le,rev16lo,rev16ls,rev16lt,rev16mi, %
rev16ne,rev16pl,rev16vc,rev16vs,reval,revcc,revcs,reveq,revge,revgt, %
revhi,revhs,revle,revlo,revls,revlt,revmi,revne,revpl,revsh,revshal, %
revshcc,revshcs,revsheq,revshge,revshgt,revshhi,revshhs,revshle, %
revshlo,revshls,revshlt,revshmi,revshne,revshpl,revshvc,revshvs,revvc, %
revvs,rfeda,rfedb,rfeea,rfeed,rfefa,rfefd,rfeia,rfeib,rsb,rsbal, %
rsbals,rsbcc,rsbccs,rsbcs,rsbcss,rsbeq,rsbeqs,rsbge,rsbges,rsbgt, %
rsbgts,rsbhi,rsbhis,rsbhs,rsbhss,rsble,rsbles,rsblo,rsblos,rsbls, %
rsblss,rsblt,rsblts,rsbmi,rsbmis,rsbne,rsbnes,rsbpl,rsbpls,rsbs,rsbvc, %
rsbvcs,rsbvs,rsbvss,rsc,rscal,rscals,rsccc,rscccs,rsccs,rsccss,rsceq, %
rsceqs,rscge,rscges,rscgt,rscgts,rschi,rschis,rschs,rschss,rscle, %
rscles,rsclo,rsclos,rscls,rsclss,rsclt,rsclts,rscmi,rscmis,rscne, %
rscnes,rscpl,rscpls,rscs,rscvc,rscvcs,rscvs,rscvss,sadd16,sadd16al, %
sadd16cc,sadd16cs,sadd16eq,sadd16ge,sadd16gt,sadd16hi,sadd16hs, %
sadd16le,sadd16lo,sadd16ls,sadd16lt,sadd16mi,sadd16ne,sadd16pl, %
sadd16vc,sadd16vs,sadd8,sadd8al,sadd8cc,sadd8cs,sadd8eq,sadd8ge, %
sadd8gt,sadd8hi,sadd8hs,sadd8le,sadd8lo,sadd8ls,sadd8lt,sadd8mi, %
sadd8ne,sadd8pl,sadd8vc,sadd8vs,saddsubx,saddsubxal,saddsubxcc, %
saddsubxcs,saddsubxeq,saddsubxge,saddsubxgt,saddsubxhi,saddsubxhs, %
saddsubxle,saddsubxlo,saddsubxls,saddsubxlt,saddsubxmi,saddsubxne, %
saddsubxpl,saddsubxvc,saddsubxvs,sbc,sbcal,sbcals,sbccc,sbcccs,sbccs, %
sbccss,sbceq,sbceqs,sbcge,sbcges,sbcgt,sbcgts,sbchi,sbchis,sbchs, %
sbchss,sbcle,sbcles,sbclo,sbclos,sbcls,sbclss,sbclt,sbclts,sbcmi, %
sbcmis,sbcne,sbcnes,sbcpl,sbcpls,sbcs,sbcvc,sbcvcs,sbcvs,sbcvss,sel, %
selal,selcc,selcs,seleq,selge,selgt,selhi,selhs,selle,sello,sells, %
sellt,selmi,selne,selpl,selvc,selvs,setend,shadd16,shadd16al, %
shadd16cc,shadd16cs,shadd16eq,shadd16ge,shadd16gt,shadd16hi,shadd16hs, %
shadd16le,shadd16lo,shadd16ls,shadd16lt,shadd16mi,shadd16ne,shadd16pl, %
shadd16vc,shadd16vs,shadd8,shadd8al,shadd8cc,shadd8cs,shadd8eq, %
shadd8ge,shadd8gt,shadd8hi,shadd8hs,shadd8le,shadd8lo,shadd8ls, %
shadd8lt,shadd8mi,shadd8ne,shadd8pl,shadd8vc,shadd8vs,shaddsubx, %
shaddsubxal,shaddsubxcc,shaddsubxcs,shaddsubxeq,shaddsubxge, %
shaddsubxgt,shaddsubxhi,shaddsubxhs,shaddsubxle,shaddsubxlo, %
shaddsubxls,shaddsubxlt,shaddsubxmi,shaddsubxne,shaddsubxpl, %
shaddsubxvc,shaddsubxvs,shsub16,shsub16al,shsub16cc,shsub16cs, %
shsub16eq,shsub16ge,shsub16gt,shsub16hi,shsub16hs,shsub16le,shsub16lo, %
shsub16ls,shsub16lt,shsub16mi,shsub16ne,shsub16pl,shsub16vc,shsub16vs, %
shsub8,shsub8al,shsub8cc,shsub8cs,shsub8eq,shsub8ge,shsub8gt,shsub8hi, %
shsub8hs,shsub8le,shsub8lo,shsub8ls,shsub8lt,shsub8mi,shsub8ne, %
shsub8pl,shsub8vc,shsub8vs,shsubaddx,shsubaddxal,shsubaddxcc, %
shsubaddxcs,shsubaddxeq,shsubaddxge,shsubaddxgt,shsubaddxhi, %
shsubaddxhs,shsubaddxle,shsubaddxlo,shsubaddxls,shsubaddxlt, %
shsubaddxmi,shsubaddxne,shsubaddxpl,shsubaddxvc,shsubaddxvs,smlad, %
smladal,smladcc,smladcs,smladeq,smladge,smladgt,smladhi,smladhs, %
smladle,smladlo,smladls,smladlt,smladmi,smladne,smladpl,smladvc, %
smladvs,smladx,smladxal,smladxcc,smladxcs,smladxeq,smladxge,smladxgt, %
smladxhi,smladxhs,smladxle,smladxlo,smladxls,smladxlt,smladxmi, %
smladxne,smladxpl,smladxvc,smladxvs,smlal,smlalal,smlalals,smlalcc, %
smlalccs,smlalcs,smlalcss,smlald,smlaldal,smlaldcc,smlaldcs,smlaldeq, %
smlaldge,smlaldgt,smlaldhi,smlaldhs,smlaldle,smlaldlo,smlaldls, %
smlaldlt,smlaldmi,smlaldne,smlaldpl,smlaldvc,smlaldvs,smlaldx, %
smlaldxal,smlaldxcc,smlaldxcs,smlaldxeq,smlaldxge,smlaldxgt,smlaldxhi, %
smlaldxhs,smlaldxle,smlaldxlo,smlaldxls,smlaldxlt,smlaldxmi,smlaldxne, %
smlaldxpl,smlaldxvc,smlaldxvs,smlaleq,smlaleqs,smlalge,smlalges, %
smlalgt,smlalgts,smlalhi,smlalhis,smlalhs,smlalhss,smlalle,smlalles, %
smlallo,smlallos,smlalls,smlallss,smlallt,smlallts,smlalmi,smlalmis, %
smlalne,smlalnes,smlalpl,smlalpls,smlals,smlalvc,smlalvcs,smlalvs, %
smlalvss,smlalxy,smlalxyal,smlalxycc,smlalxycs,smlalxyeq,smlalxyge, %
smlalxygt,smlalxyhi,smlalxyhs,smlalxyle,smlalxylo,smlalxyls,smlalxylt, %
smlalxymi,smlalxyne,smlalxypl,smlalxyvc,smlalxyvs,smlawy,smlawyal, %
smlawycc,smlawycs,smlawyeq,smlawyge,smlawygt,smlawyhi,smlawyhs, %
smlawyle,smlawylo,smlawyls,smlawylt,smlawymi,smlawyne,smlawypl, %
smlawyvc,smlawyvs,smlaxy,smlaxyal,smlaxycc,smlaxycs,smlaxyeq,smlaxyge, %
smlaxygt,smlaxyhi,smlaxyhs,smlaxyle,smlaxylo,smlaxyls,smlaxylt, %
smlaxymi,smlaxyne,smlaxypl,smlaxyvc,smlaxyvs,smlsd,smlsdal,smlsdcc, %
smlsdcs,smlsdeq,smlsdge,smlsdgt,smlsdhi,smlsdhs,smlsdle,smlsdlo, %
smlsdls,smlsdlt,smlsdmi,smlsdne,smlsdpl,smlsdvc,smlsdvs,smlsdx, %
smlsdxal,smlsdxcc,smlsdxcs,smlsdxeq,smlsdxge,smlsdxgt,smlsdxhi, %
smlsdxhs,smlsdxle,smlsdxlo,smlsdxls,smlsdxlt,smlsdxmi,smlsdxne, %
smlsdxpl,smlsdxvc,smlsdxvs,smlsld,smlsldal,smlsldcc,smlsldcs,smlsldeq, %
smlsldge,smlsldgt,smlsldhi,smlsldhs,smlsldle,smlsldlo,smlsldls, %
smlsldlt,smlsldmi,smlsldne,smlsldpl,smlsldvc,smlsldvs,smlsldx, %
smlsldxal,smlsldxcc,smlsldxcs,smlsldxeq,smlsldxge,smlsldxgt,smlsldxhi, %
smlsldxhs,smlsldxle,smlsldxlo,smlsldxls,smlsldxlt,smlsldxmi,smlsldxne, %
smlsldxpl,smlsldxvc,smlsldxvs,smmla,smmlaal,smmlacc,smmlacs,smmlaeq, %
smmlage,smmlagt,smmlahi,smmlahs,smmlale,smmlalo,smmlals,smmlalt, %
smmlami,smmlane,smmlapl,smmlar,smmlaral,smmlarcc,smmlarcs,smmlareq, %
smmlarge,smmlargt,smmlarhi,smmlarhs,smmlarle,smmlarlo,smmlarls, %
smmlarlt,smmlarmi,smmlarne,smmlarpl,smmlarvc,smmlarvs,smmlavc,smmlavs, %
smmls,smmlsal,smmlscc,smmlscs,smmlseq,smmlsge,smmlsgt,smmlshi,smmlshs, %
smmlsle,smmlslo,smmlsls,smmlslt,smmlsmi,smmlsne,smmlspl,smmlsr, %
smmlsral,smmlsrcc,smmlsrcs,smmlsreq,smmlsrge,smmlsrgt,smmlsrhi, %
smmlsrhs,smmlsrle,smmlsrlo,smmlsrls,smmlsrlt,smmlsrmi,smmlsrne, %
smmlsrpl,smmlsrvc,smmlsrvs,smmlsvc,smmlsvs,smmul,smmulal,smmulcc, %
smmulcs,smmuleq,smmulge,smmulgt,smmulhi,smmulhs,smmulle,smmullo, %
smmulls,smmullt,smmulmi,smmulne,smmulpl,smmulr,smmulral,smmulrcc, %
smmulrcs,smmulreq,smmulrge,smmulrgt,smmulrhi,smmulrhs,smmulrle, %
smmulrlo,smmulrls,smmulrlt,smmulrmi,smmulrne,smmulrpl,smmulrvc, %
smmulrvs,smmulvc,smmulvs,smuad,smuadal,smuadcc,smuadcs,smuadeq, %
smuadge,smuadgt,smuadhi,smuadhs,smuadle,smuadlo,smuadls,smuadlt, %
smuadmi,smuadne,smuadpl,smuadvc,smuadvs,smuadx,smuadxal,smuadxcc, %
smuadxcs,smuadxeq,smuadxge,smuadxgt,smuadxhi,smuadxhs,smuadxle, %
smuadxlo,smuadxls,smuadxlt,smuadxmi,smuadxne,smuadxpl,smuadxvc, %
smuadxvs,smull,smullal,smullals,smullcc,smullccs,smullcs,smullcss, %
smulleq,smulleqs,smullge,smullges,smullgt,smullgts,smullhi,smullhis, %
smullhs,smullhss,smullle,smullles,smulllo,smulllos,smullls,smulllss, %
smulllt,smulllts,smullmi,smullmis,smullne,smullnes,smullpl,smullpls, %
smulls,smullvc,smullvcs,smullvs,smullvss,smulwy,smulwyal,smulwycc, %
smulwycs,smulwyeq,smulwyge,smulwygt,smulwyhi,smulwyhs,smulwyle, %
smulwylo,smulwyls,smulwylt,smulwymi,smulwyne,smulwypl,smulwyvc, %
smulwyvs,smulxy,smulxyal,smulxycc,smulxycs,smulxyeq,smulxyge,smulxygt, %
smulxyhi,smulxyhs,smulxyle,smulxylo,smulxyls,smulxylt,smulxymi, %
smulxyne,smulxypl,smulxyvc,smulxyvs,smusd,smusdal,smusdcc,smusdcs, %
smusdeq,smusdge,smusdgt,smusdhi,smusdhs,smusdle,smusdlo,smusdls, %
smusdlt,smusdmi,smusdne,smusdpl,smusdvc,smusdvs,smusdx,smusdxal, %
smusdxcc,smusdxcs,smusdxeq,smusdxge,smusdxgt,smusdxhi,smusdxhs, %
smusdxle,smusdxlo,smusdxls,smusdxlt,smusdxmi,smusdxne,smusdxpl, %
smusdxvc,smusdxvs,srsda,srsdb,srsea,srsed,srsfa,srsfd,srsia,srsib, %
ssat,ssat16,ssat16al,ssat16cc,ssat16cs,ssat16eq,ssat16ge,ssat16gt, %
ssat16hi,ssat16hs,ssat16le,ssat16lo,ssat16ls,ssat16lt,ssat16mi, %
ssat16ne,ssat16pl,ssat16vc,ssat16vs,ssatal,ssatcc,ssatcs,ssateq, %
ssatge,ssatgt,ssathi,ssaths,ssatle,ssatlo,ssatls,ssatlt,ssatmi,ssatne, %
ssatpl,ssatvc,ssatvs,ssub16,ssub16al,ssub16cc,ssub16cs,ssub16eq, %
ssub16ge,ssub16gt,ssub16hi,ssub16hs,ssub16le,ssub16lo,ssub16ls, %
ssub16lt,ssub16mi,ssub16ne,ssub16pl,ssub16vc,ssub16vs,ssub8,ssub8al, %
ssub8cc,ssub8cs,ssub8eq,ssub8ge,ssub8gt,ssub8hi,ssub8hs,ssub8le, %
ssub8lo,ssub8ls,ssub8lt,ssub8mi,ssub8ne,ssub8pl,ssub8vc,ssub8vs, %
ssubaddx,ssubaddxal,ssubaddxcc,ssubaddxcs,ssubaddxeq,ssubaddxge, %
ssubaddxgt,ssubaddxhi,ssubaddxhs,ssubaddxle,ssubaddxlo,ssubaddxls, %
ssubaddxlt,ssubaddxmi,ssubaddxne,ssubaddxpl,ssubaddxvc,ssubaddxvs,stc, %
stc2,stcal,stccc,stccs,stceq,stcge,stcgt,stchi,stchs,stcle,stclo, %
stcls,stclt,stcmi,stcne,stcpl,stcvc,stcvs,stmalda,stmaldb,stmalea, %
stmaled,stmalfa,stmalfd,stmalia,stmalib,stmccda,stmccdb,stmccea, %
stmcced,stmccfa,stmccfd,stmccia,stmccib,stmcsda,stmcsdb,stmcsea, %
stmcsed,stmcsfa,stmcsfd,stmcsia,stmcsib,stmda,stmdb,stmea,stmed, %
stmeqda,stmeqdb,stmeqea,stmeqed,stmeqfa,stmeqfd,stmeqia,stmeqib,stmfa, %
stmfd,stmgeda,stmgedb,stmgeea,stmgeed,stmgefa,stmgefd,stmgeia,stmgeib, %
stmgtda,stmgtdb,stmgtea,stmgted,stmgtfa,stmgtfd,stmgtia,stmgtib, %
stmhida,stmhidb,stmhiea,stmhied,stmhifa,stmhifd,stmhiia,stmhiib, %
stmhsda,stmhsdb,stmhsea,stmhsed,stmhsfa,stmhsfd,stmhsia,stmhsib,stmia, %
stmib,stmleda,stmledb,stmleea,stmleed,stmlefa,stmlefd,stmleia,stmleib, %
stmloda,stmlodb,stmloea,stmloed,stmlofa,stmlofd,stmloia,stmloib, %
stmlsda,stmlsdb,stmlsea,stmlsed,stmlsfa,stmlsfd,stmlsia,stmlsib, %
stmltda,stmltdb,stmltea,stmlted,stmltfa,stmltfd,stmltia,stmltib, %
stmmida,stmmidb,stmmiea,stmmied,stmmifa,stmmifd,stmmiia,stmmiib, %
stmneda,stmnedb,stmneea,stmneed,stmnefa,stmnefd,stmneia,stmneib, %
stmplda,stmpldb,stmplea,stmpled,stmplfa,stmplfd,stmplia,stmplib, %
stmvcda,stmvcdb,stmvcea,stmvced,stmvcfa,stmvcfd,stmvcia,stmvcib, %
stmvsda,stmvsdb,stmvsea,stmvsed,stmvsfa,stmvsfd,stmvsia,stmvsib,str, %
stral,stralb,stralbt,strald,stralh,stralt,strb,strbt,strcc,strccb, %
strccbt,strccd,strcch,strcct,strcs,strcsb,strcsbt,strcsd,strcsh, %
strcst,strd,streq,streqb,streqbt,streqd,streqh,streqt,strex,strexal, %
strexcc,strexcs,strexeq,strexge,strexgt,strexhi,strexhs,strexle, %
strexlo,strexls,strexlt,strexmi,strexne,strexpl,strexvc,strexvs,strge, %
strgeb,strgebt,strged,strgeh,strget,strgt,strgtb,strgtbt,strgtd, %
strgth,strgtt,strh,strhi,strhib,strhibt,strhid,strhih,strhit,strhs, %
strhsb,strhsbt,strhsd,strhsh,strhst,strle,strleb,strlebt,strled, %
strleh,strlet,strlo,strlob,strlobt,strlod,strloh,strlot,strls,strlsb, %
strlsbt,strlsd,strlsh,strlst,strlt,strltb,strltbt,strltd,strlth, %
strltt,strmi,strmib,strmibt,strmid,strmih,strmit,strne,strneb,strnebt, %
strned,strneh,strnet,strpl,strplb,strplbt,strpld,strplh,strplt,strt, %
strvc,strvcb,strvcbt,strvcd,strvch,strvct,strvs,strvsb,strvsbt,strvsd, %
strvsh,strvst,sub,subal,subals,subcc,subccs,subcs,subcss,subeq,subeqs, %
subge,subges,subgt,subgts,subhi,subhis,subhs,subhss,suble,subles, %
sublo,sublos,subls,sublss,sublt,sublts,submi,submis,subne,subnes, %
subpl,subpls,subs,subvc,subvcs,subvs,subvss,swi,swial,swicc,swics, %
swieq,swige,swigt,swihi,swihs,swile,swilo,swils,swilt,swimi,swine, %
swipl,swivc,swivs,swp,swpal,swpalb,swpb,swpcc,swpccb,swpcs,swpcsb, %
swpeq,swpeqb,swpge,swpgeb,swpgt,swpgtb,swphi,swphib,swphs,swphsb, %
swple,swpleb,swplo,swplob,swpls,swplsb,swplt,swpltb,swpmi,swpmib, %
swpne,swpneb,swppl,swpplb,swpvc,swpvcb,swpvs,swpvsb,sxtab,sxtab16, %
sxtab16al,sxtab16cc,sxtab16cs,sxtab16eq,sxtab16ge,sxtab16gt,sxtab16hi, %
sxtab16hs,sxtab16le,sxtab16lo,sxtab16ls,sxtab16lt,sxtab16mi,sxtab16ne, %
sxtab16pl,sxtab16vc,sxtab16vs,sxtabal,sxtabcc,sxtabcs,sxtabeq,sxtabge, %
sxtabgt,sxtabhi,sxtabhs,sxtable,sxtablo,sxtabls,sxtablt,sxtabmi, %
sxtabne,sxtabpl,sxtabvc,sxtabvs,sxtah,sxtahal,sxtahcc,sxtahcs,sxtaheq, %
sxtahge,sxtahgt,sxtahhi,sxtahhs,sxtahle,sxtahlo,sxtahls,sxtahlt, %
sxtahmi,sxtahne,sxtahpl,sxtahvc,sxtahvs,sxtb,sxtb16,sxtb16al,sxtb16cc, %
sxtb16cs,sxtb16eq,sxtb16ge,sxtb16gt,sxtb16hi,sxtb16hs,sxtb16le, %
sxtb16lo,sxtb16ls,sxtb16lt,sxtb16mi,sxtb16ne,sxtb16pl,sxtb16vc, %
sxtb16vs,sxtbal,sxtbcc,sxtbcs,sxtbeq,sxtbge,sxtbgt,sxtbhi,sxtbhs, %
sxtble,sxtblo,sxtbls,sxtblt,sxtbmi,sxtbne,sxtbpl,sxtbvc,sxtbvs,sxth, %
sxthal,sxthcc,sxthcs,sxtheq,sxthge,sxthgt,sxthhi,sxthhs,sxthle,sxthlo, %
sxthls,sxthlt,sxthmi,sxthne,sxthpl,sxthvc,sxthvs,teq,teqal,teqcc, %
teqcs,teqeq,teqge,teqgt,teqhi,teqhs,teqle,teqlo,teqls,teqlt,teqmi, %
teqne,teqpl,teqvc,teqvs,tst,tstal,tstcc,tstcs,tsteq,tstge,tstgt,tsthi, %
tsths,tstle,tstlo,tstls,tstlt,tstmi,tstne,tstpl,tstvc,tstvs,uadd16, %
uadd16al,uadd16cc,uadd16cs,uadd16eq,uadd16ge,uadd16gt,uadd16hi, %
uadd16hs,uadd16le,uadd16lo,uadd16ls,uadd16lt,uadd16mi,uadd16ne, %
uadd16pl,uadd16vc,uadd16vs,uadd8,uadd8al,uadd8cc,uadd8cs,uadd8eq, %
uadd8ge,uadd8gt,uadd8hi,uadd8hs,uadd8le,uadd8lo,uadd8ls,uadd8lt, %
uadd8mi,uadd8ne,uadd8pl,uadd8vc,uadd8vs,uaddsubx,uaddsubxal, %
uaddsubxcc,uaddsubxcs,uaddsubxeq,uaddsubxge,uaddsubxgt,uaddsubxhi, %
uaddsubxhs,uaddsubxle,uaddsubxlo,uaddsubxls,uaddsubxlt,uaddsubxmi, %
uaddsubxne,uaddsubxpl,uaddsubxvc,uaddsubxvs,uhadd16,uhadd16al, %
uhadd16cc,uhadd16cs,uhadd16eq,uhadd16ge,uhadd16gt,uhadd16hi,uhadd16hs, %
uhadd16le,uhadd16lo,uhadd16ls,uhadd16lt,uhadd16mi,uhadd16ne,uhadd16pl, %
uhadd16vc,uhadd16vs,uhadd8,uhadd8al,uhadd8cc,uhadd8cs,uhadd8eq, %
uhadd8ge,uhadd8gt,uhadd8hi,uhadd8hs,uhadd8le,uhadd8lo,uhadd8ls, %
uhadd8lt,uhadd8mi,uhadd8ne,uhadd8pl,uhadd8vc,uhadd8vs,uhaddsubx, %
uhaddsubxal,uhaddsubxcc,uhaddsubxcs,uhaddsubxeq,uhaddsubxge, %
uhaddsubxgt,uhaddsubxhi,uhaddsubxhs,uhaddsubxle,uhaddsubxlo, %
uhaddsubxls,uhaddsubxlt,uhaddsubxmi,uhaddsubxne,uhaddsubxpl, %
uhaddsubxvc,uhaddsubxvs,uhsub16,uhsub16al,uhsub16cc,uhsub16cs, %
uhsub16eq,uhsub16ge,uhsub16gt,uhsub16hi,uhsub16hs,uhsub16le,uhsub16lo, %
uhsub16ls,uhsub16lt,uhsub16mi,uhsub16ne,uhsub16pl,uhsub16vc,uhsub16vs, %
uhsub8,uhsub8al,uhsub8cc,uhsub8cs,uhsub8eq,uhsub8ge,uhsub8gt,uhsub8hi, %
uhsub8hs,uhsub8le,uhsub8lo,uhsub8ls,uhsub8lt,uhsub8mi,uhsub8ne, %
uhsub8pl,uhsub8vc,uhsub8vs,uhsubaddx,uhsubaddxal,uhsubaddxcc, %
uhsubaddxcs,uhsubaddxeq,uhsubaddxge,uhsubaddxgt,uhsubaddxhi, %
uhsubaddxhs,uhsubaddxle,uhsubaddxlo,uhsubaddxls,uhsubaddxlt, %
uhsubaddxmi,uhsubaddxne,uhsubaddxpl,uhsubaddxvc,uhsubaddxvs,umaal, %
umaalal,umaalcc,umaalcs,umaaleq,umaalge,umaalgt,umaalhi,umaalhs, %
umaalle,umaallo,umaalls,umaallt,umaalmi,umaalne,umaalpl,umaalvc, %
umaalvs,umlal,umlalal,umlalals,umlalcc,umlalccs,umlalcs,umlalcss, %
umlaleq,umlaleqs,umlalge,umlalges,umlalgt,umlalgts,umlalhi,umlalhis, %
umlalhs,umlalhss,umlalle,umlalles,umlallo,umlallos,umlalls,umlallss, %
umlallt,umlallts,umlalmi,umlalmis,umlalne,umlalnes,umlalpl,umlalpls, %
umlals,umlalvc,umlalvcs,umlalvs,umlalvss,umull,umullal,umullals, %
umullcc,umullccs,umullcs,umullcss,umulleq,umulleqs,umullge,umullges, %
umullgt,umullgts,umullhi,umullhis,umullhs,umullhss,umullle,umullles, %
umulllo,umulllos,umullls,umulllss,umulllt,umulllts,umullmi,umullmis, %
umullne,umullnes,umullpl,umullpls,umulls,umullvc,umullvcs,umullvs, %
umullvss,uqadd16,uqadd16al,uqadd16cc,uqadd16cs,uqadd16eq,uqadd16ge, %
uqadd16gt,uqadd16hi,uqadd16hs,uqadd16le,uqadd16lo,uqadd16ls,uqadd16lt, %
uqadd16mi,uqadd16ne,uqadd16pl,uqadd16vc,uqadd16vs,uqadd8,uqadd8al, %
uqadd8cc,uqadd8cs,uqadd8eq,uqadd8ge,uqadd8gt,uqadd8hi,uqadd8hs, %
uqadd8le,uqadd8lo,uqadd8ls,uqadd8lt,uqadd8mi,uqadd8ne,uqadd8pl, %
uqadd8vc,uqadd8vs,uqaddsubx,uqaddsubxal,uqaddsubxcc,uqaddsubxcs, %
uqaddsubxeq,uqaddsubxge,uqaddsubxgt,uqaddsubxhi,uqaddsubxhs, %
uqaddsubxle,uqaddsubxlo,uqaddsubxls,uqaddsubxlt,uqaddsubxmi, %
uqaddsubxne,uqaddsubxpl,uqaddsubxvc,uqaddsubxvs,uqsub16,uqsub16al, %
uqsub16cc,uqsub16cs,uqsub16eq,uqsub16ge,uqsub16gt,uqsub16hi,uqsub16hs, %
uqsub16le,uqsub16lo,uqsub16ls,uqsub16lt,uqsub16mi,uqsub16ne,uqsub16pl, %
uqsub16vc,uqsub16vs,uqsub8,uqsub8al,uqsub8cc,uqsub8cs,uqsub8eq, %
uqsub8ge,uqsub8gt,uqsub8hi,uqsub8hs,uqsub8le,uqsub8lo,uqsub8ls, %
uqsub8lt,uqsub8mi,uqsub8ne,uqsub8pl,uqsub8vc,uqsub8vs,uqsubaddx, %
uqsubaddxal,uqsubaddxcc,uqsubaddxcs,uqsubaddxeq,uqsubaddxge, %
uqsubaddxgt,uqsubaddxhi,uqsubaddxhs,uqsubaddxle,uqsubaddxlo, %
uqsubaddxls,uqsubaddxlt,uqsubaddxmi,uqsubaddxne,uqsubaddxpl, %
uqsubaddxvc,uqsubaddxvs,usad8,usad8al,usad8cc,usad8cs,usad8eq,usad8ge, %
usad8gt,usad8hi,usad8hs,usad8le,usad8lo,usad8ls,usad8lt,usad8mi, %
usad8ne,usad8pl,usad8vc,usad8vs,usada8,usada8al,usada8cc,usada8cs, %
usada8eq,usada8ge,usada8gt,usada8hi,usada8hs,usada8le,usada8lo, %
usada8ls,usada8lt,usada8mi,usada8ne,usada8pl,usada8vc,usada8vs,usat, %
usat16,usat16al,usat16cc,usat16cs,usat16eq,usat16ge,usat16gt,usat16hi, %
usat16hs,usat16le,usat16lo,usat16ls,usat16lt,usat16mi,usat16ne, %
usat16pl,usat16vc,usat16vs,usatal,usatcc,usatcs,usateq,usatge,usatgt, %
usathi,usaths,usatle,usatlo,usatls,usatlt,usatmi,usatne,usatpl,usatvc, %
usatvs,usub16,usub16al,usub16cc,usub16cs,usub16eq,usub16ge,usub16gt, %
usub16hi,usub16hs,usub16le,usub16lo,usub16ls,usub16lt,usub16mi, %
usub16ne,usub16pl,usub16vc,usub16vs,usub8,usub8al,usub8cc,usub8cs, %
usub8eq,usub8ge,usub8gt,usub8hi,usub8hs,usub8le,usub8lo,usub8ls, %
usub8lt,usub8mi,usub8ne,usub8pl,usub8vc,usub8vs,usubaddx,usubaddxal, %
usubaddxcc,usubaddxcs,usubaddxeq,usubaddxge,usubaddxgt,usubaddxhi, %
usubaddxhs,usubaddxle,usubaddxlo,usubaddxls,usubaddxlt,usubaddxmi, %
usubaddxne,usubaddxpl,usubaddxvc,usubaddxvs,uxtab,uxtab16,uxtab16al, %
uxtab16cc,uxtab16cs,uxtab16eq,uxtab16ge,uxtab16gt,uxtab16hi,uxtab16hs, %
uxtab16le,uxtab16lo,uxtab16ls,uxtab16lt,uxtab16mi,uxtab16ne,uxtab16pl, %
uxtab16vc,uxtab16vs,uxtabal,uxtabcc,uxtabcs,uxtabeq,uxtabge,uxtabgt, %
uxtabhi,uxtabhs,uxtable,uxtablo,uxtabls,uxtablt,uxtabmi,uxtabne, %
uxtabpl,uxtabvc,uxtabvs,uxtah,uxtahal,uxtahcc,uxtahcs,uxtaheq,uxtahge, %
uxtahgt,uxtahhi,uxtahhs,uxtahle,uxtahlo,uxtahls,uxtahlt,uxtahmi, %
uxtahne,uxtahpl,uxtahvc,uxtahvs,uxtb,uxtb16,uxtb16al,uxtb16cc, %
uxtb16cs,uxtb16eq,uxtb16ge,uxtb16gt,uxtb16hi,uxtb16hs,uxtb16le, %
uxtb16lo,uxtb16ls,uxtb16lt,uxtb16mi,uxtb16ne,uxtb16pl,uxtb16vc, %
uxtb16vs,uxtbal,uxtbcc,uxtbcs,uxtbeq,uxtbge,uxtbgt,uxtbhi,uxtbhs, %
uxtble,uxtblo,uxtbls,uxtblt,uxtbmi,uxtbne,uxtbpl,uxtbvc,uxtbvs,uxth, %
uxthal,uxthcc,uxthcs,uxtheq,uxthge,uxthgt,uxthhi,uxthhs,uxthle,uxthlo, %
uxthls,uxthlt,uxthmi,uxthne,uxthpl,uxthvc,uxthvs},%
morekeywords=[2]{.2byte,.4byte,.8byte,.abort,.abort,.align,.altmacro, %
.arch,.arch_extension,.arm,.ascii,.asciz,.balign,.bss, %
.bundle_align_mode,.bundle_lock,,.bundle_unlock,.byte,.cantunwind, %
.cfi_endproc,,.cfi_startproc,.code,.comm,.cpu,.data,.def,.desc,.dim, %
.dn,.double,.eabi_attribute,.eject,.else,.elseif,.end,.endef,.endfunc, %
.endif,.equ,.equiv,.eqv,.err,.error,.even,.exitm,.extend,.extend., %
.extern,.fail,.file,.fill,.float,.fnend,.fnstart,.force_thumb,.fpu, %
.func,.global,.globl,.gnu_attribute,.handlerdata,.hidden,.hword, %
.ident,.if,.incbin,.include,.inst,.inst.n,.inst.w,.int,.internal,.irp, %
.irpc,.lcomm,.ldouble,.lflags,.line,.linkonce,.list,.ln,.loc, %
.loc_mark_labels,.local,.long,.ltorg,.ltorg.,.macro,.movsp,.mri, %
.noaltmacro,.nolist,.object_arch,.octa,.offset,.org,.p2align,.packed, %
.pad,.personality,.personalityindex,.pool,.popsection,.previous, %
.print,.protected,.psize,.purgem,.pushsection,.qn,.quad,.reloc,.rept, %
.req,.save,.sbttl,.scl,.secrel32,.section,.set,.setfp,.short,.single, %
.size,.skip,.sleb128,.space,.stabd,,.stabn,,.stabs,.string,.string16, %
.string32,.string64,.string8,.struct,.subsection,.symver,.syntax,.tag, %
.text,.thumb,.thumb_func,.thumb_set,.title,.tlsdescseq,.type,.uleb128, %
.unreq,.unwind_raw,.val,.version,.vsave,.vtable_entry,.vtable_inherit, %
.warning,.weak,.weakref,.word},%
alsoletter={.,0,1,2,3,4,5,6,7,8,9},%
alsodigit={?},%
sensitive=false,%
morestring=[b]",%
morecomment=[s]{/*}{*/},%
morecomment=[l]@,%
morecomment=[l]//,%
}[keywords,comments,strings]
\endinput

55
glossary.tex Normal file
View file

@ -0,0 +1,55 @@
\usepackage{xparse}
\DeclareDocumentCommand{\newdualentry}{ O{} O{} m m m m } {
\newglossaryentry{gls-#3}{name={#5},text={#5\glsadd{#3}},
description={#6},#1
}
\makeglossaries
\newacronym[see={[Siehe:]{gls-#3}},#2]{#3}{#4}{#5\glsadd{gls-#3}}
}
% Usage: \newdualentry{ref}{short}{long}{description}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Acronyms
\newdualentry{IDE}{IDE}{integrierte Entwicklungsumgebung}{ist Deutsch für \enquote{Integrated Development Environment} und beschreibt eine Sammlung von Programmen (Editor, Compiler, Linker, Loader, Debugger), welche zum programmieren verwendet wird \cite{wiki:IDE}}
\newdualentry{ARM}{ARM}{ARM Limited}{früher: Advanced RISC Machines Ltd. ist ein zur japanischen Firma Softbank gehörender Hersteller von IP (Intellectual property) Software im Bereich Mikroprozessoren. Die gleichnamige Mikroprozessorarchitektur, ARM, ist zur Zeit weltweit am weitesten verbreitet \cite{wiki:ARM} \cite{techradar:ARM}}
\newdualentry{CMSIS}{CMSIS}{Cortex Microcontroller Software Interface Standard}{ist ein von \gls{ARM} erstellter Standard, welcher das Verwenden von Software zwischen verschiedenen Cortex-Prozessoren verschiedener Chip-Hersteller ohne große Anpassungen ermöglichen soll. Hierfür stellt \gls{ARM} einige Definitionen -- wie zum Beispiel CORE, RTOS, DSP, \dots{} -- zur Verfügung, welche von den Chip-Herstellern implementiert werden, diese stellen dann CMSIS-Packs zur Verfügung, welche in Softwareprojekte eingebunden werden können. Siehe: \cite{arm:CMSIS}}
\newdualentry{SWD}{SWD}{Single Wire Debug}{ist ein Subset von \gls{JTAG}, welches mit weniger Portleitungen auskommt}
\newdualentry{JTAG}{JTAG}{Joint Test Action Group}{ist ein Synonym für den IEEE Standard 1149.1, welcher eine Methodik zum \gls{Debugging} von Hardware auf Leiterplatten beschreibt. Siehe: \cite{ieee:1149-1}}
\newdualentry{STDLib}{STDLib}{HTL Standard Library}{ist eine Library für den Cortex-M3, welche HTL-spezifische Funktionen, vor allem im Bereich I/O enthält}
\newdualentry{Keil}{Keil}{Keil Elektronik GmbH}{war eine deutsche Firma (Anfangs: GbR), gegründet 1982 von Günther und Reinhard Keil. Das Hauptaufgabengebiet lag bei der Entwicklung von Evaluation Boards und der $\mu$Vision \gls{IDE}. Keil wurde 2005 von \gls{ARM} aufgekauft. Siehe: \cite{wiki:Keil} \cite{techdesignforums:ARM}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Glossary
\newglossaryentry{Debugging}{
name={Debugging},
description={oder \enquote{Debuggen} beschreibt das finden und entfernen von Bugs (engl. für Käfer, hier: Programmfehler) mit Hilfe eines Debuggers. Siehe: \cite{wiki:Debugger}}
}
\newglossaryentry{Minimalsystem}{
name={Minimalsystem},
description={beschreibt das im Unterricht üblicherweise verwendete -- aber auch erweiterbare -- Microcontroller System}
}
\newglossaryentry{Core-Modul}{
name={Core-Modul},
description={ist die Baugruppe, auf welcher der Cortex-M3 Prozessor sitzt und Teil des neuen \gls{Minimalsystem}s}
}
\newglossaryentry{Basisplatine}{
name={Basisplatine},
description={ist die Baugruppe, auf welche das \gls{Core-Modul} gesteckt wird. Sie bietet Schalter, LEDs, Sensoren und ein Arduino Shield Interface. Zusammen mit dem \gls{Core-Modul} komplettiert sie das \gls{Minimalsystem}}
}
\newglossaryentry{C}{
name={C},
description={ist eine Programmiersprache, welche sowohl zur System- als auch zur Anwendungsprogrammierung eingesetzt wird. C ist eine der am weitesten verbreiteten Programmiersprachen weltweit und wurde in den 1970er-Jahren von Dennis Ritchie erfunden. Siehe: \cite{wiki:C}}
}
\newglossaryentry{C++}{
name={C++},
description={ist eine objektorientierte Erweiterung zu \gls{C}. C++ wurde 1979 von Bjarne Stroustrup entwickelt. Siehe: \cite{wiki:C++}}
}

684
htlDT.sty Normal file
View file

@ -0,0 +1,684 @@
% This package defines the style for diploma thesis at the HTBL Hollabrunn
\ProvidesPackage{htlDT}[2018/03/13 v.01 by Andreas Mieke, Marvin Scholz]
\RequirePackage{iftex}
\ifPDFTeX
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern}
\else
\ifXeTeX
\RequirePackage{fontspec}
\else
\RequirePackage{luatextra}
\fi
\defaultfontfeatures{Ligatures=TeX}
\fi
\RequirePackage{scrpage2}
\RequirePackage{hyperref}
\RequirePackage{etoolbox}
\RequirePackage{csquotes}
\RequirePackage{tabularx}
\RequirePackage{multirow}
\RequirePackage{lipsum}
\RequirePackage{calc}
\RequirePackage{pdfpages}
\RequirePackage{float}
\RequirePackage{mdframed}
\RequirePackage{pifont}
\RequirePackage[section]{placeins}
%\RequirePackage[
% inner=2cm,
% textwidth=18cm,
%]{geometry}
\RequirePackage{geometry}
\pagestyle{scrheadings}
\setheadsepline{0.5pt}
\setfootsepline{0.5pt}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\DeclareNewSectionCommand[
style=section,
counterwithin=subsubsection,
font=\normalsize,
afterskip=1.5ex plus .2ex,
beforeskip=-3.25ex plus -1ex minus -.2ex,
indent=0pt,
level=4,
tocstyle=subsection,
toclevel=4,
tocindent=7em,
tocnumwidth=4em
]{subsubsubsection}
\setcounter{secnumdepth}{\subsubsubsectionnumdepth}
\setcounter{tocdepth}{\subsubsubsectiontocdepth}
\let\Oldsection\section
\renewcommand{\section}{\FloatBarrier\Oldsection}
\let\Oldsubsection\subsection
\renewcommand{\subsection}{\FloatBarrier\Oldsubsection}
\let\Oldsubsubsection\subsubsection
\renewcommand{\subsubsection}{\FloatBarrier\Oldsubsubsection}
\let\Oldsubsubsubsection\subsubsubsection
\renewcommand{\subsubsubsection}{\FloatBarrier\Oldsubsubsubsection}
\RedeclareSectionCommand[
level=5,
counterwithin=subsubsubsection,
toclevel=5,
tocindent=12em,
tocnumwidth=6em
]{paragraph}
\RedeclareSectionCommand[
level=6,
toclevel=6,
tocindent=14em,
tocnumwidth=7em
]{subparagraph}
% \fig{ref}{descshort}{desclong}{width}{path}
\newcommand*{\fig}[5]{
\begin{figure}[!ht]
\centering
\includegraphics[width=#4]{#5}
\caption[#2]{#3}
\label{fig:#1}
\end{figure}
}
% \tab{ref}{descshort}{desclong}{constructor}{content}
\newcommand*{\tab}[5]{
\begin{table}[!ht]
\centering
\begin{tabular}{#4}
#5
\end{tabular}
\caption[#2]{#3}
\label{tab:#1}
\end{table}
}
% \eq{ref}{equation}
\newcommand*{\eq}[2]{
\begin{equation}
#2
\label{eq:#1}
\end{equation}
}
% \student{Name Name}{Teilbereich}{Klasse}{Betreuer}
\newcommand*{\students}{}%
\newcommand*{\studentslist}{}%
\newcommand*{\studentslistsmall}{}%
\newcommand*{\student}[4]{%
% Studentstable
\ifdefempty{\students}
{\appto\students{
\textsf{\textbf{#2}}\\%
\textsf{#1} & \textsf{#3} & \textsf{Betreuer/in:} & \textsf{#4}\\
}}
{\appto\students{\\
\textsf{\textbf{#2}}\\%
\textsf{#1} & \textsf{#3} & \textsf{Betreuer/in:} & \textsf{#4}\\
}}%
% Studentslist
\ifdefempty{\studentslist}%
{\appto\studentslist{%
\textsf{\LARGE \textbf{#1}}\\%
\makebox[\linewidth]{\rule{\textwidth}{0.4pt}}%
\par%
\vspace{2\parskip}%
}}%
{\appto\studentslist{%
\textsf{\LARGE \textbf{#1}}\\%
\makebox[\linewidth]{\rule{\textwidth}{0.4pt}}%
\par%
\vspace{2\parskip}%
}}%
% Studentslist Small
\ifdefempty{\studentslistsmall}%
{\appto\studentslistsmall{%
#1%
}}%
{\appto\studentslistsmall{%
, #1%
}}%
}%
\newcommand*{\htlheader}[1]{%
\begin{tabularx}{\textwidth}{| c | Y |}
\hline
\multirow{2}{*}{
\begin{minipage}{0.2\textwidth}
\vspace{1mm}
\includegraphics[width=\textwidth]{logos/htl-2}
\vspace{1mm}
\end{minipage}
} & \Large Blubber\\[2ex]
& Bla\\[1.5ex]
\hline
\end{tabularx}
% \centering%
% \fbox{%
% \begin{minipage}{0.2\textwidth}%
% \raggedright%
% \includegraphics[width=\textwidth]{logos/htl-2}%
% \end{minipage}%
% \hfill\hspace{0.3cm}\vline\hfill%
% \begin{minipage}{0.8\textwidth}%
% \centering%
% \begin{tabular}{c}
% Foo\\
% \hline
% bar\\
% \end{tabular}
% \end{minipage}%
% }%
}%
% Listing extension for fancyref using the prefix "lst".
\newcommand*{\fancyreflstlabelprefix}{lst}
% Main format
\frefformat{main}{\fancyreflstlabelprefix}{%
\MakeUppercase{\freflstname}\fancyrefdefaultspacing#1#2%
}%
\Frefformat{main}{\fancyreflstlabelprefix}{%
\MakeUppercase{\Freflstname}\fancyrefdefaultspacing#1#2%
}%
\Frefformat{main}{\fancyreflstlabelprefix}{Listing~#1}
\frefformat{main}{\fancyreflstlabelprefix}{Listing~#1}
% Vario format
\frefformat{vario}{\fancyreflstlabelprefix}{%
\MakeUppercase{\freflstname}\fancyrefdefaultspacing#1#2%
}%
\Frefformat{vario}{\fancyreflstlabelprefix}{%
\MakeUppercase{\Freflstname}\fancyrefdefaultspacing#1#2%
}%
\Frefformat{vario}{\fancyreflstlabelprefix}{Listing~#1 auf Seite #2}
\frefformat{vario}{\fancyreflstlabelprefix}{Listing~#1 auf Seite #2}
% Warnings
\newenvironment{warning}
{\FloatBarrier\par\begin{mdframed}[linewidth=2pt,linecolor=red]%
\begin{list}{}{\leftmargin=1cm
\labelwidth=\leftmargin}\item[\Large\ding{43}]}
{\end{list}\end{mdframed}\par}
\newcommand*{\termyear}[1]{\gdef\@termyear{#1}}%
\newcommand*{\@termyear}{\texttt{\string\termyear} not set}%
\newcommand*{\company}[1]{\gdef\@company{#1}}%
\newcommand*{\@company}{}%
\newcommand*{\keywords}[1]{\gdef\@keywords{#1}}%
\newcommand*{\@keywords}{\texttt{\string\keywords} not set}%
\newcommand*{\sthanks}[1]{\gdef\@sthanks{#1}}%
\newcommand*{\@sthanks}{\texttt{\string\sthanks} not set}%
\newcommand*{\aufgabenstellung}[1]{\gdef\@aufgabenstellung{#1}}%
\newcommand*{\@aufgabenstellung}{\texttt{\string\aufgabenstellung} not set}%
\newcommand*{\realisierung}[1]{\gdef\@realisierung{#1}}%
\newcommand*{\@realisierung}{\texttt{\string\realisierung} not set}%
\newcommand*{\ergebnisse}[1]{\gdef\@ergebnisse{#1}}%
\newcommand*{\@ergebnisse}{\texttt{\string\ergebnisse} not set}%
\newcommand*{\grafikname}[1]{\gdef\@grafikname{#1}}%
\newcommand*{\@grafikname}{\texttt{\string\grafikname} not set}%
\newcommand*{\grafikinhalt}[1]{\gdef\@grafikinhalt{#1}}%
\newcommand*{\@grafikinhalt}{\texttt{\string\grafikinhalt} not set}%
\newcommand*{\wettbewerbe}[1]{\gdef\@wettbewerbe{#1}}%
\newcommand*{\@wettbewerbe}{\texttt{\string\wettbewerbe} not set}%
\newcommand*{\tasks}[1]{\gdef\@tasks{#1}}%
\newcommand*{\@tasks}{\texttt{\string\tasks} not set}%
\newcommand*{\realisation}[1]{\gdef\@realisation{#1}}%
\newcommand*{\@realisation}{\texttt{\string\realisation} not set}%
\newcommand*{\results}[1]{\gdef\@results{#1}}%
\newcommand*{\@results}{\texttt{\string\results} not set}%
\newcommand*{\graphname}[1]{\gdef\@graphname{#1}}%
\newcommand*{\@graphname}{\texttt{\string\graphname} not set}%
\newcommand*{\graphcontent}[1]{\gdef\@graphcontent{#1}}%
\newcommand*{\@graphcontent}{\texttt{\string\graphcontent} not set}%
\newcommand*{\competitions}[1]{\gdef\@competitions{#1}}%
\newcommand*{\@competitions}{\texttt{\string\competitions} not set}%
\newcommand*{\class}[1]{\gdef\@class{#1}}%
\newcommand*{\@class}{\texttt{\string\class} not set}%
\newcommand*{\pageauthor}[1]{%
\cfoot{#1}%
}%
\newcommand*{\maketoc}{%
\cleardoublepage
\pagestyle{empty}
\centering
\textbf{\Huge \@title}
\raggedright
\cleardoublepage
\tableofcontents
\cleardoublepage
\pagestyle{scrheadings}
\ohead{\@title}
\ifoot{HTBL Hollabrunn}
\ofoot{Seite \thepage}
}%
\newcommand*{\makedadb}[2]{%
\newpage%
\pagestyle{empty}%
\includepdf[pages=-,scale=0.9,pagecommand={}]{#1}%
\includepdf[pages=-,scale=0.9,pagecommand={}]{#2}%
}%
\renewcommand*{\maketitle}{%
\begin{titlepage}%
% Page 1
\newgeometry{left=1.5cm,top=1.5cm,right=1.5cm,bottom=1.5cm}%
\centering
\begin{minipage}{0.2\textwidth}%
\raggedright%
\includegraphics[width=\textwidth]{logos/htl-2}%
\end{minipage}%
\hfill%
\begin{minipage}{0.5\textwidth}%
\centering%
\textsf{\huge\textbf{HTBL Hollabrunn}}%
\par%
\vspace{0.5cm}%
\textsf{\large Höhere Lehranstalt für Elektronik und Technische Informatik}%
\end{minipage}%
\hfill%
\begin{minipage}{0.2\textwidth}%
\raggedleft%
\includegraphics[width=\textwidth]{logos/htl-1}%
\end{minipage}%
\par%
\makebox[\linewidth]{\rule{\textwidth}{0.4pt}}%
\par%
\vspace{3cm}%
\textsf{\Huge \textbf{DIPLOMARBEIT}}%
\par%
\textsf{Gesamtprojekt}%
\par%
\vspace{-0.3\parskip}%
\textsf{\LARGE \textbf{\@title}}%
\par%
\vspace{5\parskip}%
\raggedright%
\begin{tabular}{l l l l}%
\students%
\end{tabular}%
\par%
\vfill%
\textsf{Schuljahr \@termyear}%
\par%
\makebox[\linewidth]{\rule{\textwidth}{0.4pt}}%
\par%
\textsf{Abgabevermerk:}%
\par%
\textsf{Datum:}\hspace{0.4\textwidth}\textsf{Übernommen von:}%
% Page 2
\newpage%
\pagestyle{empty}%
\raggedleft%
\includegraphics[width=0.25\textwidth]{logos/htl-1}%
\par%
\centering%
\vspace{0.75\parskip}%
\textsf{\LARGE \textbf{Höhere Technische Bundeslehranstalt Hollabrunn}}%
\par%
\vspace{-0.75\parskip}%
\textsf{\large \textbf{Höhere Lehranstalt für Elektronik und Technische Informatik}}%
\par%
\raggedright%
\vspace{3\parskip}%
\textsf{\textbf{EIDESSTATTLICHE ERKLÄRUNG}}%
\par%
\textsf{\textbf{Ich erkläre an Eides statt, dass ich die vorliegende Abschlussarbeit selbständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und die den benutzten Quellen wörtlich und inhaltlich entnommenen Stellen als solche erkenntlich gemacht habe.}}%
\par%
\vspace{3\parskip}%
\studentslist%
\par%
\vfill%
\textsf{Hollabrunn, am 4. April 2018}%
% Page 3
\newpage%
\pagestyle{empty}%
\textsf{\large \textbf{HINWEISE}}%
\par%
\ifdefempty{\@company}{%
\textsf{Die vorliegende Diplomarbeit wurde für die Abteilung Elektronik und Technische Informatik der HTL Hollabrunn ausgeführt.}%
}{%
\textsf{Die vorliegende Diplomarbeit wurde in Zusammenarbeit mit der Firma \@company{} ausgeführt.}%
}%
\par%
\textsf{Die in dieser Diplomarbeit entwickelten Prototypen und Software-Produkte dürfen ganz oder auch in Teilen von Privatpersonen oder Firmen nur dann in Verkehr gebracht werden, wenn sie diese selbst geprüft und für den vorgesehenen Verwendungszweck für geeignet befunden haben. Es wird keinerlei Haftung übernommen für irgendwelche Schäden, die aus der Nutzung der hier entwickelten oder beschriebenen Bestandteile des Projekts resultieren.}%
\par%
\textsf{Für alle Entwicklungen gilt die GNU General Public License [\url{http://www.gnu.org/licenses/gpl.html}] der Free Software Foundation, Boston, USA in der Version 3.}%
\par%
\textsf{Die Diplomarbeit erfüllt die \enquote{Standards für Ingenieur- und Technikerprojekte} entsprechend dem Rundschreiben Nr. 60 aus 1999 des BMBWK (GZ.17.600/101-II/2b/99). [\url{https://www.bmb.gv.at/ministerium/rs/1999_60.html}]}%
\par%
\vfill%
\textsf{\large \textbf{SCHLÜSSELBEGRIFFE}}%
\par%
\textsf{\@keywords}%
\par%
\vfill%
\textsf{\large \textbf{DANKSAGUNGEN}}%
\par%
\textsf{\@sthanks}%
\vfill%
% Page 4
\newpage%
\pagestyle{empty}%
\htlheader{german}%
\centering%
\par%
\textsf{\huge \textbf{DIPLOMARBEIT}}%
\par%
\vspace{-0.7\parskip}%
\textsf{\large \textbf{Dokumentation}}%
\par%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][1.5cm]{5cm}%
\textsf{Name der Verfasser/innen}%
\end{minipage}%
&%
\begin{minipage}[c][1.5cm]{\textwidth - 5.8cm}%
\textsf{\studentslistsmall}%
\end{minipage}\\%
\hline%
\begin{minipage}[c][1.5cm]{5cm}%
\textsf{Jahrgang\\Schuljahr}%
\end{minipage}%
&%
\begin{minipage}[c][1.5cm]{\textwidth - 5.8cm}%
\textsf{\@class{} \@termyear{}}%
\end{minipage}\\%
\hline%
\begin{minipage}[c][1.5cm]{5cm}%
\textsf{Thema der Diplomarbeit}%
\end{minipage}%
&%
\begin{minipage}[c][1.5cm]{\textwidth - 5.8cm}%
\textsf{\@title{}}%
\end{minipage}\\%
\hline%
\begin{minipage}[c][1.5cm]{5cm}%
\textsf{Kooperationspartner}%
\end{minipage}%
&%
\begin{minipage}[c][1.5cm]{\textwidth - 5.8cm}%
\textsf{\@company{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][4.5cm]{5cm}%
\textsf{Aufgabenstellung}%
\end{minipage}%
&%
\begin{minipage}[c][4.5cm]{\textwidth - 5.8cm}%
\textsf{\@aufgabenstellung{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][4.5cm]{5cm}%
\textsf{Realisierung}%
\end{minipage}%
&%
\begin{minipage}[c][4.5cm]{\textwidth - 5.8cm}%
\textsf{\@realisierung{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][4.5cm]{5cm}%
\textsf{Ergebnisse}%
\end{minipage}%
&%
\begin{minipage}[c][4.5cm]{\textwidth - 5.8cm}%
\textsf{\@ergebnisse{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
% Page 5
\newpage%
\pagestyle{empty}%
\htlheader{german}%
\centering%
\par%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][15cm]{5cm}%
\textsf{\@grafikname{}}%
\end{minipage}%
&%
\begin{minipage}[c][15cm]{\textwidth - 5.8cm}%
\textsf{\@grafikinhalt{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][3cm]{5cm}%
\textsf{Teilnahme an Wettbewerben, Auszeichnungen}%
\end{minipage}%
&%
\begin{minipage}[c][3cm]{\textwidth - 5.8cm}%
\textsf{\@wettbewerbe{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X | X |}%
\hline%
\begin{minipage}[c][2cm]{5cm}%
\textsf{Möglichkeiten der Einsichtnahme in die Arbeit}%
\end{minipage}%
&%
\multicolumn{2}{X|}{%
\begin{minipage}[c][2cm]{\textwidth - 5.8cm}%
\textsf{HTL Hollabrunn\\Anton Ehrenfriedstraße 10\\2020 Hollabrunn}%
\end{minipage}%
}\\%
\hline%
\begin{minipage}[t][3cm]{5cm}%
\textsf{Aprobation\\(Datum/Unterschrift)}%
\end{minipage}%
&%
\begin{minipage}[t][3cm]{5cm}%
\textsf{\scriptsize Prüfer/Prüferin}%
\end{minipage}%
&%
\begin{minipage}[t][3cm]{5cm}%
\textsf{\scriptsize Direktor/Direktorin\\Abteilungsvorstand/Abteilungsvorständin}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
% Page 6
\newpage%
\pagestyle{empty}%
\htlheader{english}%
\centering%
\par%
\textsf{\huge \textbf{DIPLOMA THESIS}}%
\par%
\vspace{-0.7\parskip}%
\textsf{\large \textbf{Documentation}}%
\par%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][1.5cm]{5cm}%
\textsf{Author(s)}%
\end{minipage}%
&%
\begin{minipage}[c][1.5cm]{\textwidth - 5.8cm}%
\textsf{\studentslistsmall}%
\end{minipage}\\%
\hline%
\begin{minipage}[c][1.5cm]{5cm}%
\textsf{Form\\Academic year}%
\end{minipage}%
&%
\begin{minipage}[c][1.5cm]{\textwidth - 5.8cm}%
\textsf{\@class{} \@termyear{}}%
\end{minipage}\\%
\hline%
\begin{minipage}[c][1.5cm]{5cm}%
\textsf{Topic}%
\end{minipage}%
&%
\begin{minipage}[c][1.5cm]{\textwidth - 5.8cm}%
\textsf{\@title{}}%
\end{minipage}\\%
\hline%
\begin{minipage}[c][1.5cm]{5cm}%
\textsf{Co-operation partners}%
\end{minipage}%
&%
\begin{minipage}[c][1.5cm]{\textwidth - 5.8cm}%
\textsf{\@company{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][4.5cm]{5cm}%
\textsf{Asignment of tasks}%
\end{minipage}%
&%
\begin{minipage}[c][4.5cm]{\textwidth - 5.8cm}%
\textsf{\@tasks{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][4.5cm]{5cm}%
\textsf{Realisation}%
\end{minipage}%
&%
\begin{minipage}[c][4.5cm]{\textwidth - 5.8cm}%
\textsf{\@realisation{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][4.5cm]{5cm}%
\textsf{Results}%
\end{minipage}%
&%
\begin{minipage}[c][4.5cm]{\textwidth - 5.8cm}%
\textsf{\@results{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
% Page 6
\newpage%
\pagestyle{empty}%
\htlheader{english}%
\centering%
\par%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][15cm]{5cm}%
\textsf{\@graphname{}}%
\end{minipage}%
&%
\begin{minipage}[c][15cm]{\textwidth - 5.8cm}%
\textsf{\@graphcontent{}}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][3cm]{5cm}%
\textsf{Participation in competitions, Awards}%
\end{minipage}%
&%
\begin{minipage}[c][3cm]{\textwidth - 5.8cm}%
\textsf{\@competitions}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X | X |}%
\hline%
\begin{minipage}[c][2cm]{5cm}%
\textsf{Accessibility of final project thesis}%
\end{minipage}%
&%
\multicolumn{2}{X|}{%
\begin{minipage}[c][2cm]{\textwidth - 5.8cm}%
\textsf{HTL Hollabrunn\\Anton Ehrenfriedstraße 10\\2020 Hollabrunn}%
\end{minipage}%
}\\%
\hline%
\begin{minipage}[t][3cm]{5cm}%
\textsf{Approval\\(Date/Signature)}%
\end{minipage}%
&%
\begin{minipage}[t][3cm]{5cm}%
\textsf{\scriptsize Examiner/s}%
\end{minipage}%
&%
\begin{minipage}[t][3cm]{5cm}%
\textsf{\scriptsize Head of Department/College}%
\end{minipage}\\%
\hline%
\end{tabularx}%
\vfill%
\restoregeometry%
\end{titlepage}%
}%
\endinput

95
literatur.bib Normal file
View file

@ -0,0 +1,95 @@
@online{ wiki:IDE,
author = "Wikipedia",
title = "Integrierte Entwicklungsumgebung",
year = "2018",
url = "https://de.wikipedia.org/w/index.php?title=Integrierte_Entwicklungsumgebung&oldid=174180343",
note = "[Online; Stand 14. März 2018]"
}
@online{ wiki:ARM,
author = "Wikipedia",
title = "ARM Limited",
year = "2017",
url = "https://de.wikipedia.org/w/index.php?title=ARM_Limited&oldid=172245346",
note = "[Online; Stand 14. März 2018]"
}
@online{ techradar:ARM,
author = "Dan Grabham",
title = "From a small Acorn to 37 billion chips: ARM's ascent to tech superpower",
url = "https://www.techradar.com/news/computing/from-a-small-acorn-to-37-billion-chips-arm-s-ascent-to-tech-superpower-1167034",
month = "jul",
year = "2013",
note = "[Online; Stand 14. März 2018]"
}
@online{ wiki:Debugger,
author = "Wikipedia",
title = "Debugger",
year = "2018",
url = "https://de.wikipedia.org/w/index.php?title=Debugger&oldid=173107853",
note = "[Online; Stand 14. März 2018]"
}
@online{ doku:tutorial,
author = "Mieke, Andreas",
title = "Keil $\mu$Vision 5 Tutorial",
year = "2018",
url = "https://git.1750studios.com/diploma-thesis/001_Keil_MDK5_Tutorial",
note = "[Online; Stand 14. März 2018]"
}
@online{ arm:CMSIS,
author = "{ARM Limited}",
title = "Cortex Microcontroller Software Interface Standard",
year = "2018",
url = "https://developer.arm.com/embedded/cmsis",
note = "[Online; Stand 14. März 2018]"
}
@ARTICLE{ ieee:1149-1,
author = "",
journal = "IEEE Std 1149.1-2013 (Revision of IEEE Std 1149.1-2001)",
title = "IEEE Standard for Test Access Port and Boundary-Scan Architecture",
year = "2013",
volume = "",
number = "",
pages = "1-444",
keywords = "IEEE standards;boundary scan testing;integrated circuit testing;printed circuit testing;IEEE Std 1149.1-2001 Revision;IEEE Std 1149.1-2013;IEEE standard;boundary scan architecture;boundary-scan register;component specific aspects;internal circuits test;printed circuit boards;standard interface;test access port;testability features;Boundary value problems;IEEE standards;Integrated circuits;Printed circuits;Testing;Very high speed integrated circuits;Boundary-Scan Description Language;Boundary-Scan Description Language (BSDL);IEEE 1149.1TM;Procedural Description Language (PDL);VHSIC Hardware Description Language (VHDL);boundary scan;boundary-scan architecture;boundary-scan boundary scan;boundary-scan register;circuit boards;circuitry;integrated circuit;printed circuit boards;test;test access port (TAP);very high speed integrated circuit (VHSIC)",
doi = "10.1109/IEEESTD.2013.6515989",
ISSN = "",
month = "may"
}
@online{ wiki:Keil,
author = "Wikipedia",
title = "Keil (company)",
year = "2018",
url = "https://en.wikipedia.org/w/index.php?title=Keil_(company)&oldid=822646239",
note = "[Online; Stand 15. März 2018]"
}
@online{ techdesignforums:ARM,
author = "Edwards, Chris",
title = "ARM and the man",
year = "2016",
month = "mar",
url = "http://www.techdesignforums.com/practice/technique/arm-and-the-man/",
note = "[Online; Stand 15. März 2018]"
}
@online{ wiki:C,
author = "Wikipedia",
title = "C (Programmiersprache)",
year = "2018",
url = "https://de.wikipedia.org/w/index.php?title=C_(Programmiersprache)&oldid=174856768",
note = "[Online; Stand 15. März 2018]"
}
@online{ wiki:C++,
author = "Wikipedia",
title = "C++",
year = "2018",
url = "https://de.wikipedia.org/w/index.php?title=C%2B%2B&oldid=174161963",
note = "[Online; Stand 15. März 2018]"
}

BIN
logos/htl-1.pdf Normal file

Binary file not shown.

BIN
logos/htl-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

433
lstlangarm.sty Normal file
View file

@ -0,0 +1,433 @@
\ProvidesFile{lstlangarm.sty}
[2013/10/20 1.0 listings language file for ARM]
%%
%% ARM definition (c) 2013 Jacques Supcik
%%
\lstdefinelanguage[ARM]{Assembler}%
{morekeywords={adc,adcal,adcals,adccc,adcccs,adccs,adccss,adceq,adceqs, %
adcge,adcges,adcgt,adcgts,adchi,adchis,adchs,adchss,adcle,adcles, %
adclo,adclos,adcls,adclss,adclt,adclts,adcmi,adcmis,adcne,adcnes, %
adcpl,adcpls,adcs,adcvc,adcvcs,adcvs,adcvss,add,addal,addals,addcc, %
addccs,addcs,addcss,addeq,addeqs,addge,addges,addgt,addgts,addhi, %
addhis,addhs,addhss,addle,addles,addlo,addlos,addls,addlss,addlt, %
addlts,addmi,addmis,addne,addnes,addpl,addpls,adds,addvc,addvcs,addvs, %
addvss,and,andal,andals,andcc,andccs,andcs,andcss,andeq,andeqs,andge, %
andges,andgt,andgts,andhi,andhis,andhs,andhss,andle,andles,andlo, %
andlos,andls,andlss,andlt,andlts,andmi,andmis,andne,andnes,andpl, %
andpls,ands,andvc,andvcs,andvs,andvss,b,bal,bcc,bcs,beq,bge,bgt,bhi, %
bhs,bic,bical,bicals,biccc,bicccs,biccs,biccss,biceq,biceqs,bicge, %
bicges,bicgt,bicgts,bichi,bichis,bichs,bichss,bicle,bicles,biclo, %
biclos,bicls,biclss,biclt,biclts,bicmi,bicmis,bicne,bicnes,bicpl, %
bicpls,bics,bicvc,bicvcs,bicvs,bicvss,bkpt,bl,blal,blcc,blcs,ble,bleq, %
blge,blgt,blhi,blhs,blle,bllo,blls,bllt,blmi,blne,blo,blpl,bls,blt, %
blvc,blvs,blx,blxal,blxcc,blxcs,blxeq,blxge,blxgt,blxhi,blxhs,blxle, %
blxlo,blxls,blxlt,blxmi,blxne,blxpl,blxvc,blxvs,bmi,bne,bpl,bvc,bvs, %
bx,bxal,bxcc,bxcs,bxeq,bxge,bxgt,bxhi,bxhs,bxj,bxjal,bxjcc,bxjcs, %
bxjeq,bxjge,bxjgt,bxjhi,bxjhs,bxjle,bxjlo,bxjls,bxjlt,bxjmi,bxjne, %
bxjpl,bxjvc,bxjvs,bxle,bxlo,bxls,bxlt,bxmi,bxne,bxpl,bxvc,bxvs,cdp, %
cdp2,cdpal,cdpcc,cdpcs,cdpeq,cdpge,cdpgt,cdphi,cdphs,cdple,cdplo, %
cdpls,cdplt,cdpmi,cdpne,cdppl,cdpvc,cdpvs,clz,clzal,clzcc,clzcs,clzeq, %
clzge,clzgt,clzhi,clzhs,clzle,clzlo,clzls,clzlt,clzmi,clzne,clzpl, %
clzvc,clzvs,cmn,cmnal,cmncc,cmncs,cmneq,cmnge,cmngt,cmnhi,cmnhs,cmnle, %
cmnlo,cmnls,cmnlt,cmnmi,cmnne,cmnpl,cmnvc,cmnvs,cmp,cmpal,cmpcc,cmpcs, %
cmpeq,cmpge,cmpgt,cmphi,cmphs,cmple,cmplo,cmpls,cmplt,cmpmi,cmpne, %
cmppl,cmpvc,cmpvs,cps,cpsid,cpsie,cpy,cpyal,cpycc,cpycs,cpyeq,cpyge, %
cpygt,cpyhi,cpyhs,cpyle,cpylo,cpyls,cpylt,cpymi,cpyne,cpypl,cpyvc, %
cpyvs,eor,eoral,eorals,eorcc,eorccs,eorcs,eorcss,eoreq,eoreqs,eorge, %
eorges,eorgt,eorgts,eorhi,eorhis,eorhs,eorhss,eorle,eorles,eorlo, %
eorlos,eorls,eorlss,eorlt,eorlts,eormi,eormis,eorne,eornes,eorpl, %
eorpls,eors,eorvc,eorvcs,eorvs,eorvss,ldc,ldc2,ldcal,ldccc,ldccs, %
ldceq,ldcge,ldcgt,ldchi,ldchs,ldcle,ldclo,ldcls,ldclt,ldcmi,ldcne, %
ldcpl,ldcvc,ldcvs,ldmalda,ldmaldb,ldmalea,ldmaled,ldmalfa,ldmalfd, %
ldmalia,ldmalib,ldmccda,ldmccdb,ldmccea,ldmcced,ldmccfa,ldmccfd, %
ldmccia,ldmccib,ldmcsda,ldmcsdb,ldmcsea,ldmcsed,ldmcsfa,ldmcsfd, %
ldmcsia,ldmcsib,ldmda,ldmdb,ldmea,ldmed,ldmeqda,ldmeqdb,ldmeqea, %
ldmeqed,ldmeqfa,ldmeqfd,ldmeqia,ldmeqib,ldmfa,ldmfd,ldmgeda,ldmgedb, %
ldmgeea,ldmgeed,ldmgefa,ldmgefd,ldmgeia,ldmgeib,ldmgtda,ldmgtdb, %
ldmgtea,ldmgted,ldmgtfa,ldmgtfd,ldmgtia,ldmgtib,ldmhida,ldmhidb, %
ldmhiea,ldmhied,ldmhifa,ldmhifd,ldmhiia,ldmhiib,ldmhsda,ldmhsdb, %
ldmhsea,ldmhsed,ldmhsfa,ldmhsfd,ldmhsia,ldmhsib,ldmia,ldmib,ldmleda, %
ldmledb,ldmleea,ldmleed,ldmlefa,ldmlefd,ldmleia,ldmleib,ldmloda, %
ldmlodb,ldmloea,ldmloed,ldmlofa,ldmlofd,ldmloia,ldmloib,ldmlsda, %
ldmlsdb,ldmlsea,ldmlsed,ldmlsfa,ldmlsfd,ldmlsia,ldmlsib,ldmltda, %
ldmltdb,ldmltea,ldmlted,ldmltfa,ldmltfd,ldmltia,ldmltib,ldmmida, %
ldmmidb,ldmmiea,ldmmied,ldmmifa,ldmmifd,ldmmiia,ldmmiib,ldmneda, %
ldmnedb,ldmneea,ldmneed,ldmnefa,ldmnefd,ldmneia,ldmneib,ldmplda, %
ldmpldb,ldmplea,ldmpled,ldmplfa,ldmplfd,ldmplia,ldmplib,ldmvcda, %
ldmvcdb,ldmvcea,ldmvced,ldmvcfa,ldmvcfd,ldmvcia,ldmvcib,ldmvsda, %
ldmvsdb,ldmvsea,ldmvsed,ldmvsfa,ldmvsfd,ldmvsia,ldmvsib,ldr,ldral, %
ldralb,ldralbt,ldrald,ldralh,ldralsb,ldralsh,ldralt,ldrb,ldrbt,ldrcc, %
ldrccb,ldrccbt,ldrccd,ldrcch,ldrccsb,ldrccsh,ldrcct,ldrcs,ldrcsb, %
ldrcsbt,ldrcsd,ldrcsh,ldrcssb,ldrcssh,ldrcst,ldrd,ldreq,ldreqb, %
ldreqbt,ldreqd,ldreqh,ldreqsb,ldreqsh,ldreqt,ldrex,ldrexal,ldrexcc, %
ldrexcs,ldrexeq,ldrexge,ldrexgt,ldrexhi,ldrexhs,ldrexle,ldrexlo, %
ldrexls,ldrexlt,ldrexmi,ldrexne,ldrexpl,ldrexvc,ldrexvs,ldrge,ldrgeb, %
ldrgebt,ldrged,ldrgeh,ldrgesb,ldrgesh,ldrget,ldrgt,ldrgtb,ldrgtbt, %
ldrgtd,ldrgth,ldrgtsb,ldrgtsh,ldrgtt,ldrh,ldrhi,ldrhib,ldrhibt,ldrhid, %
ldrhih,ldrhisb,ldrhish,ldrhit,ldrhs,ldrhsb,ldrhsbt,ldrhsd,ldrhsh, %
ldrhssb,ldrhssh,ldrhst,ldrle,ldrleb,ldrlebt,ldrled,ldrleh,ldrlesb, %
ldrlesh,ldrlet,ldrlo,ldrlob,ldrlobt,ldrlod,ldrloh,ldrlosb,ldrlosh, %
ldrlot,ldrls,ldrlsb,ldrlsbt,ldrlsd,ldrlsh,ldrlssb,ldrlssh,ldrlst, %
ldrlt,ldrltb,ldrltbt,ldrltd,ldrlth,ldrltsb,ldrltsh,ldrltt,ldrmi, %
ldrmib,ldrmibt,ldrmid,ldrmih,ldrmisb,ldrmish,ldrmit,ldrne,ldrneb, %
ldrnebt,ldrned,ldrneh,ldrnesb,ldrnesh,ldrnet,ldrpl,ldrplb,ldrplbt, %
ldrpld,ldrplh,ldrplsb,ldrplsh,ldrplt,ldrsb,ldrsh,ldrt,ldrvc,ldrvcb, %
ldrvcbt,ldrvcd,ldrvch,ldrvcsb,ldrvcsh,ldrvct,ldrvs,ldrvsb,ldrvsbt, %
ldrvsd,ldrvsh,ldrvssb,ldrvssh,ldrvst,mar,maral,marcc,marcs,mareq, %
marge,margt,marhi,marhs,marle,marlo,marls,marlt,marmi,marne,marpl, %
marvc,marvs,mcr,mcr2,mcral,mcrcc,mcrcs,mcreq,mcrge,mcrgt,mcrhi,mcrhs, %
mcrle,mcrlo,mcrls,mcrlt,mcrmi,mcrne,mcrpl,mcrr,mcrr2,mcrral,mcrrcc, %
mcrrcs,mcrreq,mcrrge,mcrrgt,mcrrhi,mcrrhs,mcrrle,mcrrlo,mcrrls,mcrrlt, %
mcrrmi,mcrrne,mcrrpl,mcrrvc,mcrrvs,mcrvc,mcrvs,mia,miaal,miacc,miacs, %
miaeq,miage,miagt,miahi,miahs,miale,mialo,mials,mialt,miami,miane, %
miaph,miaphal,miaphcc,miaphcs,miapheq,miaphge,miaphgt,miaphhi,miaphhs, %
miaphle,miaphlo,miaphls,miaphlt,miaphmi,miaphne,miaphpl,miaphvc, %
miaphvs,miapl,miavc,miavs,miaxy,miaxyal,miaxycc,miaxycs,miaxyeq, %
miaxyge,miaxygt,miaxyhi,miaxyhs,miaxyle,miaxylo,miaxyls,miaxylt, %
miaxymi,miaxyne,miaxypl,miaxyvc,miaxyvs,mla,mlaal,mlaals,mlacc,mlaccs, %
mlacs,mlacss,mlaeq,mlaeqs,mlage,mlages,mlagt,mlagts,mlahi,mlahis, %
mlahs,mlahss,mlale,mlales,mlalo,mlalos,mlals,mlalss,mlalt,mlalts, %
mlami,mlamis,mlane,mlanes,mlapl,mlapls,mlas,mlavc,mlavcs,mlavs,mlavss, %
mov,moval,movals,movcc,movccs,movcs,movcss,moveq,moveqs,movge,movges, %
movgt,movgts,movhi,movhis,movhs,movhss,movle,movles,movlo,movlos, %
movls,movlss,movlt,movlts,movmi,movmis,movne,movnes,movpl,movpls,movs, %
movvc,movvcs,movvs,movvss,mra,mraal,mracc,mracs,mraeq,mrage,mragt, %
mrahi,mrahs,mrale,mralo,mrals,mralt,mrami,mrane,mrapl,mravc,mravs,mrc, %
mrc2,mrcal,mrccc,mrccs,mrceq,mrcge,mrcgt,mrchi,mrchs,mrcle,mrclo, %
mrcls,mrclt,mrcmi,mrcne,mrcpl,mrcvc,mrcvs,mrrc,mrrc2,mrrcal,mrrccc, %
mrrccs,mrrceq,mrrcge,mrrcgt,mrrchi,mrrchs,mrrcle,mrrclo,mrrcls,mrrclt, %
mrrcmi,mrrcne,mrrcpl,mrrcvc,mrrcvs,mrs,mrsal,mrscc,mrscs,mrseq,mrsge, %
mrsgt,mrshi,mrshs,mrsle,mrslo,mrsls,mrslt,mrsmi,mrsne,mrspl,mrsvc, %
mrsvs,msr,msral,msrcc,msrcs,msreq,msrge,msrgt,msrhi,msrhs,msrle,msrlo, %
msrls,msrlt,msrmi,msrne,msrpl,msrvc,msrvs,mul,mulal,mulals,mulcc, %
mulccs,mulcs,mulcss,muleq,muleqs,mulge,mulges,mulgt,mulgts,mulhi, %
mulhis,mulhs,mulhss,mulle,mulles,mullo,mullos,mulls,mullss,mullt, %
mullts,mulmi,mulmis,mulne,mulnes,mulpl,mulpls,muls,mulvc,mulvcs,mulvs, %
mulvss,mvn,mvnal,mvnals,mvncc,mvnccs,mvncs,mvncss,mvneq,mvneqs,mvnge, %
mvnges,mvngt,mvngts,mvnhi,mvnhis,mvnhs,mvnhss,mvnle,mvnles,mvnlo, %
mvnlos,mvnls,mvnlss,mvnlt,mvnlts,mvnmi,mvnmis,mvnne,mvnnes,mvnpl, %
mvnpls,mvns,mvnvc,mvnvcs,mvnvs,mvnvss,nop,orr,orral,orrals,orrcc, %
orrccs,orrcs,orrcss,orreq,orreqs,orrge,orrges,orrgt,orrgts,orrhi, %
orrhis,orrhs,orrhss,orrle,orrles,orrlo,orrlos,orrls,orrlss,orrlt, %
orrlts,orrmi,orrmis,orrne,orrnes,orrpl,orrpls,orrs,orrvc,orrvcs,orrvs, %
orrvss,pkhbt,pkhbtal,pkhbtcc,pkhbtcs,pkhbteq,pkhbtge,pkhbtgt,pkhbthi, %
pkhbths,pkhbtle,pkhbtlo,pkhbtls,pkhbtlt,pkhbtmi,pkhbtne,pkhbtpl, %
pkhbtvc,pkhbtvs,pkhtb,pkhtbal,pkhtbcc,pkhtbcs,pkhtbeq,pkhtbge,pkhtbgt, %
pkhtbhi,pkhtbhs,pkhtble,pkhtblo,pkhtbls,pkhtblt,pkhtbmi,pkhtbne, %
pkhtbpl,pkhtbvc,pkhtbvs,pld,pop,popal,popcc,popcs,popeq,popge,popgt, %
pophi,pophs,pople,poplo,popls,poplt,popmi,popne,poppl,popvc,popvs, %
push,pushal,pushcc,pushcs,pusheq,pushge,pushgt,pushhi,pushhs,pushle, %
pushlo,pushls,pushlt,pushmi,pushne,pushpl,pushvc,pushvs,qadd,qadd16, %
qadd16al,qadd16cc,qadd16cs,qadd16eq,qadd16ge,qadd16gt,qadd16hi, %
qadd16hs,qadd16le,qadd16lo,qadd16ls,qadd16lt,qadd16mi,qadd16ne, %
qadd16pl,qadd16vc,qadd16vs,qadd8,qadd8al,qadd8cc,qadd8cs,qadd8eq, %
qadd8ge,qadd8gt,qadd8hi,qadd8hs,qadd8le,qadd8lo,qadd8ls,qadd8lt, %
qadd8mi,qadd8ne,qadd8pl,qadd8vc,qadd8vs,qaddal,qaddcc,qaddcs,qaddeq, %
qaddge,qaddgt,qaddhi,qaddhs,qaddle,qaddlo,qaddls,qaddlt,qaddmi,qaddne, %
qaddpl,qaddsubx,qaddsubxal,qaddsubxcc,qaddsubxcs,qaddsubxeq, %
qaddsubxge,qaddsubxgt,qaddsubxhi,qaddsubxhs,qaddsubxle,qaddsubxlo, %
qaddsubxls,qaddsubxlt,qaddsubxmi,qaddsubxne,qaddsubxpl,qaddsubxvc, %
qaddsubxvs,qaddvc,qaddvs,qdadd,qdaddal,qdaddcc,qdaddcs,qdaddeq, %
qdaddge,qdaddgt,qdaddhi,qdaddhs,qdaddle,qdaddlo,qdaddls,qdaddlt, %
qdaddmi,qdaddne,qdaddpl,qdaddvc,qdaddvs,qdsub,qdsubal,qdsubcc,qdsubcs, %
qdsubeq,qdsubge,qdsubgt,qdsubhi,qdsubhs,qdsuble,qdsublo,qdsubls, %
qdsublt,qdsubmi,qdsubne,qdsubpl,qdsubvc,qdsubvs,qsub,qsub16,qsub16al, %
qsub16cc,qsub16cs,qsub16eq,qsub16ge,qsub16gt,qsub16hi,qsub16hs, %
qsub16le,qsub16lo,qsub16ls,qsub16lt,qsub16mi,qsub16ne,qsub16pl, %
qsub16vc,qsub16vs,qsub8,qsub8al,qsub8cc,qsub8cs,qsub8eq,qsub8ge, %
qsub8gt,qsub8hi,qsub8hs,qsub8le,qsub8lo,qsub8ls,qsub8lt,qsub8mi, %
qsub8ne,qsub8pl,qsub8vc,qsub8vs,qsubaddx,qsubaddxal,qsubaddxcc, %
qsubaddxcs,qsubaddxeq,qsubaddxge,qsubaddxgt,qsubaddxhi,qsubaddxhs, %
qsubaddxle,qsubaddxlo,qsubaddxls,qsubaddxlt,qsubaddxmi,qsubaddxne, %
qsubaddxpl,qsubaddxvc,qsubaddxvs,qsubal,qsubcc,qsubcs,qsubeq,qsubge, %
qsubgt,qsubhi,qsubhs,qsuble,qsublo,qsubls,qsublt,qsubmi,qsubne,qsubpl, %
qsubvc,qsubvs,rev,rev16,rev16al,rev16cc,rev16cs,rev16eq,rev16ge, %
rev16gt,rev16hi,rev16hs,rev16le,rev16lo,rev16ls,rev16lt,rev16mi, %
rev16ne,rev16pl,rev16vc,rev16vs,reval,revcc,revcs,reveq,revge,revgt, %
revhi,revhs,revle,revlo,revls,revlt,revmi,revne,revpl,revsh,revshal, %
revshcc,revshcs,revsheq,revshge,revshgt,revshhi,revshhs,revshle, %
revshlo,revshls,revshlt,revshmi,revshne,revshpl,revshvc,revshvs,revvc, %
revvs,rfeda,rfedb,rfeea,rfeed,rfefa,rfefd,rfeia,rfeib,rsb,rsbal, %
rsbals,rsbcc,rsbccs,rsbcs,rsbcss,rsbeq,rsbeqs,rsbge,rsbges,rsbgt, %
rsbgts,rsbhi,rsbhis,rsbhs,rsbhss,rsble,rsbles,rsblo,rsblos,rsbls, %
rsblss,rsblt,rsblts,rsbmi,rsbmis,rsbne,rsbnes,rsbpl,rsbpls,rsbs,rsbvc, %
rsbvcs,rsbvs,rsbvss,rsc,rscal,rscals,rsccc,rscccs,rsccs,rsccss,rsceq, %
rsceqs,rscge,rscges,rscgt,rscgts,rschi,rschis,rschs,rschss,rscle, %
rscles,rsclo,rsclos,rscls,rsclss,rsclt,rsclts,rscmi,rscmis,rscne, %
rscnes,rscpl,rscpls,rscs,rscvc,rscvcs,rscvs,rscvss,sadd16,sadd16al, %
sadd16cc,sadd16cs,sadd16eq,sadd16ge,sadd16gt,sadd16hi,sadd16hs, %
sadd16le,sadd16lo,sadd16ls,sadd16lt,sadd16mi,sadd16ne,sadd16pl, %
sadd16vc,sadd16vs,sadd8,sadd8al,sadd8cc,sadd8cs,sadd8eq,sadd8ge, %
sadd8gt,sadd8hi,sadd8hs,sadd8le,sadd8lo,sadd8ls,sadd8lt,sadd8mi, %
sadd8ne,sadd8pl,sadd8vc,sadd8vs,saddsubx,saddsubxal,saddsubxcc, %
saddsubxcs,saddsubxeq,saddsubxge,saddsubxgt,saddsubxhi,saddsubxhs, %
saddsubxle,saddsubxlo,saddsubxls,saddsubxlt,saddsubxmi,saddsubxne, %
saddsubxpl,saddsubxvc,saddsubxvs,sbc,sbcal,sbcals,sbccc,sbcccs,sbccs, %
sbccss,sbceq,sbceqs,sbcge,sbcges,sbcgt,sbcgts,sbchi,sbchis,sbchs, %
sbchss,sbcle,sbcles,sbclo,sbclos,sbcls,sbclss,sbclt,sbclts,sbcmi, %
sbcmis,sbcne,sbcnes,sbcpl,sbcpls,sbcs,sbcvc,sbcvcs,sbcvs,sbcvss,sel, %
selal,selcc,selcs,seleq,selge,selgt,selhi,selhs,selle,sello,sells, %
sellt,selmi,selne,selpl,selvc,selvs,setend,shadd16,shadd16al, %
shadd16cc,shadd16cs,shadd16eq,shadd16ge,shadd16gt,shadd16hi,shadd16hs, %
shadd16le,shadd16lo,shadd16ls,shadd16lt,shadd16mi,shadd16ne,shadd16pl, %
shadd16vc,shadd16vs,shadd8,shadd8al,shadd8cc,shadd8cs,shadd8eq, %
shadd8ge,shadd8gt,shadd8hi,shadd8hs,shadd8le,shadd8lo,shadd8ls, %
shadd8lt,shadd8mi,shadd8ne,shadd8pl,shadd8vc,shadd8vs,shaddsubx, %
shaddsubxal,shaddsubxcc,shaddsubxcs,shaddsubxeq,shaddsubxge, %
shaddsubxgt,shaddsubxhi,shaddsubxhs,shaddsubxle,shaddsubxlo, %
shaddsubxls,shaddsubxlt,shaddsubxmi,shaddsubxne,shaddsubxpl, %
shaddsubxvc,shaddsubxvs,shsub16,shsub16al,shsub16cc,shsub16cs, %
shsub16eq,shsub16ge,shsub16gt,shsub16hi,shsub16hs,shsub16le,shsub16lo, %
shsub16ls,shsub16lt,shsub16mi,shsub16ne,shsub16pl,shsub16vc,shsub16vs, %
shsub8,shsub8al,shsub8cc,shsub8cs,shsub8eq,shsub8ge,shsub8gt,shsub8hi, %
shsub8hs,shsub8le,shsub8lo,shsub8ls,shsub8lt,shsub8mi,shsub8ne, %
shsub8pl,shsub8vc,shsub8vs,shsubaddx,shsubaddxal,shsubaddxcc, %
shsubaddxcs,shsubaddxeq,shsubaddxge,shsubaddxgt,shsubaddxhi, %
shsubaddxhs,shsubaddxle,shsubaddxlo,shsubaddxls,shsubaddxlt, %
shsubaddxmi,shsubaddxne,shsubaddxpl,shsubaddxvc,shsubaddxvs,smlad, %
smladal,smladcc,smladcs,smladeq,smladge,smladgt,smladhi,smladhs, %
smladle,smladlo,smladls,smladlt,smladmi,smladne,smladpl,smladvc, %
smladvs,smladx,smladxal,smladxcc,smladxcs,smladxeq,smladxge,smladxgt, %
smladxhi,smladxhs,smladxle,smladxlo,smladxls,smladxlt,smladxmi, %
smladxne,smladxpl,smladxvc,smladxvs,smlal,smlalal,smlalals,smlalcc, %
smlalccs,smlalcs,smlalcss,smlald,smlaldal,smlaldcc,smlaldcs,smlaldeq, %
smlaldge,smlaldgt,smlaldhi,smlaldhs,smlaldle,smlaldlo,smlaldls, %
smlaldlt,smlaldmi,smlaldne,smlaldpl,smlaldvc,smlaldvs,smlaldx, %
smlaldxal,smlaldxcc,smlaldxcs,smlaldxeq,smlaldxge,smlaldxgt,smlaldxhi, %
smlaldxhs,smlaldxle,smlaldxlo,smlaldxls,smlaldxlt,smlaldxmi,smlaldxne, %
smlaldxpl,smlaldxvc,smlaldxvs,smlaleq,smlaleqs,smlalge,smlalges, %
smlalgt,smlalgts,smlalhi,smlalhis,smlalhs,smlalhss,smlalle,smlalles, %
smlallo,smlallos,smlalls,smlallss,smlallt,smlallts,smlalmi,smlalmis, %
smlalne,smlalnes,smlalpl,smlalpls,smlals,smlalvc,smlalvcs,smlalvs, %
smlalvss,smlalxy,smlalxyal,smlalxycc,smlalxycs,smlalxyeq,smlalxyge, %
smlalxygt,smlalxyhi,smlalxyhs,smlalxyle,smlalxylo,smlalxyls,smlalxylt, %
smlalxymi,smlalxyne,smlalxypl,smlalxyvc,smlalxyvs,smlawy,smlawyal, %
smlawycc,smlawycs,smlawyeq,smlawyge,smlawygt,smlawyhi,smlawyhs, %
smlawyle,smlawylo,smlawyls,smlawylt,smlawymi,smlawyne,smlawypl, %
smlawyvc,smlawyvs,smlaxy,smlaxyal,smlaxycc,smlaxycs,smlaxyeq,smlaxyge, %
smlaxygt,smlaxyhi,smlaxyhs,smlaxyle,smlaxylo,smlaxyls,smlaxylt, %
smlaxymi,smlaxyne,smlaxypl,smlaxyvc,smlaxyvs,smlsd,smlsdal,smlsdcc, %
smlsdcs,smlsdeq,smlsdge,smlsdgt,smlsdhi,smlsdhs,smlsdle,smlsdlo, %
smlsdls,smlsdlt,smlsdmi,smlsdne,smlsdpl,smlsdvc,smlsdvs,smlsdx, %
smlsdxal,smlsdxcc,smlsdxcs,smlsdxeq,smlsdxge,smlsdxgt,smlsdxhi, %
smlsdxhs,smlsdxle,smlsdxlo,smlsdxls,smlsdxlt,smlsdxmi,smlsdxne, %
smlsdxpl,smlsdxvc,smlsdxvs,smlsld,smlsldal,smlsldcc,smlsldcs,smlsldeq, %
smlsldge,smlsldgt,smlsldhi,smlsldhs,smlsldle,smlsldlo,smlsldls, %
smlsldlt,smlsldmi,smlsldne,smlsldpl,smlsldvc,smlsldvs,smlsldx, %
smlsldxal,smlsldxcc,smlsldxcs,smlsldxeq,smlsldxge,smlsldxgt,smlsldxhi, %
smlsldxhs,smlsldxle,smlsldxlo,smlsldxls,smlsldxlt,smlsldxmi,smlsldxne, %
smlsldxpl,smlsldxvc,smlsldxvs,smmla,smmlaal,smmlacc,smmlacs,smmlaeq, %
smmlage,smmlagt,smmlahi,smmlahs,smmlale,smmlalo,smmlals,smmlalt, %
smmlami,smmlane,smmlapl,smmlar,smmlaral,smmlarcc,smmlarcs,smmlareq, %
smmlarge,smmlargt,smmlarhi,smmlarhs,smmlarle,smmlarlo,smmlarls, %
smmlarlt,smmlarmi,smmlarne,smmlarpl,smmlarvc,smmlarvs,smmlavc,smmlavs, %
smmls,smmlsal,smmlscc,smmlscs,smmlseq,smmlsge,smmlsgt,smmlshi,smmlshs, %
smmlsle,smmlslo,smmlsls,smmlslt,smmlsmi,smmlsne,smmlspl,smmlsr, %
smmlsral,smmlsrcc,smmlsrcs,smmlsreq,smmlsrge,smmlsrgt,smmlsrhi, %
smmlsrhs,smmlsrle,smmlsrlo,smmlsrls,smmlsrlt,smmlsrmi,smmlsrne, %
smmlsrpl,smmlsrvc,smmlsrvs,smmlsvc,smmlsvs,smmul,smmulal,smmulcc, %
smmulcs,smmuleq,smmulge,smmulgt,smmulhi,smmulhs,smmulle,smmullo, %
smmulls,smmullt,smmulmi,smmulne,smmulpl,smmulr,smmulral,smmulrcc, %
smmulrcs,smmulreq,smmulrge,smmulrgt,smmulrhi,smmulrhs,smmulrle, %
smmulrlo,smmulrls,smmulrlt,smmulrmi,smmulrne,smmulrpl,smmulrvc, %
smmulrvs,smmulvc,smmulvs,smuad,smuadal,smuadcc,smuadcs,smuadeq, %
smuadge,smuadgt,smuadhi,smuadhs,smuadle,smuadlo,smuadls,smuadlt, %
smuadmi,smuadne,smuadpl,smuadvc,smuadvs,smuadx,smuadxal,smuadxcc, %
smuadxcs,smuadxeq,smuadxge,smuadxgt,smuadxhi,smuadxhs,smuadxle, %
smuadxlo,smuadxls,smuadxlt,smuadxmi,smuadxne,smuadxpl,smuadxvc, %
smuadxvs,smull,smullal,smullals,smullcc,smullccs,smullcs,smullcss, %
smulleq,smulleqs,smullge,smullges,smullgt,smullgts,smullhi,smullhis, %
smullhs,smullhss,smullle,smullles,smulllo,smulllos,smullls,smulllss, %
smulllt,smulllts,smullmi,smullmis,smullne,smullnes,smullpl,smullpls, %
smulls,smullvc,smullvcs,smullvs,smullvss,smulwy,smulwyal,smulwycc, %
smulwycs,smulwyeq,smulwyge,smulwygt,smulwyhi,smulwyhs,smulwyle, %
smulwylo,smulwyls,smulwylt,smulwymi,smulwyne,smulwypl,smulwyvc, %
smulwyvs,smulxy,smulxyal,smulxycc,smulxycs,smulxyeq,smulxyge,smulxygt, %
smulxyhi,smulxyhs,smulxyle,smulxylo,smulxyls,smulxylt,smulxymi, %
smulxyne,smulxypl,smulxyvc,smulxyvs,smusd,smusdal,smusdcc,smusdcs, %
smusdeq,smusdge,smusdgt,smusdhi,smusdhs,smusdle,smusdlo,smusdls, %
smusdlt,smusdmi,smusdne,smusdpl,smusdvc,smusdvs,smusdx,smusdxal, %
smusdxcc,smusdxcs,smusdxeq,smusdxge,smusdxgt,smusdxhi,smusdxhs, %
smusdxle,smusdxlo,smusdxls,smusdxlt,smusdxmi,smusdxne,smusdxpl, %
smusdxvc,smusdxvs,srsda,srsdb,srsea,srsed,srsfa,srsfd,srsia,srsib, %
ssat,ssat16,ssat16al,ssat16cc,ssat16cs,ssat16eq,ssat16ge,ssat16gt, %
ssat16hi,ssat16hs,ssat16le,ssat16lo,ssat16ls,ssat16lt,ssat16mi, %
ssat16ne,ssat16pl,ssat16vc,ssat16vs,ssatal,ssatcc,ssatcs,ssateq, %
ssatge,ssatgt,ssathi,ssaths,ssatle,ssatlo,ssatls,ssatlt,ssatmi,ssatne, %
ssatpl,ssatvc,ssatvs,ssub16,ssub16al,ssub16cc,ssub16cs,ssub16eq, %
ssub16ge,ssub16gt,ssub16hi,ssub16hs,ssub16le,ssub16lo,ssub16ls, %
ssub16lt,ssub16mi,ssub16ne,ssub16pl,ssub16vc,ssub16vs,ssub8,ssub8al, %
ssub8cc,ssub8cs,ssub8eq,ssub8ge,ssub8gt,ssub8hi,ssub8hs,ssub8le, %
ssub8lo,ssub8ls,ssub8lt,ssub8mi,ssub8ne,ssub8pl,ssub8vc,ssub8vs, %
ssubaddx,ssubaddxal,ssubaddxcc,ssubaddxcs,ssubaddxeq,ssubaddxge, %
ssubaddxgt,ssubaddxhi,ssubaddxhs,ssubaddxle,ssubaddxlo,ssubaddxls, %
ssubaddxlt,ssubaddxmi,ssubaddxne,ssubaddxpl,ssubaddxvc,ssubaddxvs,stc, %
stc2,stcal,stccc,stccs,stceq,stcge,stcgt,stchi,stchs,stcle,stclo, %
stcls,stclt,stcmi,stcne,stcpl,stcvc,stcvs,stmalda,stmaldb,stmalea, %
stmaled,stmalfa,stmalfd,stmalia,stmalib,stmccda,stmccdb,stmccea, %
stmcced,stmccfa,stmccfd,stmccia,stmccib,stmcsda,stmcsdb,stmcsea, %
stmcsed,stmcsfa,stmcsfd,stmcsia,stmcsib,stmda,stmdb,stmea,stmed, %
stmeqda,stmeqdb,stmeqea,stmeqed,stmeqfa,stmeqfd,stmeqia,stmeqib,stmfa, %
stmfd,stmgeda,stmgedb,stmgeea,stmgeed,stmgefa,stmgefd,stmgeia,stmgeib, %
stmgtda,stmgtdb,stmgtea,stmgted,stmgtfa,stmgtfd,stmgtia,stmgtib, %
stmhida,stmhidb,stmhiea,stmhied,stmhifa,stmhifd,stmhiia,stmhiib, %
stmhsda,stmhsdb,stmhsea,stmhsed,stmhsfa,stmhsfd,stmhsia,stmhsib,stmia, %
stmib,stmleda,stmledb,stmleea,stmleed,stmlefa,stmlefd,stmleia,stmleib, %
stmloda,stmlodb,stmloea,stmloed,stmlofa,stmlofd,stmloia,stmloib, %
stmlsda,stmlsdb,stmlsea,stmlsed,stmlsfa,stmlsfd,stmlsia,stmlsib, %
stmltda,stmltdb,stmltea,stmlted,stmltfa,stmltfd,stmltia,stmltib, %
stmmida,stmmidb,stmmiea,stmmied,stmmifa,stmmifd,stmmiia,stmmiib, %
stmneda,stmnedb,stmneea,stmneed,stmnefa,stmnefd,stmneia,stmneib, %
stmplda,stmpldb,stmplea,stmpled,stmplfa,stmplfd,stmplia,stmplib, %
stmvcda,stmvcdb,stmvcea,stmvced,stmvcfa,stmvcfd,stmvcia,stmvcib, %
stmvsda,stmvsdb,stmvsea,stmvsed,stmvsfa,stmvsfd,stmvsia,stmvsib,str, %
stral,stralb,stralbt,strald,stralh,stralt,strb,strbt,strcc,strccb, %
strccbt,strccd,strcch,strcct,strcs,strcsb,strcsbt,strcsd,strcsh, %
strcst,strd,streq,streqb,streqbt,streqd,streqh,streqt,strex,strexal, %
strexcc,strexcs,strexeq,strexge,strexgt,strexhi,strexhs,strexle, %
strexlo,strexls,strexlt,strexmi,strexne,strexpl,strexvc,strexvs,strge, %
strgeb,strgebt,strged,strgeh,strget,strgt,strgtb,strgtbt,strgtd, %
strgth,strgtt,strh,strhi,strhib,strhibt,strhid,strhih,strhit,strhs, %
strhsb,strhsbt,strhsd,strhsh,strhst,strle,strleb,strlebt,strled, %
strleh,strlet,strlo,strlob,strlobt,strlod,strloh,strlot,strls,strlsb, %
strlsbt,strlsd,strlsh,strlst,strlt,strltb,strltbt,strltd,strlth, %
strltt,strmi,strmib,strmibt,strmid,strmih,strmit,strne,strneb,strnebt, %
strned,strneh,strnet,strpl,strplb,strplbt,strpld,strplh,strplt,strt, %
strvc,strvcb,strvcbt,strvcd,strvch,strvct,strvs,strvsb,strvsbt,strvsd, %
strvsh,strvst,sub,subal,subals,subcc,subccs,subcs,subcss,subeq,subeqs, %
subge,subges,subgt,subgts,subhi,subhis,subhs,subhss,suble,subles, %
sublo,sublos,subls,sublss,sublt,sublts,submi,submis,subne,subnes, %
subpl,subpls,subs,subvc,subvcs,subvs,subvss,swi,swial,swicc,swics, %
swieq,swige,swigt,swihi,swihs,swile,swilo,swils,swilt,swimi,swine, %
swipl,swivc,swivs,swp,swpal,swpalb,swpb,swpcc,swpccb,swpcs,swpcsb, %
swpeq,swpeqb,swpge,swpgeb,swpgt,swpgtb,swphi,swphib,swphs,swphsb, %
swple,swpleb,swplo,swplob,swpls,swplsb,swplt,swpltb,swpmi,swpmib, %
swpne,swpneb,swppl,swpplb,swpvc,swpvcb,swpvs,swpvsb,sxtab,sxtab16, %
sxtab16al,sxtab16cc,sxtab16cs,sxtab16eq,sxtab16ge,sxtab16gt,sxtab16hi, %
sxtab16hs,sxtab16le,sxtab16lo,sxtab16ls,sxtab16lt,sxtab16mi,sxtab16ne, %
sxtab16pl,sxtab16vc,sxtab16vs,sxtabal,sxtabcc,sxtabcs,sxtabeq,sxtabge, %
sxtabgt,sxtabhi,sxtabhs,sxtable,sxtablo,sxtabls,sxtablt,sxtabmi, %
sxtabne,sxtabpl,sxtabvc,sxtabvs,sxtah,sxtahal,sxtahcc,sxtahcs,sxtaheq, %
sxtahge,sxtahgt,sxtahhi,sxtahhs,sxtahle,sxtahlo,sxtahls,sxtahlt, %
sxtahmi,sxtahne,sxtahpl,sxtahvc,sxtahvs,sxtb,sxtb16,sxtb16al,sxtb16cc, %
sxtb16cs,sxtb16eq,sxtb16ge,sxtb16gt,sxtb16hi,sxtb16hs,sxtb16le, %
sxtb16lo,sxtb16ls,sxtb16lt,sxtb16mi,sxtb16ne,sxtb16pl,sxtb16vc, %
sxtb16vs,sxtbal,sxtbcc,sxtbcs,sxtbeq,sxtbge,sxtbgt,sxtbhi,sxtbhs, %
sxtble,sxtblo,sxtbls,sxtblt,sxtbmi,sxtbne,sxtbpl,sxtbvc,sxtbvs,sxth, %
sxthal,sxthcc,sxthcs,sxtheq,sxthge,sxthgt,sxthhi,sxthhs,sxthle,sxthlo, %
sxthls,sxthlt,sxthmi,sxthne,sxthpl,sxthvc,sxthvs,teq,teqal,teqcc, %
teqcs,teqeq,teqge,teqgt,teqhi,teqhs,teqle,teqlo,teqls,teqlt,teqmi, %
teqne,teqpl,teqvc,teqvs,tst,tstal,tstcc,tstcs,tsteq,tstge,tstgt,tsthi, %
tsths,tstle,tstlo,tstls,tstlt,tstmi,tstne,tstpl,tstvc,tstvs,uadd16, %
uadd16al,uadd16cc,uadd16cs,uadd16eq,uadd16ge,uadd16gt,uadd16hi, %
uadd16hs,uadd16le,uadd16lo,uadd16ls,uadd16lt,uadd16mi,uadd16ne, %
uadd16pl,uadd16vc,uadd16vs,uadd8,uadd8al,uadd8cc,uadd8cs,uadd8eq, %
uadd8ge,uadd8gt,uadd8hi,uadd8hs,uadd8le,uadd8lo,uadd8ls,uadd8lt, %
uadd8mi,uadd8ne,uadd8pl,uadd8vc,uadd8vs,uaddsubx,uaddsubxal, %
uaddsubxcc,uaddsubxcs,uaddsubxeq,uaddsubxge,uaddsubxgt,uaddsubxhi, %
uaddsubxhs,uaddsubxle,uaddsubxlo,uaddsubxls,uaddsubxlt,uaddsubxmi, %
uaddsubxne,uaddsubxpl,uaddsubxvc,uaddsubxvs,uhadd16,uhadd16al, %
uhadd16cc,uhadd16cs,uhadd16eq,uhadd16ge,uhadd16gt,uhadd16hi,uhadd16hs, %
uhadd16le,uhadd16lo,uhadd16ls,uhadd16lt,uhadd16mi,uhadd16ne,uhadd16pl, %
uhadd16vc,uhadd16vs,uhadd8,uhadd8al,uhadd8cc,uhadd8cs,uhadd8eq, %
uhadd8ge,uhadd8gt,uhadd8hi,uhadd8hs,uhadd8le,uhadd8lo,uhadd8ls, %
uhadd8lt,uhadd8mi,uhadd8ne,uhadd8pl,uhadd8vc,uhadd8vs,uhaddsubx, %
uhaddsubxal,uhaddsubxcc,uhaddsubxcs,uhaddsubxeq,uhaddsubxge, %
uhaddsubxgt,uhaddsubxhi,uhaddsubxhs,uhaddsubxle,uhaddsubxlo, %
uhaddsubxls,uhaddsubxlt,uhaddsubxmi,uhaddsubxne,uhaddsubxpl, %
uhaddsubxvc,uhaddsubxvs,uhsub16,uhsub16al,uhsub16cc,uhsub16cs, %
uhsub16eq,uhsub16ge,uhsub16gt,uhsub16hi,uhsub16hs,uhsub16le,uhsub16lo, %
uhsub16ls,uhsub16lt,uhsub16mi,uhsub16ne,uhsub16pl,uhsub16vc,uhsub16vs, %
uhsub8,uhsub8al,uhsub8cc,uhsub8cs,uhsub8eq,uhsub8ge,uhsub8gt,uhsub8hi, %
uhsub8hs,uhsub8le,uhsub8lo,uhsub8ls,uhsub8lt,uhsub8mi,uhsub8ne, %
uhsub8pl,uhsub8vc,uhsub8vs,uhsubaddx,uhsubaddxal,uhsubaddxcc, %
uhsubaddxcs,uhsubaddxeq,uhsubaddxge,uhsubaddxgt,uhsubaddxhi, %
uhsubaddxhs,uhsubaddxle,uhsubaddxlo,uhsubaddxls,uhsubaddxlt, %
uhsubaddxmi,uhsubaddxne,uhsubaddxpl,uhsubaddxvc,uhsubaddxvs,umaal, %
umaalal,umaalcc,umaalcs,umaaleq,umaalge,umaalgt,umaalhi,umaalhs, %
umaalle,umaallo,umaalls,umaallt,umaalmi,umaalne,umaalpl,umaalvc, %
umaalvs,umlal,umlalal,umlalals,umlalcc,umlalccs,umlalcs,umlalcss, %
umlaleq,umlaleqs,umlalge,umlalges,umlalgt,umlalgts,umlalhi,umlalhis, %
umlalhs,umlalhss,umlalle,umlalles,umlallo,umlallos,umlalls,umlallss, %
umlallt,umlallts,umlalmi,umlalmis,umlalne,umlalnes,umlalpl,umlalpls, %
umlals,umlalvc,umlalvcs,umlalvs,umlalvss,umull,umullal,umullals, %
umullcc,umullccs,umullcs,umullcss,umulleq,umulleqs,umullge,umullges, %
umullgt,umullgts,umullhi,umullhis,umullhs,umullhss,umullle,umullles, %
umulllo,umulllos,umullls,umulllss,umulllt,umulllts,umullmi,umullmis, %
umullne,umullnes,umullpl,umullpls,umulls,umullvc,umullvcs,umullvs, %
umullvss,uqadd16,uqadd16al,uqadd16cc,uqadd16cs,uqadd16eq,uqadd16ge, %
uqadd16gt,uqadd16hi,uqadd16hs,uqadd16le,uqadd16lo,uqadd16ls,uqadd16lt, %
uqadd16mi,uqadd16ne,uqadd16pl,uqadd16vc,uqadd16vs,uqadd8,uqadd8al, %
uqadd8cc,uqadd8cs,uqadd8eq,uqadd8ge,uqadd8gt,uqadd8hi,uqadd8hs, %
uqadd8le,uqadd8lo,uqadd8ls,uqadd8lt,uqadd8mi,uqadd8ne,uqadd8pl, %
uqadd8vc,uqadd8vs,uqaddsubx,uqaddsubxal,uqaddsubxcc,uqaddsubxcs, %
uqaddsubxeq,uqaddsubxge,uqaddsubxgt,uqaddsubxhi,uqaddsubxhs, %
uqaddsubxle,uqaddsubxlo,uqaddsubxls,uqaddsubxlt,uqaddsubxmi, %
uqaddsubxne,uqaddsubxpl,uqaddsubxvc,uqaddsubxvs,uqsub16,uqsub16al, %
uqsub16cc,uqsub16cs,uqsub16eq,uqsub16ge,uqsub16gt,uqsub16hi,uqsub16hs, %
uqsub16le,uqsub16lo,uqsub16ls,uqsub16lt,uqsub16mi,uqsub16ne,uqsub16pl, %
uqsub16vc,uqsub16vs,uqsub8,uqsub8al,uqsub8cc,uqsub8cs,uqsub8eq, %
uqsub8ge,uqsub8gt,uqsub8hi,uqsub8hs,uqsub8le,uqsub8lo,uqsub8ls, %
uqsub8lt,uqsub8mi,uqsub8ne,uqsub8pl,uqsub8vc,uqsub8vs,uqsubaddx, %
uqsubaddxal,uqsubaddxcc,uqsubaddxcs,uqsubaddxeq,uqsubaddxge, %
uqsubaddxgt,uqsubaddxhi,uqsubaddxhs,uqsubaddxle,uqsubaddxlo, %
uqsubaddxls,uqsubaddxlt,uqsubaddxmi,uqsubaddxne,uqsubaddxpl, %
uqsubaddxvc,uqsubaddxvs,usad8,usad8al,usad8cc,usad8cs,usad8eq,usad8ge, %
usad8gt,usad8hi,usad8hs,usad8le,usad8lo,usad8ls,usad8lt,usad8mi, %
usad8ne,usad8pl,usad8vc,usad8vs,usada8,usada8al,usada8cc,usada8cs, %
usada8eq,usada8ge,usada8gt,usada8hi,usada8hs,usada8le,usada8lo, %
usada8ls,usada8lt,usada8mi,usada8ne,usada8pl,usada8vc,usada8vs,usat, %
usat16,usat16al,usat16cc,usat16cs,usat16eq,usat16ge,usat16gt,usat16hi, %
usat16hs,usat16le,usat16lo,usat16ls,usat16lt,usat16mi,usat16ne, %
usat16pl,usat16vc,usat16vs,usatal,usatcc,usatcs,usateq,usatge,usatgt, %
usathi,usaths,usatle,usatlo,usatls,usatlt,usatmi,usatne,usatpl,usatvc, %
usatvs,usub16,usub16al,usub16cc,usub16cs,usub16eq,usub16ge,usub16gt, %
usub16hi,usub16hs,usub16le,usub16lo,usub16ls,usub16lt,usub16mi, %
usub16ne,usub16pl,usub16vc,usub16vs,usub8,usub8al,usub8cc,usub8cs, %
usub8eq,usub8ge,usub8gt,usub8hi,usub8hs,usub8le,usub8lo,usub8ls, %
usub8lt,usub8mi,usub8ne,usub8pl,usub8vc,usub8vs,usubaddx,usubaddxal, %
usubaddxcc,usubaddxcs,usubaddxeq,usubaddxge,usubaddxgt,usubaddxhi, %
usubaddxhs,usubaddxle,usubaddxlo,usubaddxls,usubaddxlt,usubaddxmi, %
usubaddxne,usubaddxpl,usubaddxvc,usubaddxvs,uxtab,uxtab16,uxtab16al, %
uxtab16cc,uxtab16cs,uxtab16eq,uxtab16ge,uxtab16gt,uxtab16hi,uxtab16hs, %
uxtab16le,uxtab16lo,uxtab16ls,uxtab16lt,uxtab16mi,uxtab16ne,uxtab16pl, %
uxtab16vc,uxtab16vs,uxtabal,uxtabcc,uxtabcs,uxtabeq,uxtabge,uxtabgt, %
uxtabhi,uxtabhs,uxtable,uxtablo,uxtabls,uxtablt,uxtabmi,uxtabne, %
uxtabpl,uxtabvc,uxtabvs,uxtah,uxtahal,uxtahcc,uxtahcs,uxtaheq,uxtahge, %
uxtahgt,uxtahhi,uxtahhs,uxtahle,uxtahlo,uxtahls,uxtahlt,uxtahmi, %
uxtahne,uxtahpl,uxtahvc,uxtahvs,uxtb,uxtb16,uxtb16al,uxtb16cc, %
uxtb16cs,uxtb16eq,uxtb16ge,uxtb16gt,uxtb16hi,uxtb16hs,uxtb16le, %
uxtb16lo,uxtb16ls,uxtb16lt,uxtb16mi,uxtb16ne,uxtb16pl,uxtb16vc, %
uxtb16vs,uxtbal,uxtbcc,uxtbcs,uxtbeq,uxtbge,uxtbgt,uxtbhi,uxtbhs, %
uxtble,uxtblo,uxtbls,uxtblt,uxtbmi,uxtbne,uxtbpl,uxtbvc,uxtbvs,uxth, %
uxthal,uxthcc,uxthcs,uxtheq,uxthge,uxthgt,uxthhi,uxthhs,uxthle,uxthlo, %
uxthls,uxthlt,uxthmi,uxthne,uxthpl,uxthvc,uxthvs},%
morekeywords=[2]{.2byte,.4byte,.8byte,.abort,.abort,.align,.altmacro, %
.arch,.arch_extension,.arm,.ascii,.asciz,.balign,.bss, %
.bundle_align_mode,.bundle_lock,,.bundle_unlock,.byte,.cantunwind, %
.cfi_endproc,,.cfi_startproc,.code,.comm,.cpu,.data,.def,.desc,.dim, %
.dn,.double,.eabi_attribute,.eject,.else,.elseif,.end,.endef,.endfunc, %
.endif,.equ,.equiv,.eqv,.err,.error,.even,.exitm,.extend,.extend., %
.extern,.fail,.file,.fill,.float,.fnend,.fnstart,.force_thumb,.fpu, %
.func,.global,.globl,.gnu_attribute,.handlerdata,.hidden,.hword, %
.ident,.if,.incbin,.include,.inst,.inst.n,.inst.w,.int,.internal,.irp, %
.irpc,.lcomm,.ldouble,.lflags,.line,.linkonce,.list,.ln,.loc, %
.loc_mark_labels,.local,.long,.ltorg,.ltorg.,.macro,.movsp,.mri, %
.noaltmacro,.nolist,.object_arch,.octa,.offset,.org,.p2align,.packed, %
.pad,.personality,.personalityindex,.pool,.popsection,.previous, %
.print,.protected,.psize,.purgem,.pushsection,.qn,.quad,.reloc,.rept, %
.req,.save,.sbttl,.scl,.secrel32,.section,.set,.setfp,.short,.single, %
.size,.skip,.sleb128,.space,.stabd,,.stabn,,.stabs,.string,.string16, %
.string32,.string64,.string8,.struct,.subsection,.symver,.syntax,.tag, %
.text,.thumb,.thumb_func,.thumb_set,.title,.tlsdescseq,.type,.uleb128, %
.unreq,.unwind_raw,.val,.version,.vsave,.vtable_entry,.vtable_inherit, %
.warning,.weak,.weakref,.word},%
alsoletter={.,0,1,2,3,4,5,6,7,8,9},%
alsodigit={?},%
sensitive=false,%
morestring=[b]",%
morecomment=[s]{/*}{*/},%
morecomment=[l]@,%
morecomment=[l]//,%
}[keywords,comments,strings]
\endinput

BIN
pdfs/DADB.pdf Normal file

Binary file not shown.

BIN
pdfs/DADBErklärung.pdf Normal file

Binary file not shown.