Sie sind auf Seite 1von 121

Embedded Linux

Open Frame Smart Panel (OFSP) von Ultratronik


mit Nano-X
für analytische Geräte

13 — 01 — 2009

Sören Wellhöfer
OpenSource
Hard- und Software
Nano-X
Unix
Quellen

Gliederung

1 OpenSource

2 Hard- und Software

3 Nano-X

4 Unix

5 Quellen

Sören Wellhöfer Embedded Linux mit Nano-X - Open Frame Smart Panel (OFSP
OpenSource
Vorteile
• Geringe Kosten
• OpenSource-Community
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine Garantie
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine Garantie
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine Garantie
• Keine
Lizenz-Gebundenheit There is NO warranty; not

• Keine even for
Maintainance-Kosten MERCHANTABILITY or
FITNESS FOR A
PARTICULAR PURPOSE.“
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine Garantie
• Keine
Lizenz-Gebundenheit There is NO warranty; not

• Keine even for
Maintainance-Kosten MERCHANTABILITY or
FITNESS FOR A
PARTICULAR PURPOSE.“
GNU General Public License
• Starkes Copyleft

• Software-Derivate unter GPL


GNU General Public License
• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert Freiheit von Software“



Free as in Freedom“

• 4 Grund-Freiheiten:
GNU General Public License
• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert Freiheit von Software“



Free as in Freedom“

• 4 Grund-Freiheiten:
Quelltext
jedem
1 Ausführen zugänglich!
2 Anpassen
GNU General Public License
• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert Freiheit von Software“



Free as in Freedom“

• 4 Grund-Freiheiten:
Quelltext
jedem
1 Ausführen 3 Verteilen zugänglich!
2 Anpassen 4 Verbessern
GNU General Public License
• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert Freiheit von Software“



Free as in Freedom“

• 4 Grund-Freiheiten:
Quelltext
jedem
1 Ausführen 3 Verteilen zugänglich!
2 Anpassen 4 Verbessern
Hard- und Software
Eingebettetes System“

• Technischer Kontext
• Steuern, Regeln, Überwachen
• In PKWs, TVs, DVD-Playern, Handys, ...
Eingebettetes System“

• Technischer Kontext
• Steuern, Regeln, Überwachen
• In PKWs, TVs, DVD-Playern, Handys, ...

Eingebettete Software“

• Hardware-speziell und -restriktiv
Eingebettetes System“

• Technischer Kontext
• Steuern, Regeln, Überwachen
• In PKWs, TVs, DVD-Playern, Handys, ...

Eingebettete Software“

• Hardware-speziell und -restriktiv
• Aufgaben-spezifisch
Eingebettetes System“

• Technischer Kontext
• Steuern, Regeln, Überwachen
• In PKWs, TVs, DVD-Playern, Handys, ...

Eingebettete Software“

• Hardware-speziell und -restriktiv
• Aufgaben-spezifisch
=⇒ Nicht-universell
Eingebettetes System“

• Technischer Kontext
• Steuern, Regeln, Überwachen
• In PKWs, TVs, DVD-Playern, Handys, ...

Eingebettete Software“

• Hardware-speziell und -restriktiv
• Aufgaben-spezifisch
=⇒ Nicht-universell
Eingebettetes Betriebssystem“

• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme
• Steueraufgaben: Programme
Eingebettetes Betriebssystem“

• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme
• Steueraufgaben: Programme
=⇒ Universell und Integrierbar
Eingebettetes Betriebssystem“

• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme
• Steueraufgaben: Programme
=⇒ Universell und Integrierbar
Windows Embedded
• Support

Embedded Linux
Windows Embedded
• Support
• Hardware-Unterstützung

Embedded Linux
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen

Embedded Linux
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen

Embedded Linux
• Optimierbar
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen

Embedded Linux
• Optimierbar
• Viele Architekturen
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen

Embedded Linux
• Optimierbar
• Viele Architekturen
• Kernel-Modularität
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen

Embedded Linux
• Optimierbar
• Viele Architekturen
• Kernel-Modularität
• OpenSource Tools
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen

Embedded Linux
• Optimierbar
• Viele Architekturen
• Kernel-Modularität
• OpenSource Tools
Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash
Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen


Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen

• 1 x 10/100 MBit Ethernet

• 1 x USB

• 2 x RS232 Serielle Schnittstellen


Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen

• 1 x 10/100 MBit Ethernet

• 1 x USB

• 2 x RS232 Serielle Schnittstellen

• Klein, Günstig und Leistungsstark


Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen

• 1 x 10/100 MBit Ethernet

• 1 x USB

• 2 x RS232 Serielle Schnittstellen

• Klein, Günstig und Leistungsstark


Windows CE
• Schlanker Kernel
Windows CE
• Schlanker Kernel
• Komponenten-basierend
Windows CE
• Schlanker Kernel
• Komponenten-basierend
• Teilweise Quellcode
Windows CE
• Schlanker Kernel
• Komponenten-basierend
• Teilweise Quellcode
• Entwicklungsumgebungen
Windows CE
• Schlanker Kernel
• Komponenten-basierend
• Teilweise Quellcode
• Entwicklungsumgebungen
• Microwindows (Nano-X)
Windows CE
• Schlanker Kernel
• Komponenten-basierend
• Teilweise Quellcode
• Entwicklungsumgebungen
• Microwindows (Nano-X)
Ultratronik (Debian) Linux

• Modifiziertes und reduziertes


Debian
Ultratronik (Debian) Linux

• Modifiziertes und reduziertes


Debian
• GNU Tools und Bibliotheken
Ultratronik (Debian) Linux

• Modifiziertes und reduziertes


Debian
• GNU Tools und Bibliotheken
• Linux Kernel Trees für OFSP
Ultratronik (Debian) Linux

• Modifiziertes und reduziertes


Debian
• GNU Tools und Bibliotheken
• Linux Kernel Trees für OFSP
• Root-Dateisystem
Ultratronik (Debian) Linux

• Modifiziertes und reduziertes


Debian
• GNU Tools und Bibliotheken
• Linux Kernel Trees für OFSP
• Root-Dateisystem
• Microwindows (Nano-X)
Ultratronik (Debian) Linux

• Modifiziertes und reduziertes


Debian
• GNU Tools und Bibliotheken
• Linux Kernel Trees für OFSP
• Root-Dateisystem
• Microwindows (Nano-X)
Nano-X
Nano-X – Ein schlankes graphisches System

The Nano-X Window System is an Open Source



project aimed at bringing the features of modern
graphical windowing environments to smaller devices
and platforms.“

... Open Source ... “



... modern graphical windowing environments ... “

... smaller devices ... “

Nano-X – Ein schlankes graphisches System

The Nano-X Window System is an Open Source



project aimed at bringing the features of modern
graphical windowing environments to smaller devices
and platforms.“

... Open Source ... “



... modern graphical windowing environments ... “

... smaller devices ... “

Graphics Windowing Standard für Embedded Linux
Nano-X – Ein schlankes graphisches System

The Nano-X Window System is an Open Source



project aimed at bringing the features of modern
graphical windowing environments to smaller devices
and platforms.“

... Open Source ... “



... modern graphical windowing environments ... “

... smaller devices ... “

Graphics Windowing Standard für Embedded Linux
Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext
Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL

Originalautor

Original-Quelltext
Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL

Originalautor

Original-Quelltext OpenSource
Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL

Originalautor

Original-Quelltext OpenSource

Autor von Derivaten


Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL

Originalautor

Original-Quelltext OpenSource

Neuentwicklungen

Autor von Derivaten


Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL

Originalautor

Original-Quelltext OpenSource

Neuentwicklungen ClosedSource

Autor von Derivaten


Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL

Originalautor

Original-Quelltext OpenSource

Proprietär

Neuentwicklungen ClosedSource

Autor von Derivaten


Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL

Originalautor

Original-Quelltext OpenSource

Proprietär

Neuentwicklungen ClosedSource

Autor von Derivaten


Nano-X Architektur
Glue-Layer“ - Prinzip

Betriebsebene Engine level“ (MicroGUI)


Treiberebene Driver level“



Glue-Layer“ - Prinzip

Anwendungsebene Nano-X API Microwindows API

Betriebsebene Engine level“ (MicroGUI)


Treiberebene Driver level“



Glue-Layer“ - Prinzip

Anwendungsebene Nano-X API Microwindows API

Betriebsebene Engine level“ (MicroGUI)


Treiberebene Driver level“


Nano-X API =⇒ Xlib (X11)


Glue-Layer“ - Prinzip

Anwendungsebene Nano-X API Microwindows API

Betriebsebene Engine level“ (MicroGUI)


Treiberebene Driver level“


Nano-X API =⇒ Xlib (X11)

Microwindows API =⇒ APIW (Win32 API)


Glue-Layer“ - Prinzip

Anwendungsebene Nano-X API Microwindows API

Betriebsebene Engine level“ (MicroGUI)


Treiberebene Driver level“


Nano-X API =⇒ Xlib (X11)

Microwindows API =⇒ APIW (Win32 API)


Advanced Programmer’s Interfaces

Nano-X API
• Client/Server
• Ressourceneffizient
• X11 Entwicklungsumgebung
Advanced Programmer’s Interfaces

Nano-X API
• Client/Server
• Ressourceneffizient
• X11 Entwicklungsumgebung
• Erweiterungen
Advanced Programmer’s Interfaces

Nano-X API Microwindows API


• Client/Server • Kein Client/Server
• Ressourceneffizient
• X11 Entwicklungsumgebung
• Erweiterungen
Advanced Programmer’s Interfaces

Nano-X API Microwindows API


• Client/Server • Kein Client/Server
• Ressourceneffizient • Langsamere Programme
• X11 Entwicklungsumgebung • Größere Executables
• Erweiterungen
Advanced Programmer’s Interfaces

Nano-X API Microwindows API


• Client/Server • Kein Client/Server
• Ressourceneffizient • Langsamere Programme
• X11 Entwicklungsumgebung • Größere Executables
• Erweiterungen • Win32 API Unterstützung
Advanced Programmer’s Interfaces

Nano-X API Microwindows API


• Client/Server • Kein Client/Server
• Ressourceneffizient • Langsamere Programme
• X11 Entwicklungsumgebung • Größere Executables
• Erweiterungen • Win32 API Unterstützung
Kernkonzepte Nano-X API
Fenster
• Fenster-ID ( GR WINDOW ID)
• Baumstrukture (Parent, Child, Sibling, ...)
Kernkonzepte Nano-X API
Fenster
• Fenster-ID ( GR WINDOW ID)
• Baumstrukture (Parent, Child, Sibling, ...)
• Bildschirm = Root window“

• Eigenschaften (Hintergrundfarbe, Rahmen, ...)

Graphische Kontexte

• Menge an graphischen Eigenschaften (Farbe, Dicke, ...)


• GR GC ID kontext = GrNewGC();
• Ähnliche graphische Elemente
Kernkonzepte Nano-X API
Fenster
• Fenster-ID ( GR WINDOW ID)
• Baumstrukture (Parent, Child, Sibling, ...)
• Bildschirm = Root window“

• Eigenschaften (Hintergrundfarbe, Rahmen, ...)

Graphische Kontexte

• Menge an graphischen Eigenschaften (Farbe, Dicke, ...)


• GR GC ID kontext = GrNewGC();
• Ähnliche graphische Elemente
Kernkonzepte Nano-X API

Ereignisse

• Ereignisschlange
( Event queue“)

• Ereignisstruktur für
Ereignistypen
Kernkonzepte Nano-X API

Ereignisse

• Ereignisschlange
( Event queue“)

• Ereignisstruktur für
Ereignistypen

• Polymorpher C-Union
Typ GR EVENT
Kernkonzepte Nano-X API

Ereignisse typedef union {

• Ereignisschlange
( Event queue“)

• Ereignisstruktur für
Ereignistypen

• Polymorpher C-Union
Typ GR EVENT

} GR_EVENT;
Kernkonzepte Nano-X API

Ereignisse typedef union {

• Ereignisschlange /* Ereignistyp */
( Event queue“) GR_EVENT_TYPE type;

• Ereignisstruktur für
Ereignistypen

• Polymorpher C-Union
Typ GR EVENT

} GR_EVENT;
Kernkonzepte Nano-X API

Ereignisse typedef union {

• Ereignisschlange /* Ereignistyp */
( Event queue“) GR_EVENT_TYPE type;

/* Ereignisstrukturen */
• Ereignisstruktur für
...
Ereignistypen
GR_EVENT_BUTTON button;
GR_EVENT_MOUSE mouse;
• Polymorpher C-Union GR_EVENT_EXPOSURE ex;
Typ GR EVENT ...

} GR_EVENT;
Kernkonzepte Nano-X API

Ereignisse typedef union {

• Ereignisschlange /* Ereignistyp */
( Event queue“) GR_EVENT_TYPE type;

/* Ereignisstrukturen */
• Ereignisstruktur für
...
Ereignistypen
GR_EVENT_BUTTON button;
GR_EVENT_MOUSE mouse;
• Polymorpher C-Union GR_EVENT_EXPOSURE ex;
Typ GR EVENT ...

} GR_EVENT;
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten

typedef struct {

} GR_EVENT_EXPOSURE;
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten

typedef struct {
/* Ereignistyp = GR_EVENT_TYPE_EXPOSURE */
GR_EVENT_TYPE type;

} GR_EVENT_EXPOSURE;
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten

typedef struct {
/* Ereignistyp = GR_EVENT_TYPE_EXPOSURE */
GR_EVENT_TYPE type;
/* Sichtbarkeits - Informationen */
GR_WINDOW_ID wid;
GR_COORD x, y;
GR_SIZE width, height;
} GR_EVENT_EXPOSURE;
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten

typedef struct {
/* Ereignistyp = GR_EVENT_TYPE_EXPOSURE */
GR_EVENT_TYPE type;
/* Sichtbarkeits - Informationen */
GR_WINDOW_ID wid;
GR_COORD x, y;
GR_SIZE width, height;
} GR_EVENT_EXPOSURE;
Ereignisschleife ( Event loop“)

/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;
Ereignisschleife ( Event loop“)

/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */


GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);
Ereignisschleife ( Event loop“)

/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */


GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */
for(;;) {

}
Ereignisschleife ( Event loop“)

/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */


GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */
for(;;) {

/* Nächstes Ereignis */
GrGetNextEvent(&ereignis);

}
Ereignisschleife ( Event loop“)

/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */


GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */
for(;;) {

/* Nächstes Ereignis */
GrGetNextEvent(&ereignis);
if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)
{ /* Zeichenroutinen */ }

}
Ereignisschleife ( Event loop“)

/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */


GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */
for(;;) {

/* Nächstes Ereignis */
GrGetNextEvent(&ereignis);
if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)
{ /* Zeichenroutinen */ }

else if ...
}
Ereignisschleife ( Event loop“)

/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */


GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */
for(;;) {

/* Nächstes Ereignis */
GrGetNextEvent(&ereignis);
if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)
{ /* Zeichenroutinen */ }

else if ...
}
Serielle Schnittstelle
und Unix
Weiblicher RS232 DB09 Connector
Senden
/dev/tts/0 /dev/tts/1

/* Öffnen für Lesezugriff */


int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);
Senden
/dev/tts/0 /dev/tts/1

/* Öffnen für Lesezugriff */


int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Öffnen zum Schreiben */


int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);
Senden
/dev/tts/0 /dev/tts/1

/* Öffnen für Lesezugriff */


int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Öffnen zum Schreiben */


int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);

/* 4 Bytes von /dev/tts/0 */


char buffer[4];
read(f1, buffer, 4);
Senden
/dev/tts/0 /dev/tts/1

/* Öffnen für Lesezugriff */


int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Öffnen zum Schreiben */


int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);

/* 4 Bytes von /dev/tts/0 */


char buffer[4];
read(f1, buffer, 4);

/* 4 Bytes an /dev/tts/1 */
write(f2, buffer, 4);
Senden
/dev/tts/0 /dev/tts/1

/* Öffnen für Lesezugriff */


int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Öffnen zum Schreiben */


int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);

/* 4 Bytes von /dev/tts/0 */


char buffer[4];
read(f1, buffer, 4);

/* 4 Bytes an /dev/tts/1 */
write(f2, buffer, 4);
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
• Kostengünstig
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
• GNU/Linux
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
• GNU/Linux
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
• GNU/Linux
Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
• GNU/Linux
[http://www.microwindows.org]
The Official Microwindows Website
Greg Haerr (greg@censoft.com), 05.01.2009
[http://www.ultratronik.de/linux.html]
Ultratronik Linux Distribution
Ultratronik GmbH, 06.01.2009
[http://embedded.centurysoftware.com/docs/nx]
Century Embedded Technologies Nano-X SDK and
Developer’s Guide
Century Software, 04.01.2009
[http://www.webadventures.au]
WebAdventures – Find your place on the web
Heath L’Estrange, 03.01.2009
Embedded Linux
Open Frame Smart Panel (OFSP) von Ultratronik
mit Nano-X
für analytische Geräte

13 — 01 — 2009

Sören Wellhöfer

Das könnte Ihnen auch gefallen