\subsection[CMSIS-Packs]{\gls{CMSIS}-Packs}
\label{sec:cmsis-packs}

Libraries und Beispielprojekte für die \uVision{} 5 werden in sogenannten \gls{CMSIS}-Packs verwaltet. \gls{CMSIS}-Packs sind \gls{ZIP}-Dateien, welche eine Beschreibungs-Datei im \texttt{.pdsc}-Format enthält. Dies ist intern eine \gls{XML}-Datei, welche den Inhalt und die Abhängigkeiten eines \gls{CMSIS}-Packs beschreibt.

Im Zuge dieser Diplomarbeit entstand ein \gls{CMSIS}-Pack für die HTL \gls{STDLib} und einige Assembler Helper-Dateien, welche für das alte \gls{Minimalsystem} verwendet werden. Dies macht das Arbeiten mit der alten Platform in Verbindung mit \uVision{} 5 einfacher als dies mit der Version 4 war. Des weiteren bietet diese Pack-Strukturierung eine einfache Möglichkeit des Updatens von Libraries, was mit der \uVision{} 4 in dieser Form überhaupt nicht möglich war.

\subsubsection{Die Erstellung}
\label{sec:cmsis-erstellung}

Die Erstellung eines minimalen \gls{CMSIS}-Packs ist nicht allzu schwer und in einigen Minuten erledigt. Die Erstellung von komplexeren Packs mit Abhängigkeiten, Beispielprojekten und so weiter kann unter \cite{arm:CMSISPack} eingesehen werden. Im folgenden Beispiel wird das \gls{STDLib}-Pack erstellt.

\begin{warning}
    Hinweis: Hier wird nur auf die Erstellung des Packs an sich, nicht aber auf die Erstellung der im Pack inkludierten Libraries eingegangen.
\end{warning}

\subsubsubsection{Inhalt}
\label{sec:cmsis-inhalt}

Der Inhalt des \gls{STDLib} \gls{CMSIS}-Packs kann in \fref{fig:cmsis-inhalt} gesehen werden.

% \dirtree{%
% .1 /.
% .2 Header.
% .3 armv10_serbus.h.
% .3 armv10_std.h.
% .3 STD_STM32_F103RB_ASM.INC.
% .3 STM32_F103RB_MEM_MAP.INC.
% .2 Library.
% .3 armv10_serbus.lib.
% .3 ARMV10_STD.lib.
% .2 HTBL_Hollabrunn.STD-Pack.pdsc.
% }

\begin{forest}
    for tree={font=\sffamily, grow'=0,
    folder indent=0.2em, folder icons,
    edge=densely dotted}
    [/
      [Header
          [armv10\_serbus.h, is file]
          [armv10\_std.h, is file]
          [STD\_STM32\_F103RB\_ASM.INC, is file]
          [STM32\_F103RB\_MEM\_MAP.INC, is file]]
      [Library
          [armv10\_serbus.lib, is file]
          [ARMV10\_STD.lib, is file]]
      [HTBL Hollabrunn.STD-Pack.pdsc, is file]
    ]
  \end{forest}
