]> rtime.felk.cvut.cz Git - mf6xx.git/commitdiff
Diploma thesis text.
authorRostislav Lisovy <lisovy@gmail.com>
Thu, 21 Apr 2011 22:05:41 +0000 (00:05 +0200)
committerRostislav Lisovy <lisovy@gmail.com>
Thu, 21 Apr 2011 22:05:41 +0000 (00:05 +0200)
doc/diploma_thesis/text/dip_text.tex
doc/diploma_thesis/text/lisovy_dip.tex

index 5046bee294e0b99261fddbbf4905d4d198c72352..4fde3a9fd60bfa0a9006ff15c399cf67d8d98f6b 100644 (file)
@@ -1174,28 +1174,70 @@ Ukázka jednoduchého userspace programu:
 \end{verbatim}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\chapter{Implementace Humusoft MF624 v Qemu}\label{qemu}
-Měřící karta Humusoft MF624 je hardware vhodný pro výklad principů implementace ovladače -- je ale poměrně drahý. Pro účely výuky proto byly do emulačního software Qemu implementovány základní funkce této měřící karty -- konkrétně se jedná o A/D převodníky, D/A převodníky a digitální vstupy a výstupy. Takto modifikovaná verze qemu může pří implementaci základního ovladače plně nahradit původní kartu.
+\chapter{Implementace karty Humusoft MF624 v Qemu}\label{qemu}
+Měřící karta Humusoft MF624 je hardware vhodný pro výklad principů implementace ovladačů. Nevýhodou může být její cena. Pro účely výuky proto byly do emulačního software Qemu implementovány základní funkce této měřící karty -- konkrétně se jedná o A/D převodníky, D/A převodníky a digitální vstupy a výstupy. Takto modifikovaná verze qemu může pří implementaci základního ovladače plně nahradit původní kartu.
 
 Kromě částečné implementace karty MF624 do Qemu je součástí tohoto \textit{virtuálního hardware} grafická aplikace, která má na starosti nastavování vstupních hodnot a zobrazování výstupních hodnot do/z karty.
 
 
 \section{Qemu}
+Qemu je emulátor různých procesorových architektur. Od klasických virtualizačních nás\-tro\-jů se odlišuje tím, že podporuje velké kromě IA-32 architektury také např. ARM, SPARC, PowerPC, MIPS, m68k. Qemu umožňuje kromě \textit{plné emulace} (kdy je spuštěn celý operační systém) tzv. \textit{uživatelskou emulaci}, kdy je v uživatelském prostoru spuštěn program zkompilovaný pro jinou architekturu. Uživatelská emulace je možná pouze pro operační systém GNU/Linux.
+
 \subsection{Kompilace, instalace}
-Nejprve je potřeba řádně zkompilovat některé ze stabilních vydání emulátoru Qemu.
+Po stažení a rozbalení zdrojových kódů některé ze stabilních verzí emulátoru Qemu je potřeba spustit příkaz (na počítači architektury AI-32):
+\begin{verbatim}
+    $ ./configure --enable-system  --target-list=i386-softmmu
+\end{verbatim}
+
+V případě, že spuštěný skript neohlásí žádné chybějící knihovny, je možné spustit  samotnou kompilaci:
+\begin{verbatim}
+    $ make
+\end{verbatim}
+
+\subsection{Kompilace virtuální karty Humusoft MF624}
+V případě, že je potřeba zkompilovat virtuální kartu MF624, je potřeba  před kompilací překopírovat zdrojový soubor implementující zařízení do složky \texttt{/hw} a do souboru \texttt{Makefile.objs} (nachází se v kořenovém adresáři se zdrojovými kódy) přidat řádek \begin{verbatim}
+    hw-obj-$(CONFIG_PCI) += mf624.o
+\end{verbatim}
+Poté je již možné spustit příkaz
+\begin{verbatim}
+    $ make
+\end{verbatim}
+
 
 \subsection{Použití}
-Komunikace mezi virtuální kartou implementovanou v Qemu a grafickým programem probíhá pomocí TCP/IP protokolu.
+Zkompilovaný binární soubor se nachází v adresáři \texttt{i386-softmmu}. Nejnutnější parametr při spuštění je \texttt{-hda}, který uvádí cestu k souboru reprezentující \textit{obraz} spouštěného systému.
+
+V případě správně zkompilované virtuální karty MF624, je možné ji spustit zadáním parametru \texttt{-device mf624}. Po spuštění je v příkazové řádce vypsáno číslo TCP/IP portu, na kterém virtuální karta MF614 naslouchá. Tento port slouží k připojení klientského programu, který má na starosti vykreslování výstupních a nastavování vstupních hodnot karty (možná implementace je popsána v kapitole \ref{qt_gui_ch}. V případě neexistence klientského software je možné se připojit pomocí programu \texttt{telnet}.
+
+Příklad spuštění:
+\begin{verbatim}
+    $ ./qemu -device mf624 -hda ../os_images/debian.qcow --boot c 
+    MF624 Loaded.
+    Waiting on port 55555 for MF624 client to connect
+    Client connected
+\end{verbatim}
+
+\section{Qt grafiké rozhraní}\label{qt_gui_ch}
+Pro komunikaci s virtuální kartou MF624 bylo implementováno jednoduché grafické rozhraní, které má na starosti vykreslování hodnot výstupů karty (nastavovaných ovladačem běžícím v operačním systému virtualizovaném Qemu) a posílání nastavovaných vstupních hodnot zpět virtuální kartě.
+
+Komunikace mezi virtuální kartou a grafickou aplikací probíhá pomocí TCP/IP protokolu. Přenášené informace jseou textového charakteru, ve formátu \texttt{REGISTR=HODNOTA}.
+
+Na obrázku \ref{qt_gui} je vidět vzhled grafické aplikace.
+
+\subsection{Kompilace, použití}
+Grafická aplikace je vytvořena za pomoci grafického knihovny Qt. V případě, že jsou v systému nainstalovány vývojářské verze Qt knihoven, včetně vývojářských nástrojů, stačí pro kompilaci spustit
+\begin{verbatim}
+    $ qmake
+    $ make
+\end{verbatim}
 
-\section{Qt grafiké rozhraní}
-Na obrázku \ref{qt_gui} je 
+Použití aplikace by mělo být intuitivní. Položky, u kterých není možné měnit jejich hodnotu jsou záměrně pouze pro čtení.
 
-Aplikaci je nutné spouštět až po spuštění Qemu ....
 
 \begin{figure}[h!]
        \begin{center}
-       \includegraphics[width=70mm]{img/qt_gui.png}
-       \caption{(FIXME aktualni verzi). Vzhled grafikcé aplikace pro ovládání vstupů virtuální karty MF624}
+       \includegraphics[width=90mm]{img/qt_gui.png}
+       \caption{(FIXME aktualni verzi). Vzhled grafické aplikace pro ovládání vstupů a výstupů virtuální karty MF624}
        \label{qt_gui}
        \end{center}
 \end{figure}
@@ -1235,9 +1277,9 @@ Správnost implementace virtuálního hardware byla testována spouštěním imp
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \chapter{Závěr}
-V této práci se mi podařilo vysvětlit základní aspekty psaní ovladačů PCI ovladačů -- jak na obecné úrovni, tak u konkrétních ovladačů typu UIO a Comedi.
+V této práci se mi podařilo vysvětlit základní aspekty psaní ovladačů PCI ovladačů pro operační systém GNU/Linux -- jak na obecné úrovni, tak u konkrétních ovladačů typu UIO a Comedi.
 
-Součástí práce jsou základní (pokrývající pouze A/D, D/A převodníky a digitální vstupy/výstupy) ovladače pro karty Humusoft MF624 a Humusoft 614. V budoucnu by tyto ovladače mohly být rozšířeny tak, aby pokrývaly všechny funkce těchto karet.
+Součástí práce jsou základní (pokrývající pouze A/D, D/A převodníky a digitální vstupy/výstupy) ovladače pro karty Humusoft MF624 a Humusoft MF614. V budoucnu by tyto ovladače mohly být rozšířeny tak, aby pokrývaly všechny funkce těchto karet.
 
 Pro potřeby výuky byly implementovány základní funkce karty Humusoft MF614 do emulátoru Qemu. Tato implementace by mohla být v budoucnu rozšířena, případně by mohla posloužit jako příklad pro implementaci jiných jednoduchých PCI zařízení sloužících pro výuku implementace PCI ovladačů. I když tak nebylo původně zamýšleno, mohla by částečná implementace karty MF614 do Qemu posloužit i při výuce psaní ovladačů pro jiné operační systémy, jako například systémy rodiny Microsoft Windows.
 
index 0191a3daea46066769f18c191a5e066bd9f0e036..31a579b2428736f27a2518f3df3d87d07131f409 100644 (file)
 
 \acknowledgements
 \noindent
-Rád bych poděkoval Ing. Pavlu Píšovi, Ph.D., za věcné rady, připomínky čas poskytnutý při konzultacích FIXME.
+Rád bych poděkoval Ing. Pavlu Píšovi, Ph.D., za věcné rady, připomínky a čas strávený konzultováním diplomové práce.
 %Zde můžete napsat své poděkování, pokud chcete a máte komu děkovat.