diff --git a/Logsys-Linux.tex b/Logsys-Linux.tex index 8ce1877e1fe681db99c13b51dbb101f737af0cc3..eb97daceb2d838089ee281ecbbcd420ec5829505 100644 --- a/Logsys-Linux.tex +++ b/Logsys-Linux.tex @@ -14,6 +14,8 @@ \graphicspath{{./img/}} +\setlength{\lineskip}{3mm} + %opening \title{Logsys fejlesztőeszköz Linux környezetben} \author{Csókás Bence Viktor} @@ -204,7 +206,9 @@ A kérés egy struktúrát ad vissza, aminek a formátuma a következő:\\ \subsubsection{Tápfeszültség vezérlése} A tápfeszültséget lehet be- illetve kikapcsolni, a túláram- és visszáram védelmi rendszer küszöbeit lekérdezni és átállítani. Ezek a funkciók mind a bRequest=2 kéréstípusba tartoznak. -\noindent\\Tápfeszültség állapota: +\vspace{1em} + +Tápfeszültség állapota: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|l|} @@ -225,6 +229,8 @@ Az IN kérés egy egybájtos logikai értéket (bool) ad vissza. \item Állítás: \texttt{logsys\_tx\_set\_vcc} (\textit{include/logsys/control.h:35}, Implementáció: \textit{src/shared/control.c:50}) \end{itemize} +\vspace{1em} + \noindent Túláramvédelem: \noindent\textbf{URB Control blokk:}\\ @@ -237,6 +243,7 @@ Az IN kérés egy egybájtos logikai értéket (bool) ad vissza. wIndex & 0 & 0 & 0 & 0\\ \hline hossz & 1 & 0 & 0 & 0\\ \hline \end{tabular} + Az IN kérés egy 0-2 közötti számot ad vissza, ami a 450, 700 illetve 950 mA-es küszöböt jelenti. Ezeket egy enumerációba gyűjtöttem a kezelhetőség javításának érdekében. \noindent\textbf{Implementáció} @@ -246,7 +253,9 @@ Az IN kérés egy 0-2 közötti számot ad vissza, ami a 450, 700 illetve 950 mA \item Enumeráció: \texttt{enum LogsysPwrLimit} (\textit{include/logsys/common.h:30}) \end{itemize} -\noindent Áramerősség-mérés korrekciós faktorai: +\vspace{1em} + +Áramerősség-mérés korrekciós faktorai: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|} @@ -260,10 +269,15 @@ Az IN kérés egy 0-2 közötti számot ad vissza, ami a 450, 700 illetve 950 mA \end{tabular} Az IN kérés által visszaadott struktúrát nem implementáltam, de a következőképpen néz ki:\\ -\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} +\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline - ofszet & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20\\ \hline - mező & H & \multicolumn{4}{l|}{$c_{U_{out}}$} & \multicolumn{4}{l|}{$c_{U_{jtag}}$} & \multicolumn{4}{l|}{$c_{U_{io}}$} & \multicolumn{4}{l|}{$c_{I_{out,fine}}$} & \multicolumn{4}{l|}{$c_{I_{out}}$} \\\hline + ofszet & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & \textellipsis\\ \hline + mező & H & \multicolumn{4}{l|}{$c_{U_{out}}$} & \multicolumn{4}{l|}{$c_{U_{jtag}}$} & \multicolumn{4}{l|}{$c_{U_{io}}$} & \textellipsis\\\hline +\end{tabular}\\ +\begin{tabular}{|l|c|c|c|c|c|c|c|c|} + \hline + ofszet & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20\\ \hline + mező & \multicolumn{4}{l|}{$c_{I_{out,fine}}$} & \multicolumn{4}{l|}{$c_{I_{out}}$} \\\hline \end{tabular} \begin{itemize} @@ -277,7 +291,9 @@ Az IN kérés által visszaadott struktúrát nem implementáltam, de a követke \item Struktúra: nincs implementálva \end{itemize} -\noindent Visszáram-tolerancia +\vspace{1em} + +Visszáram-tolerancia \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|l|} @@ -289,6 +305,7 @@ Az IN kérés által visszaadott struktúrát nem implementáltam, de a követke wIndex & 0 & új érték\\ \hline hossz & 2 & 0\\ \hline \end{tabular} + Az IN kérés egy 10 bites, fixpontos kettes komplemens számot ad vissza, az OUT kérés ugyanebben a formátumban várja az adatot. A kódom elvégzi ezek és a lebegőpontos számábrázolás közti konverziót. \noindent\textbf{Implementáció} @@ -311,7 +328,7 @@ Az IN kérés egy 10 bites, fixpontos kettes komplemens számot ad vissza, az OU hossz & 1\\ \hline \end{tabular} -\noindent A visszaadott bájt jelzi az aktív átviteli módot (és 0 ha nincs megnyitva egyetlen átvitel sem). A lehetséges értékeket kigyűjtöttem egy enumerációba. +A visszaadott bájt jelzi az aktív átviteli módot (és 0 ha nincs megnyitva egyetlen átvitel sem). A lehetséges értékeket kigyűjtöttem egy enumerációba. \noindent\textbf{Implementáció} \begin{itemize} @@ -335,7 +352,7 @@ Ha a CLK lábat nem használja egyetlen megnyitott átvitel sem, az LDC beépít hossz & 1 & 4 & 1\\ \hline \end{tabular} -\noindent Leállításkor és elindításkor a sikerességet jelző (S) logikai változót kapjuk vissza. Lekérdezéskor pedig a következőt:\\ +Leállításkor és elindításkor a sikerességet jelző (S) logikai változót kapjuk vissza. Lekérdezéskor pedig a következőt:\\ \begin{tabular}{|l|c|c|c|c|} \hline ofszet & 0 & 1 & 2 & 3\\ \hline @@ -356,14 +373,14 @@ Ha nincs a RST lábat használó átvitel megnyitva, lehetőségünk van aszinkr hossz & 1 & 1 & 1\\ \hline \end{tabular} -\noindent Beállításnál a visszatérési érték 0, ha a RST láb használatban van, és >0, ha sikerült a beállítás. Lekérdezésnél a RST logikai értékét kapjuk vissza. +Beállításnál a visszatérési érték 0, ha a RST láb használatban van, és >0, ha sikerült a beállítás. Lekérdezésnél a RST logikai értékét kapjuk vissza. \subsection{Átviteli módok} \subsubsection{JTAG} \label{ssssec:JTAG xfer} Az első és talán legfontosabb implementált átviteli mód a JTAG. Ez a 0. interfész 0x01/0x82 enpoint-párját használja, valamint az LDC TDI, TDO, TMS, TCK és JTREF lábait. Ezen az interfészen keresztül lehetséges az LDC-hez illesztett elektronika konfigurálása és hibakövetése. -\noindent\\A JTAG megnyitásához két Control blokkot kell kiadnunk: +A JTAG megnyitásához két Control blokkot kell kiadnunk: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|l|} @@ -376,11 +393,15 @@ Az első és talán legfontosabb implementált átviteli mód a JTAG. Ez a 0. in hossz & 1 & 0\\ \hline \end{tabular} -\noindent Ha az első kérés logikai hamisat ad vissza, megszakítjuk a műveletet. A "JTAG mód" paraméter leírása lejjebb található. +Ha az első kérés logikai hamisat ad vissza, megszakítjuk a műveletet. A "JTAG mód" paraméter leírása lejjebb található. + +\vspace{1em} Megnyitott JTAG átvitel közben fel tudjuk deríteni a JTAG láncot (\textit{Boundary Scan}), ehhez egy tapasztalati úton talált "mágikus sorozatot" kell leadnunk a 0x01 Bulk végponton, erre a \texttt{logsys\_jtag\_scan} függvény használható. -\noindent\\Az átvitel bezárásához a következő kérést használjuk: +\vspace{1em} + +Az átvitel bezárásához a következő kérést használjuk: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|} @@ -411,6 +432,8 @@ A LDC kétféle módban tudja a JTAG interfészt kezelni: Visszaolvasás módban működik pl. a Boundary Scan, mert ott az eszköz ID code-ját vissza kell adnunk a számítógépnek. SVF fájlok letöltése (lásd lejjebb, az "FPGA konfigurációs fájlok" részben) során azonban tudjuk, hogy milyen TDO értéket várunk (ez benne van az SVF állományban). Így ahelyett, hogy visszaolvasnánk USB-n keresztül, és a számítógép hasonlítaná össze, használhatjuk az LDC ellenőrzéses módját, ezáltal USB sávszélességet takarítva meg. +\vspace{1em} + \noindent Az ellenőrzést a következő kéréssel végezzük: \noindent\textbf{URB Control blokk:}\\ @@ -424,7 +447,9 @@ Visszaolvasás módban működik pl. a Boundary Scan, mert ott az eszköz ID cod hossz & 1\\ \hline \end{tabular} -\noindent\\\\A módot megnyitott átvitel esetén is átválthatjuk: +\vspace{1em} + +A módot megnyitott átvitel esetén is átválthatjuk: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|l|} @@ -447,7 +472,9 @@ Visszaolvasás módban működik pl. a Boundary Scan, mert ott az eszköz ID cod \noindent\textbf{JTAG adatátvitel} -A TDI/TDO/TMS értékek megadása a 0x01/0x82 endpoint-párra küldött Bulk transzferekkel történik, egy speciális csomagformátumban:\\ +A TDI/TDO/TMS értékek megadása a 0x01/0x82 endpoint-párra küldött Bulk transzferekkel történik, egy speciális csomagformátumban: + +\vspace{1em} TDI írás visszaolvasás módban: @@ -469,7 +496,9 @@ TDI írás ellenőrzés módban: 4. oktett & \multicolumn{8}{c|}{ellenőrzés maszkja}\\\hline \end{tabular} -\noindent Az írás végén a TMS vonal \textit{TMS} értékét veszi fel.\\ +\noindent Az írás végén a TMS vonal \textit{TMS} értékét veszi fel. + +\vspace{1em} TMS írás visszaolvasás módban: @@ -491,7 +520,9 @@ TMS írás ellenőrzés módban: 4. oktett & \multicolumn{8}{c|}{ellenőrzés maszkja}\\\hline \end{tabular} -\noindent Ekkor a kiírandó bitek a TMS vonalra kerülnek, nem pedig a TDI-re. Ez a funkció a TAP kontroller állapotának beállításához kell.\cite{RT-dipterv}\\ +\noindent Ekkor a kiírandó bitek a TMS vonalra kerülnek, nem pedig a TDI-re. Ez a funkció a TAP kontroller állapotának beállításához kell.\cite{RT-dipterv} + +\vspace{1em} RUNTEST visszaolvasás módban: @@ -513,14 +544,18 @@ RUNTEST ellenőrzés módban: 4. oktett & \multicolumn{8}{c|}{pulzusok száma}\\\hline \end{tabular} -\noindent Ebben a módban TCK vonalra a megadott számú órajelpulzust lehet kiküldeni és a TMS vonal értéke a \textit{TMS} bit lesz.\cite{RT-dipterv} Ez a RUNTEST SVF parancsoknál hasznos. Ezt a módot nem használom, mivel a libxsvf elabsztrahálja előlem a RUNTEST parancsot.\\ +Ebben a módban TCK vonalra a megadott számú órajelpulzust lehet kiküldeni és a TMS vonal értéke a \textit{TMS} bit lesz.\cite{RT-dipterv} Ez a RUNTEST SVF parancsoknál hasznos. Ezt a módot nem használom, mivel a libxsvf elabsztrahálja előlem a RUNTEST parancsot. Ellenőrzés módban a számítógépnek ugyanannyi bájtot kell visszaolvasnia, mint amennyit elküldött. A visszaolvasott bájtok közül csak minden második a hasznos TDO adat, a többi bájt értéke 0.\cite{RT-dipterv} \noindent\textbf{FPGA konfigurációs fájlok} -A libxsvf-nek köszönhetően SVF és XSVF formátumú fájlokat képes a program natívan kezelni. Azonban a BIT (és JED) formátumok nem nyíltak, így azok kezeléséhez a Xilinx egyik segédprogramjával (iMPACT) át kell konvertálnom SVF-re. (ugyanezt teszi egyébként a Logsys GUI is). A segédprogrammal való kommunikációhoz a libc \texttt{popen} metódusát használom, ami a Unix pipe-okat használja (a Logsys GUI pedig temporális fájlokat hoz létre ugyanerre a célra). Azonban az iMPACT-nak nem lehet megmondani, hogy ne hozzon létre logfájlt, így hogy ne szemetelje tele a munkakönyvtárat, a szubprocessz elindítása előtt átlépek a \texttt{/tmp} könyvtárba, ami Unix-szerű rendszereken általában bárki által írható és nem perzisztens tároló. Ennek következtében azonban elveszítjük a relatív útvonalak használatának lehetőségét (hiszen mappát váltunk, és az így a \texttt{/tmp}-hez képest értelmeződne). Valamint mivel a terminálból olvasáskor a parancsok paramétereit szóközzel választom el, problémás a szóközt tartalmazó útvonalak használata. Speciális esetként beletettem, hogy az aposztrófok vagy idézőjelek közötti szóköz ne törje az argumentumlistát, de pl. nem támogatom a "\texttt{\textbackslash~}" formátumú escape-lést. Valamint ha egy útvonal tartalmaz aposztrófot ÉS idézőjelet IS, akkor nem reprezentálható. +A libxsvf-nek köszönhetően SVF és XSVF formátumú fájlokat képes a program natívan kezelni. Azonban a BIT (és JED) formátumok nem nyíltak, így azok kezeléséhez a Xilinx egyik segédprogramjával (iMPACT) át kell konvertálnom SVF-re. (ugyanezt teszi egyébként a Logsys GUI is). + +A segédprogrammal való kommunikációhoz a libc \texttt{popen} metódusát használom, ami a Unix pipe-okat használja (a Logsys GUI pedig temporális fájlokat hoz létre ugyanerre a célra). Azonban az iMPACT-nak nem lehet megmondani, hogy ne hozzon létre logfájlt, így hogy ne szemetelje tele a munkakönyvtárat, a szubprocessz elindítása előtt átlépek a \texttt{/tmp} könyvtárba, ami Unix-szerű rendszereken általában bárki által írható és nem perzisztens tároló. Ennek következtében azonban elveszítjük a relatív útvonalak használatának lehetőségét (hiszen mappát váltunk, és az így a \texttt{/tmp}-hez képest értelmeződne). + +Valamint mivel a terminálból olvasáskor a parancsok paramétereit szóközzel választom el, problémás a szóközt tartalmazó útvonalak használata. Speciális esetként beletettem, hogy az aposztrófok vagy idézőjelek közötti szóköz ne törje az argumentumlistát, de pl. nem támogatom a "\texttt{\textbackslash~}" formátumú escape-lést. Valamint ha egy útvonal tartalmaz aposztrófot ÉS idézőjelet IS, akkor nem reprezentálható. \noindent\textbf{Implementáció} \begin{itemize} @@ -536,7 +571,9 @@ Az implementációt a flash chipek felprogramozását végző Windowsos segédpr Az adatátvitel történhet 8, 4, 2 vagy 1 MHz-es órajel mellett, ezenfelül többféle módot támogat, amit nem sikerült visszafejtenem. Az adatok átviteléhez a 0x01/0x82-es Bulk endpoint-párt használja. -\noindent\\Az átvitel a következő két kéréssel nyitható meg: +\vspace{1em} + +Az átvitel a következő két kéréssel nyitható meg: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|l|} @@ -551,7 +588,9 @@ Az adatátvitel történhet 8, 4, 2 vagy 1 MHz-es órajel mellett, ezenfelül t A $freq$ mezőben jobbról 0, 1, 2 vagy 3 db 1-es bit lép be attól függően, hogy a CLK frekvenciát 8, 4, 2 vagy 1 MHz-en akarjuk használni. Az IN kérés a sikerességet adja vissza. -\noindent\\Ezután az adatátvitel egy 5 bájtos header kiküldésével kezdődik a 0x01-es USB végponton: +\vspace{1em} + +Ezután az adatátvitel egy 5 bájtos header kiküldésével kezdődik a 0x01-es USB végponton: \noindent\begin{tabular}{|l|c|c|c|c|c|} \hline @@ -575,9 +614,11 @@ Majd a 0x82-es végpontról szintén Bulk átvitellel visszaolvassuk a státuszk mező & státusz & adatok\\ \hline \end{tabular} -\noindent Ezt a műveletsort végzi el nekünk a \texttt{logsys\_spi\_cmd} függvény. +Ezt a műveletsort végzi el nekünk a \texttt{logsys\_spi\_cmd} függvény. + +\vspace{1em} -\noindent\\Az átvitel bezárásához a következő kérést használjuk: +Az átvitel bezárásához a következő kérést használjuk: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|} @@ -591,7 +632,9 @@ Majd a 0x82-es végpontról szintén Bulk átvitellel visszaolvassuk a státuszk \end{tabular} \noindent\textbf{Implementáció} -(nem része a RC3-as verziónak. A sorszámok a \texttt{644e061\-53c1351cc038acfa3bf2212f86500aa48}-as commitra értendőek) + +\noindent(nem része a RC3-as verziónak. A sorszámok a \texttt{644e061\-53c1351cc038acfa3bf2212f86500aa48}-as commitra értendőek) + \begin{itemize} \item Megnyitás: \texttt{logsys\_spi\_begin} (\textit{include/logsys/serio.h:124}, implementáció: \textit{src/shared/serio.c:67}) \item Lezárás: \texttt{logsys\_spi\_end} (\textit{include/logsys/serio.h:126}, implementáció: \textit{src/shared/serio.c:73}) @@ -604,7 +647,9 @@ Majd a 0x82-es végpontról szintén Bulk átvitellel visszaolvassuk a státuszk \subsubsection{USART} Az USART (Universal Synchronous/Asynchronous Receive \& Transmit) adatátvitellel általános célú full duplex soros kapcsolatot létesíthetünk a számítógép és a céleszköz között. Az LDC képes hardveresen kezelni az USART átviteleket, a MOSI (TX), MISO (RX), CLK (csak USRT mód esetén) és IOREF lábakon keresztül. -\noindent\\Az átvitel indítása a következő kérésekkel történik: +\vspace{1em} + +Az átvitel indítása a következő kérésekkel történik: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|l|l|} @@ -617,11 +662,15 @@ Az USART (Universal Synchronous/Asynchronous Receive \& Transmit) adatátvitelle hossz & 1 & 0 & 0\\ \hline \end{tabular} -\noindent Az IN által visszaadott bájt a kérés sikerességét jelzi. A vonali kódolás paramétereinek beállítására enumerációkat hoztam létre. +Az IN által visszaadott bájt a kérés sikerességét jelzi. A vonali kódolás paramétereinek beállítására enumerációkat hoztam létre. + +\vspace{1em} A portra való írás egy egyszerű Bulk átvitellel történik a 0x05-ös végponton. Olvasás esetén azonban figyeljünk arra, hogy a 0x86-os endpointról való olvasás első bájtja egy státuszbájt! Ez a státusz egy bitmező, jelentése a \texttt{LogsysUsartStatus} enumerációban található. -\noindent\\Az átvitelt ezzel a kéréssel zárhatjuk be: +\vspace{1em} + +Az átvitelt ezzel a kéréssel zárhatjuk be: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|} @@ -634,7 +683,9 @@ A portra való írás egy egyszerű Bulk átvitellel történik a 0x05-ös végp hossz & 0\\ \hline \end{tabular} -\noindent\\Illetve lehetőségünk van a soros port képességeinek lekérésére (minimális és maximális baudráta, órajel stb.) +\vspace{1em} + +Illetve lehetőségünk van a soros port képességeinek lekérésére (minimális és maximális baudráta, órajel stb.) \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|} @@ -647,12 +698,17 @@ A portra való írás egy egyszerű Bulk átvitellel történik a 0x05-ös végp hossz & 24\\ \hline \end{tabular} -\noindent Ez egy ilyen struktúrát ad vissza: +Ez egy ilyen struktúrát ad vissza: -\noindent\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} +\noindent\begin{tabular}{|l|c|c|c|c|c|c|c|c|c|c|} + \hline + ofszet & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & \textellipsis\\\hline + mező & \multicolumn{4}{c|}{órajel} & előosztás & \multicolumn{4}{c|}{min. baud/s} & \textellipsis\\\hline +\end{tabular}\\ +\begin{tabular}{|l|c|c|c|c|c|c|c|} \hline - ofszet & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 \dots 21 & 22 & 23\\\hline - mező & \multicolumn{4}{c|}{órajel} & előosztás & \multicolumn{4}{c|}{min. baud/s} & \multicolumn{4}{c|}{max. baud/s} & & major verzió & minor verzió \\\hline + ofszet & 9 & 10 & 11 & 12 & 13 \dots 21 & 22 & 23\\\hline + mező & \multicolumn{4}{c|}{max. baud/s} & & major verzió & minor verzió \\\hline \end{tabular} \noindent\textbf{Implementáció} @@ -683,7 +739,11 @@ Az LDC vezérli a MOSI, CLK és RST lábakat, és a CLK fel- illetve lefutó él hossz & 1 & 0\\ \hline \end{tabular} -Az IN által visszaadott bájt jelzi a kérés sikerességét, és 0, ha már egy másik átvitel használja valamelyik kivezetést. Az órajel-frekvenciát adatátvitel közben is megváltoztathatjuk: +Az IN által visszaadott bájt jelzi a kérés sikerességét, és 0, ha már egy másik átvitel használja valamelyik kivezetést. + +\vspace{1em} + +Az órajel-frekvenciát adatátvitel közben is megváltoztathatjuk: \noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|} @@ -696,6 +756,8 @@ Az IN által visszaadott bájt jelzi a kérés sikerességét, és 0, ha már eg hossz & 0\\ \hline \end{tabular} +\vspace{1em} + Átvitelt kezdeményezni egy 0x03 endpointra küldött \texttt{LogsysSerialLines} struktúrával lehet, majd a 0x84 végpontból olvasható ugyanilyen formátumban a mintavételezett érték. A szükséges bitmaszkokat az \texttt{enum LogsysSerialPin} tartalmazza. A struktúra kiosztása: \noindent\begin{tabular}{|l|l|l|} @@ -706,6 +768,8 @@ Az IN által visszaadott bájt jelzi a kérés sikerességét, és 0, ha már eg \noindent, ahol az első oktett a CLK felfutó, a második a lefutó élén vett értékek és C=CLK, R=RST, O=MOSI és I=MISO. +\vspace{1em} + Az átvitelt lezárni pedig a következőképpen lehet: \noindent\textbf{URB Control blokk:}\\ @@ -807,6 +871,12 @@ Ha már összegyűjtöttünk 8 TCK pulzust, vagy már nem TDI írás történik, Ezek után \texttt{lsvf\_write\_pack} feladata a keretek tömbjéből összeállítani egy Bulk átvitelt. Ehhez csupán sorosítania kell a tömböt, kiküldeni a 0x01-es végpontra, majd megnézni, történt-e hiba az összehasonlítás során. +\begin{figure}[h] + \centering + \includegraphics[width=300px]{conf_bit} + \caption{UML szekvenciadiagram a "conf bit" parancs végrhajtásához hívott függvényekről} +\end{figure} + \pagebreak \section{A parancssori alkalmazás felépítése} A konzolos teszt alkalmazás a \texttt{logsys-test} fájlnevet viseli. A programon belül különféle parancsokat adhatunk ki, amiket az LDC végre fog hajtani. @@ -815,6 +885,7 @@ A program egyszerre pontosan egy csatlakoztatott LDC-t képes használni, és ne A program forráskódja a \textit{src/test/usbtest.c}. +\subsection{Parancsok} A parancsok felépítése a következő: \texttt{kategória operáció [argumentumok]}. Az egyes kategóriák leírása következik lejjebb. \subsubsection{\texttt{status}} @@ -884,7 +955,8 @@ Ez a program az LDC USART átvitelét teszteli. A soros portra kiküld egy teszt A program forráskódja a \textit{src/test/uarttest.c}. -\subsection{Lehetőségek a továbbfejlesztésre} +\pagebreak +\section{Lehetőségek a továbbfejlesztésre} Kezdő Linuxosoknak ijesztő lehet a parancssoros interfész, sokkal barátságosabb lenne egy Logsys GUI-ra hasonlító felület. Erre jelenleg két megközelítés jöhet szóba: diff --git a/img/conf_bit.drawio b/img/conf_bit.drawio new file mode 100644 index 0000000000000000000000000000000000000000..de470cfd385e4a91bcf8f3ea8d232c4157c32879 --- /dev/null +++ b/img/conf_bit.drawio @@ -0,0 +1 @@ +<mxfile host="www.draw.io" modified="2019-10-27T08:06:12.182Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/77.0.3865.90 Chrome/77.0.3865.90 Safari/537.36" etag="e4n1P8RzlMGrBeTC1Wpw" version="12.1.7" type="device" pages="1"><diagram name="Page-1" id="13e1069c-82ec-6db2-03f1-153e76fe0fe0">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</diagram></mxfile> \ No newline at end of file