MT Beschreibung eines I2C Baums unter Embedded Linux

Größe: px
Ab Seite anzeigen:

Download "MT 07-01.10. Beschreibung eines I2C Baums unter Embedded Linux"

Transkript

1 MT Diplombericht Beschreibung eines I2C Baums unter Embedded Linux Abstract: Thesis topic is the evaluation and documentation of describing Single-Master I2C-topologies on Embedded-Linux containing Multiplexers and other I2C slave devices. Employing a prototype on a PowerPC based target, a mechanism of hiding the topology and its ease of integration are demonstrated. Keywords: I2C, Linux, Multiplexer, Flattened Device Tree, PowerPC Diplomand der Klasse 07-01: Christian Herzig, Experte: Rolf Lanz, Betreuer der Arbeit: Thomas Reufer, Dieses Dokument ist Bestandteil der Thesis MT Christian Herzig

2 Zusammenfassung Ausgangslage Die Firma KEYMILE AG migriert Softwareprodukte von vxworks nach Embedded Linux. Ein bislang ungelöstes Problem ist die Behandlung der I2C-Schnittstelle. KEYMILE Produkte sind auf I2C-Multiplexer angewiesen. Durch diese ist das Ansprechen von mehreren Slaves mit identischer Adresse möglich. Bislang unterstützt der Linux Kernel keine I2C-Multiplexer. Zielsetzung Für die Firma KEYMILE AG gilt es, einen Vorschlag auszuarbeiten, wie Single Master I2C- Baumstrukturen mit verschiedenen Slave-Typen unter Embedded Linux beschrieben werden. Mit einem auf einer PowerPC Architektur basierten Prototypen wird die entwickelte Lösung demonstriert. Vorgehensweise Um schlussendlich zum funktionierenden Prototypen zu gelangen, wird die bestehende Lösung unter vxworks analysiert. Die Ergebnisse dieser Analyse bilden die Grundlage für das Formulieren der Anforderungen an die I2C-Lösung unter Embedded Linux. Vor- und Nachteile der möglichen Lösungsansätzen werden gegenübergestellt und der vielversprechendste Ansatz gewählt. Die Realisierung des Prototypen erfolgt strukturiert in verschiedenen Etappen. Zum Schluss wird der Prototyp dem Abnahmetest unterzogen. Alle Schritte und Zwischenlösungen sind dokumentiert. Prototyp Aus der Arbeit MT resultiert ein Prototyp, der allen Anforderungen gerecht wird. Die Aufgabe ist unter Verfolgung der Linux-Konzepte vollständig gelöst. Die erlangte Lösung umfasst einige Kernel-Patches, welche die Behandlung von Multiplexern im Linux-Kernel ermöglichen. Alle am I2C-Kontroller angeschlossenen Bauteile sind über ein virtuelles Filesystem ansprechbar. Dabei verbirgt das System dem Benutzer die Baumstruktur. Die Schaltung der I2C-Multiplexer erfolgt ohne Benutzerinteraktion durch den Kernel. Eine im Rahmen der Master-Thesis erstellte Software-Komponente bietet ein API, um auf die I2C-Komponenten zuzugreifen. Kleine Programme zu Informations- oder Demonstrationszwecken sind in dieser Komponente integriert und per Command Line Interface via serielles Terminal oder Telnet ausführbar. Eine umfassende Sammlung an CUnit Testfällen rundet diese Komponente ab. Fazit In der vorliegenden Arbeit wird eine elegante Lösung präsentiert. Die Beschreibung der I2C- Baumstruktur lässt sich in die bestehende Hardware-Abstraktion integrieren. Mit dem Projektschluss sind ein funktionierender Prototyp und diverse Dokumente verfügbar. Alle mit höchster Priorität (A) deklarierten Anforderungen sind vom Prototypen erfüllt. Rund drei Viertel aller B-priorisierten Anforderungen sind ebenfalls erfüllt. Die Umsetzungsquote der Anforderungen mit der niedrigsten Priorität beträgt 30%. Alle nicht erfüllten Anforderungen sind in der Analyse berücksichtigt, aber aus zeitlichen Gründen nicht implementiert Seite i Christian Herzig

3 Inhalt Zusammenfassung...i Ausgangslage...i Zielsetzung...i Vorgehensweise...i Prototyp...i Fazit...i Inhalt...ii 1 Einleitung Zweck des Dokuments Leserkreis Auftraggeber Zielsetzung Vorgehensweise Analyse der vxworks Lösung Anforderungen an die Linux Lösung Vorschläge für die Implementierung Implementierung Test Projektmanagement Projektorganisation Zeitplanung/Projektphasen Anforderungen Statusberichte Meetings Reviews Überblick der Software Das Linux I2C-Subsystem I2C-Adapter I2C-Treiber I2C-Clients Übersicht Analyse und Inbetriebnahme Adapter und Clients registrieren Virtuelle Adapter Profitieren von Open Source Erweitern des PCA954x Treibers Anbinden von Clients an den Multiplexer Statische Instanzierung Instanzierung anhand des Device Trees Realisierung im Kernel Repositoy Patches von der Firma KEYMILE Patches von Rodolfo Giometti Ausgangslage Patches für die Diplomarbeit Patch Patch Patch Seite ii Christian Herzig

4 6.5.4 Patch Patch Patch Patch Komponente LINUXI2C Kontext Sinn und Zweck Repository Struktur der Komponente Design I2C API Service EEPROM Service IVM Service Temp List-Stimuli Instruktionen zum Prototypen Zielgruppe Flattened Device Tree I2C-Kontroller I2C-Slaves am I2C-Kontroller I2C-Mux am I2C Kontroller Am I2C-Mux angeschlossene I2C-Slaves Kaskadierte Multiplexer Häufige Fehler Dynamische Vergabe der I2C Device- und Adapternamen Linuxi2c Komponente Installation Services Stimuli CUnit Test Erweitern der Linuxi2c Komponente Linux I2C Test Tools Arbeiten in der Linux Community Mailinglisten Git Repository Patches erstellen Patches prüfen Patches versenden Wie Patches in die Mainline gelangen Teststrategie Review von Dokumenten Review von Codes Regression Test Validierung Resultate des Abnahmetests Testaufbau Geltungsbereich Funktionen Programmierung Installation Fehler Seite iii Christian Herzig

5 12.7 Dokumentation Stimuli / Servicekanal Initialisierung Verschiedenes Datenbasis Tutorial Performanz Test Ausblick Danksagung Abkürzungen, Begriffe und Namen Abbildungsverzeichnis Verzeichnis der Listings Verzeichnis der Tracings Literaturverzeichnis Historie...47 A Anhang...48 A.1 Strukturen und Relationen im I2C Subsystem...48 A.2 Vollständiges DTS File für die ETER1 Hardware:...49 B Sequenzdiagramme der LINUXI2C Komponente Seite iv Christian Herzig

6 1 Einleitung 1.1 Zweck des Dokuments Dieses Dokument beinhaltet den Schlussbericht der Master-Thesis MT , Beschreibung eines I2C Baums unter Embedded Linux, welche im Sommer-Semester 2009 zwischen März und September von Christian Herzig erstellt wurde. Der Bericht dokumentiert den Ablauf der Arbeit und erläutert die erreichten Lösungen. Somit wird die Nachverfolgbarkeit sichergestellt sowie Möglichkeiten und Ansätze zur Weiterentwicklung geliefert. Die Zusammenfassung der erfüllten Anforderungen ist ebenfalls Bestandteil des Dokuments und am Schluss zu finden. 1.2 Leserkreis Dieses Dokument richtet sich primär an den Experten und den Betreuer der Master Thesis MT Weiter liefert dieses Dokument hilfreiche Informationen für die Software-Entwickler der Firma KEYMILE AG, welche für die Linux-Plattform verantwortlich sind. Das Kapitel 8.2 bietet für die Hardware Entwickler wichtige Hinweise zur Erstellung der Datenbasis für den I2Crelevanten Teil. Grundkenntnisse von Linux, vom Linux-Kernel und I2C sind Voraussetzung, um den Inhalt dieses Dokuments und den Kontext der Problemstellung zu verstehen. Fundiertes Linux- Basiswissen kann aus den Quellen [4], [5] und [6] erlangt werden. Für die I2C-Grundlagen wird auf das Kapitel 3 in [1] verwiesen. Die Dokumente Beschreibung der I2C Topologie unter vxworks [1], Anforderungen an die Implementation unter Linux [2] und das Dokument Vorschlag für die I2C Implementierung unter Linux [3] sind ebenfalls Resultate dieser Diplomarbeit und bilden die Grundlage dieses Berichts. 1.3 Auftraggeber Auftraggeber ist die Firma KEYMILE AG. Die in dieser Diplomarbeit erlangten Erkenntnisse und Lösungen fliessen in die Weiterentwicklung der KEYMILE Embedded Linux Software Plattform der Produktefamilien UMUX und Milegate ein. UMUX und Milegate sind Multiservice Plattformen für Telekom-Netzbetreiber und stellen das Vermittlungsstück zwischen WAN und den Endbenutzern dar. Die durch diese Produkte unterstützten Dienste reichen von Telefonie über xdsl bis hin zu FTTx. Weiter finden diese Plattformen aufgrund ihrer hohen Verfügbarkeit Einsatz im Bereich des Schienenverkehrs, der Überwachung und Steuerung von Energiewerken und ähnlichen sicherheitsrelevanten Anwendungen. Die Multiservice Plattformen unterstützen hierbei eine Vielzahl von Teilnehmerschnittstellen, von V.24 bis GbE. Die Anbindung an das Backbone-Netz erfolgt wahlweise über GbE oder STM-1/STM Zielsetzung Für die Firma KEYMILE AG gilt es, einen Vorschlag auszuarbeiten, wie Single Master I2C- Baumstrukturen mit verschiedenen Slave-Typen unter Embedded Linux beschrieben werden. Mit einem auf einer PowerPC Architektur basierten Prototypen wird die entwickelte Lösung demonstriert Seite 1 Christian Herzig

7 1.5 Vorgehensweise Nach Absprache mit dem Betreuer wird die Vorgehensweise selbst definiert und den Anforderungen angepasst. Einzig die Definition der Anforderungen an den im Rahmen der Diplomarbeit erstellten Prototypen, ist durch die Berner Fachhochschule vorgeschrieben Analyse der vxworks Lösung Die Anforderungen der Firma KEYMILE AG an das I2C-System in den Embedded Produkten sind mit einer Analyse der bestehenden vxworks Lösung erfasst Anforderungen an die Linux Lösung Die Resultate der Analyse dienen als Grundlage für das Aufstellen der Anforderungen an die KEYMILE Produkte. Aus diesen Anforderungen wird ein Subset gewählt, welches im Rahmen der Diplomarbeit anhand eines Prototypen umgesetzt werden soll. Der Anforderungskatalog für den Prototypen wurde am 25. Mai 2009 auf die Diplomplattform hochgeladen und durch den Experten freigegeben Vorschläge für die Implementierung Ein weiteres Dokument [3] zeigt die einzelnen Lösungsansätze auf. Die einzelnen Ansätze sind darin bewertet, die Vor- und Nachteile aufgeführt. Aus diesem Dokument resultiert derjenige Vorschlag, der für die Firma KEYMILE AG den grösstmöglichen Nutzen bringt Implementierung Die Implementierung erfolgt schrittweise. Das I2C-System des Linux Kernels wird in Betrieb genommen, indem für den Hardware Kontroller der korrespondierende Adapter-Treiber geladen wird. Ein EEPROM- und ein Temperatur-Sensor-Treiber werden geladen und beide Clients beim Adapter angemeldet. In einem weiteren Schritt werden die Patches für die Multiplexer Unterstützung, ein PCA954x Device-Treiber und das Multiplexer Herzstück, welches virtuelle I2C-Adapter beim Kernel anmeldet, auf den KEYMILE Linux Kernel portiert. Der Multiplexer Device-Treiber wird mit einem Attribut ergänzt. Die Funktionalität und die Praxistauglichkeit des Multiplexer- Herzstücks werden mit Open Source I2C-Tools geprüft. Ist das Instanzieren und Anbinden der Clients an die virtuellen Adapter geglückt, folgt die Implementation, welche das Laden und Registrieren der Device Treiber anhand der Datenbasis ermöglicht. Parallel zu den Implementierungen im Linux Kernel wird ein KEYMILE-API erstellt. Das API wird in Form einer KEYMILE Team-Komponente implementiert, welche einerseits ein API für den Zugriff auf die I2C-Komponenten, andererseits auch Testfunktionen und CUnit Testfälle umfasst. Dokumentiert ist diese Komponente mit Doxygen [7] Test Für die Team-Komponente sind CUnit Testfälle definiert und implementiert. Der Prototyp ist validiert. Die Test Resultate sind am Schluss dieses Berichts zusammengefasst Seite 2 Christian Herzig

8 2 Projektmanagement 2.1 Projektorganisation Die Diplomarbeit ist eine Einzelarbeit. 2.2 Zeitplanung/Projektphasen Die Arbeit ist zu Beginn in die folgenden Projektphasen mit jeweiliger Aufwandschätzung aufgeteilt worden: - Kickoff, Projektmanagement (7 %) - Analyse der Implementierung unter vxworks (10 %) - Erstellung der Anforderungen an Embedded Linux für KEYMILE AG (15 %) - Vorschläge der Implementierung für KEYMILE AG (25 %) - Erstellung der Anforderungen an den Master Thesis Prototypen (10 %) - Realisierung des Prototypen, Test und Dokumentation (30 %) - Präsentation (3 %) Ausführungen zur effektiv benötigten Zeit: Die proportionale Verteilung der Aufwände stimmt mit der schlussendlich benötigten Zeit überein. Der Gesamtaufwand der Arbeit von etwa 600 geleisteten Stunden wurde mit Faktor 1,5 unterschätzt. Aus der Sicht des Projektleiters musste zur Korrektur früh eine Entscheidung getroffen werden. Mögliche Korrekturmassnahmen waren, mehr Aufwand in die Diplomarbeit zu investieren oder die Anforderungen zu reduzieren. Die Entscheidung fiel zugunsten des Projekts und der Mehraufwand wurde während geplanter Ferienzeit geleistet. 2.3 Anforderungen Die Anforderungen an die I2C-Lösung unter Embedded Linux wurden mit den Anforderungen an den Prototypen zusammengelegt und in einem Dokument abgehandelt [zip]. 2.4 Statusberichte In Abständen von 10 bis 20 Arbeitstagen wurde dem Experten und dem Betreuer der Status der Diplomarbeit in schriftlicher Form mitgeteilt. Insgesamt sind neun Statusberichte verfasst worden [zip]. 2.5 Meetings Während der Diplomarbeit fanden insgesamt vier Meetings mit dem Experten statt. Zu Beginn der Arbeit erfolgte das Kickoff Meeting an der Software Schule, zum Schluss der Arbeit die Abnahme in der Firma KEYMILE AG. Zwischenzeitlich fanden zwei weitere Treffen an der Softwareschule statt, in denen hauptsächlich inhaltliche Aspekte der Dokumentation diskutiert wurden. Mit dem Betreuer waren wöchentlich Sitzungen eingeplant. Dabei wurden Vorgehensweise und weitere Schritte besprochen. 2.6 Reviews Sämtliche während dieser Arbeit entstandenen Dokumente wurden einem Review unterzogen Seite 3 Christian Herzig

9 3 Überblick der Software Dieser Diplombericht behandelt zwei unabhängige Software-Teile. Abbildung 1: Software Übersicht Der grün gekennzeichnete Kernel-Software-Teil wird in den Kapitel 4, 5 und 6 behandelt. Auf den Aufbau und die Funktionalität der LINUXI2C Komponente, in der Abbildung 1 gelb gekennzeichnet, wird detaillierter in Kapitel 7 eingegangen Seite 4 Christian Herzig

10 4 Das Linux I2C-Subsystem Die nachfolgenden Kapitel erklären, wie das I2C-Subsystem aufgebaut ist und erläutern weiterhin die Linux Terminologie. User Kernel client n 1 adapter n 1 1 driver 1 HW Abbildung 2: Zusammenhang der einzelnen I2C Teile Jeder physikalische I2C Slave Baustein wird durch ein struct client repräsentiert. Verschiedene Bausteine desselben Typs teilen sich einen Driver, repräsentiert durch das struct driver. Der Adapter sorgt für die Kommunikation zwischen Kernel und Hardware. 4.1 I2C-Adapter I2C-Adapter übernehmen die Master Funktion des I2C-Busses. Für die Prototyp Hardware wird ein MPC Adapter benötigt. Dieser Treiber wurde für die I2C-Kontroller von Freescale geschrieben. Der Name MPC ist historisch bedingt und steht für Motorola PowerPC. Die Motorola Halbleiter-Abteilung wurde im Jahr 2004 ausgegliedert, woraus die Firma Freescale Semiconductors entstand. Im Linux Kernel wird ein I2C-Adapter durch das struct i2c_adapter repräsentiert. class mpc_i2c «/sys/class/i2c_adapter» i2c_adapter device - *owner: struct module - id: int - class: int - *algo: struct i2c_algorithm - *algo_data: void - dev: struct device - nr: int - name: char[] - dev_released: struct completion mpc_i2c - *dev: struct device - interrupt: u32 - irq: int - adap: struct i2c_adapter Abbildung 3: struct mpc_i2c erbt von i2c_adapter Für die Registrierung des Adapters beim Kernel wird die i2c-core Funktion i2c_add_adapter()aufgerufen, welche das initialisierte struct i2c_adapter als Parameter übergibt. Der Adapter bezieht vom Kernel seine ID und registriert sich mit der Funktion i2c_register_adapter() beim Kernel Seite 5 Christian Herzig

11 4.2 I2C-Treiber Für jede Art von I2C-Slaves wird ein entsprechender Treiber geladen. I2C-Treiber übernehmen die Funktion der I2C-Slaves. Beim Hardware-Prototyp kommen LM75 (Temperatur Sensor), 24C08 (1KiB EEPROM) und PCA9547 (8-Kanal Multiplexer) zum Einsatz. Die korrespondierenden Treiber sind lm75 aus dem Linux Hardware Monitoring- Package, at24 für das EEPROM und der neu in der Arbeit hinzugefügte pca954x Multiplexer- Treiber. Das struct i2c_driver repräsentiert im Linux Kernel die I2C-Treiber. class Domain Model «/sys/bus/i2c/drivers» i2c_driv er - id: int - driver: struct device_driver - *id_table: struct i2c_device - clients: int + attach_adapter() + detach_adapter() + probe() + remove() + resume() + shutdown() Abbildung 4: struct i2c_driver Die i2c-core Funktion i2c_register_driver() registriert den Treiber beim Kernel. Der lm75 Treiber für den Temperatur Sensor ist zuständig für das Auslesen des Temperatur- Registers und dessen Darstellung im sysfs. Weiter ermöglicht der Treiber das Schreiben und Lesen des Hyst-Registers, welches die Schaltschwelle bei der Thermostatfunktion vorgibt. Der at24 EEPROM Treiber unterstützt eine Vielzahl von I2C EEPROMs diverser Grössen. Der Treiber repräsentiert im sysfs ein File mit der Grösse des Speicherinhaltes, auf welches lesend und schreibend zugegriffen werden kann. Der Multiplexer Treiber pca954x bewerkstelligt die Kanal-Schaltung. 4.3 I2C-Clients Für jeden physikalischen I2C-Slave Baustein existiert ein I2C-Client Objekt im Kernel. Die Bezeichnung Client bezieht sich hierbei auf die Beziehung zum Treiber. Jeder I2C-Client wird durch ein struct i2c_client repräsentiert. class Domain Model dev ice dev_archdata - *parent: struct device - *p: struct device_private - kobj: struct kobject - *init_name: const char - *type: struct device_type - sem: struct semaphore - *bus: struct bus_type - *driver: struct device_driver - *driver_data: void - *platform_data: void - power: struct dev_pm_info - archdata: struct dev_archdata «/sws/bus/i2c/devices/» i2c_client - flags: unsigned short - addr: unsigned short - name: char[] - *adapter: struct i2c_adapter - *driver: struct i2c_driver - dev: struct device - irq: int Abbildung 5: struct i2c_client erbt von device Die i2c-core Funktion i2c_attach_client() schliesst den Client beim Adapter an Seite 6 Christian Herzig

12 4.4 Übersicht Die I2C-Subsystem Übersicht aus dem Dokument der Implementierungsvorschläge [3] wurde um die in der vorliegenden Arbeit neu hinzugekommenen Komponenten ergänzt. Blau gekennzeichnet sind die Patches von Rodolfo Giometti [11]. Durch den Studenten modifizierte Teile des Kernels sind in oranger Farbe gehalten. User Kernel HW Abbildung 6: Aufbau des I2C-Subsystems mit den neuen Komponenten Neues und zugleich zentrales Element im I2C-Subsystem ist der I2C-Mux (i2c-mux.c). Dieser Teil ermöglicht es, I2C-Bussegmente als eigenständige I2C-Adapter abzubilden. Der Device-Treiber PCA954x übernimmt die Kontrolle der I2C-Multiplexer und I2C-Switches der PCA954x Produktefamilie der Firma Philips. Die Unterstützung der I2C-Multiplexer- Funktionalität lässt sich im Kernel konfigurieren. Der I2C-Teil des Open Firmware Treibers wird angepasst, um anhand der Datenbasis die Treiber zu laden. Eine Anleitung, wie die Kind-Knoten eines Multiplexers beschrieben werden, ist der Kernel Dokumentation hinzugefügt Seite 7 Christian Herzig

13 5 Analyse und Inbetriebnahme Eine erste Herausforderung bestand darin, bestehende Abläufe im Kernel zu analysieren. Hierauf basiert ein Ansatz zur Problemlösung. Soweit nicht anders spezifiziert, ist in diesem Dokument unter dem Begriff Kernel der KEYMILE Kernel, einem Stand der auf der Version basiert, zu verstehen. 5.1 Adapter und Clients registrieren Eines der Ziele [3] dieser Arbeit ist die Beschreibung der I2C-Hardware-Struktur im Flattened Device Tree [8]. Um die Mechanismen im Kernel zu erfassen, wird zunächst der zweite I2C- Kontroller des Entwicklungs-Zielsystems mit seinen Slaves, einem LM75 Temperatur Sensor und einem AT24 kompatiblen EEPROM, in Betrieb genommen. Obwohl die Kernel-Sourcen in der Programmiersprache C geschrieben sind, und es keine eigentlichen Klassen im Objekt orientierten Sinne gibt, verwendet der Autor zur Veranschaulichung von Abläufen Sequenzdiagramme. Die Abbildung 7 zeigt den typischen Ablauf beim Registrieren des I2C-Adapters und der I2C- Devices beim Kernel. Als Einstiegspunkt dient die fsl_i2c_probe() Funktion des MPC Adapter-Treibers. sd fsl_i2c_probe i2c_mpc DEVICE TREE of_i2c KERNEL i2c-core irq_of_parse_and_map(node) of_get_property(dfsrr) Das struct i2c_adapter wird anhand des Device Trees initialisiert i2c_add_adapter() of_register_i2c_devices() register_adapter() Dieser Vorgang wird gilt für jeden Kindknoten des Adapters durchgeführt of_get_property(reg) request_module() i2c_new_device() attach_client() Abbildung 7: Registrieren vom I2C-Adapter und dessen Clients Während des Ladevorgangs des I2C-Adapters werden die Properties vom Adapter-Knoten ausgelesen und den entsprechenden Feldern im neu instanzierten struct mpc_i2c zugewiesen Seite 8 Christian Herzig

14 class mpc_i2c «/sys/class/i2c_adapter» i2c_adapter device - *owner: struct module - id: int - class: int - *algo: struct i2c_algorithm - *algo_data: void - dev: struct device - nr: int - name: char[] - dev_released: struct completion mpc_i2c - *dev: struct device - interrupt: u32 - irq: int - adap: struct i2c_adapter Abbildung 8: Die mpc_i2c Struktur Der im mpc_i2c enthaltene i2c-adapter wird zum i2c-core addiert. Gelingt es dem i2c-core, den Adapter beim Kernel zu registrieren, wird für jeden Kind-Knoten im Device Tree der entsprechende I2C-Device-Treiber geladen und beim Kernel angemeldet. Mit dieser Erkenntnis ist es möglich, den zweiten I2C-Kontroller mit seinen direkten Slaves in Betrieb zu nehmen. Dafür müssen in der Kernel Configuration der MPC-Adapter Treiber, die Device-Treiber für den Temperatur Sensor LM75 und der Device-Treiber für die AT24 kompatiblen EEPROMs aktiviert werden. In den Kernel Sourcen [9] sind die DTS-Bindings für den LM75 und den AT24 zu finden. Mit diesen Bindings lassen sich die beiden I2C-Devices beschreiben und auf der Testhardware in Betrieb nehmen. 5.2 Virtuelle Adapter Unter vxworks [1] wird der I2C Multiplexer wie ein I2C-Slave angesehen und auch als solcher behandelt. Ein anderer Ansatz ist, den I2C-Multiplexer nicht als Client zu betrachten, sondern jeden Kanal des Multiplexers als eigenständigen virtuellen I2C-Adapter zu modellieren. Die Idee der virtuellen Adapter [3, Kapitel 7.2] ist nicht neu. Dieser Ansatz liess sich bei Recherchen im Internet bis ins Jahr 2003 zurückverfolgen [10] überarbeitete Kumar Gala die bewährte Lösung [19] und portierte diese auf den Kernel Im März 2009 hat sich Rodolfo Giometti diesem Projekt erneut angenommen und portierte die Patches auf den Kernel [11]. Das I2C-Subsystem ist relativ neu und wurde erst zu Zeiten des Kernels 2.0 dem offiziellen Kernel-Tree hinzugefügt. Einige Spezialitäten der Treiberstruktur hatten immer wieder grundlegende Änderungen an den Schnittstellen des I2C-Subsystems zur Folge. In den letzten Monaten wurde daran gearbeitet, das I2C-Subsystem bestehenden Linux-Konzepten anzupassen. Diese Verbesserungen liegen zurzeit als Patch-Serie vor und werden aller Wahrscheinlichkeit nach in die nächsten offiziellen Kernel einfliessen. Die aktuelle Kernel Version zum Zeitpunkt des Erstellens dieses Berichts ist die Version Profitieren von Open Source Gestützt auf die Tatsache, dass der Ansatz der virtuellen Adapter wiederholt aufgegriffen wurde, fiel die Entscheidung, die vorliegende Arbeit basierend auf den bestehenden Patches fortzuführen. Das Git-Repository von Giometti [11] wurde geklont, Patches daraus extrahiert und auf den KEYMILE-Kernel appliziert. Es folgte eine weitere Analyse des Codes Seite 9 Christian Herzig

15 Wie aus Abbildung 7 zu entnehmen ist, wird der Multiplexer PCA954x wie jeder andere I2C- Client instanziert und angebunden. Das folgende Sequenzdiagramm zeigt, was beim Laden des Multiplexer Device-Treibers geschieht. sd PCA954x probe pca954x probe i2c-mux i2c-core i2c_add_mux_adapter() new i2c_mux_priv() i2c_add_adapter() Sequenz für jeden Multiplexer Kanal i2c_register_adapter() Abbildung 9: Laden des Multiplexer-Treibers und Registrieren der virtuellen Adapter Für jeden Multiplexer-Kanal wird die Funktion i2c_add_mux_adapter() aufgerufen. In dieser Funktion wird ein neuer I2C-Adapter instanziert, beim i2c-core angemeldet und registriert. Mit den Kenntnissen über den Ablauf der Instanzierung der bereits integrierten Device- Treiber ist nun auch das Instanzieren und Anbinden des PCA954x an den ersten I2C Kontroller möglich. Nach der Behebung zweier Fehler lässt sich der PCA954x Client auf dem Testboard in Betrieb nehmen. Erwartungsgemäss wird jeder Kanal durch einen separaten I2C-Adapter abgebildet, was sich im sysfs überprüfen lässt. 5.4 Erweitern des PCA954x Treibers Um die Funktionalität, also die Schaltung des Multiplexers, zu prüfen, ist dem Treiber das channel Attribut hinzugefügt worden. Dadurch ist es neu möglich, direkt aus dem sysfs den aktiven Kanal auszulesen. Mit dem Einsatz von diversen I2C-Tools (siehe Kapitel 9) kann die Funktionalität und die Praxistauglichkeit dieser Patches verifiziert werden. 5.5 Anbinden von Clients an den Multiplexer In der Folge werden die Clients hinter dem Multiplexer in Betrieb genommen Statische Instanzierung Die Instanzierung der Clients erfolgt in einem ersten Schritt statisch. Für jedes I2C-Segment wird ein Array von i2c_board_info definiert und mit i2c_register_board_info() beim Kernel registriert Seite 10 Christian Herzig

16 5.5.2 Instanzierung anhand des Device Trees Das Anbinden von Clients an die virtuellen I2C-Adapter erfordert aufgrund der neuen virtuellen Adapter eine Modifikation des pca954x Treibers sowie die Implementation einer neuen Methode (Abbildung 10) im Open Firmware Teil von I2C. Für jeden Kind-Knoten wiederhole: lese Mux-Kanal aus dem Knoten ja richtiger Kanal? nein initialisiere Variabeln lese Knoten-Typ ja erfolgreich? nein lese Knoten-Adresse ja erfolgreich? nein behandle IRQ registriere device struct in archdata melde Modul an ja erfolgreich? instanziere I2C-Device entferne IRQ nein Abbildung 10: Diagramm der Funktion of_register_devices_behind_muxes() Das folgende Diagramm zeigt, wie Clients an einen virtuellen Adapter angeschlossen werden: sd pca954x probe pca954x device i2c-core of_i2c DEVICE TREE KERNEL dev_archdata_get_node() i2c_get_adapter() Sequenz für jeden Multiplexer Kanal of_register_i2c_devices_behind_muxes() of_get_property(reg) Sequenz für jeden Kind-Knoten of_register_i2c_device() request_module() i2c_new_device() Abbildung 11: Instanzieren und Anschliessen von Clients anhand des Device Trees Seite 11 Christian Herzig

17 6 Realisierung im Kernel Wie im Dokument Vorschläge für die Implementierung [3] beschrieben, wird die Schaltlogik für die Multiplexer im Linux-Kernel realisiert. Die Beschreibung der Hardware erfolgt im Flattened Device Tree [8]. 6.1 Repositoy Als Kernel Source Grundlagen dienen folgende Git Repositories: git://srv-esw-gitrepos/esw_gitrepos/linux-2.6-km.git git://git.enneenne.com/linux_i2c_mux Im Keymile Git Repository sind die Kernel Quellen für die ETER1 abgelegt. Das Git Repository von Rodolfo Giometti enthält den I2C-Multiplexer Support für Linux Kernel Patches von der Firma KEYMILE Als Basis für den Kernel des Produkts ETER1 wird der KEYMILE Git Tag KEYMILEv dev verwendet. Dieser Kernelstand muss um die Patches 0001 bis 0012 ergänzt werden, damit die Applikation funktioniert [zip]. Weil diese Patches für I2C irrelevant sind, wird an dieser Stelle nicht weiter darauf eingegangen. 6.3 Patches von Rodolfo Giometti Aus dem Git-Repository lassen sich Patches folgendermassen extrahieren: ~$ git format-patch s origin/head Die Patches von Giometti [11] erweitern den Kernel folgendermassen: Entfernt die driver_unregister() Funktion aus dem durch den core_lock Mutex geschützten Bereich [zip] Während der Registrierung der I2C-Adapter wird die Funktion i2c_scan_static_board_info() aufgerufen, welche bislang durch einen Mutex geschützt ist. Sobald Multiplexer kaskadiert werden, erfolgt der Aufruf dieser Funktion rekursiv, was der bisherig verwendete Mutex verhinderte. Der Patch ersetzt den Mutex durch ein rwsem-locking, welches gleichzeitigen Schreibzugriff verhindert, jedoch gleichzeitigen Lesezugriff erlaubt [zip] Das Deregistrieren von I2C-Adaptern kann durch alte Legacy-Treiber verhindert werden. Dieser Patch ignoriert, wenn ein Legacy-Treiber während des Deregistrierens noch aktiv sein sollte. Dieser Punkt tangiert die Arbeit MT nicht, da keine Legacy-Treiber zum Einsatz kommen [zip] Der globale core_lock Mutex wird durch einen eigenen Mutex für die Adapter Registrierung und Deregistrierung eingesetzt. Dies ermöglicht das rekursive Registrieren und Deregistrieren von realen und virtuellen I2C Adaptern [zip] Fügt die eigentliche Funktionalität hinzu. Der Patch ermöglicht dem i2c-core, die einzelnen I2C-Segmente als I2C-Adapter zu präsentieren. Der neue Code umfasst die Logik im i2c-mux.c File sowie die dazugehörigen einträge im Makefile sowie einem neuen Menüpunkt für die Kernel Konfiguration [zip] Der Device-Treiber für die PCA954x Produktefamilie. Dieser Treiber unterstützt sowohl I2C-Switches wie auch I2C-Multiplexer [zip] Ändert die Lizenz des Treibers von GPL nach GPL v2 [zip] Seite 12 Christian Herzig

18 6.4 Ausgangslage Die Arbeit von Giometti war Einstiegspunkt für das Weiterführen der Arbeit. Auf diesem Stand setzt die Arbeit des Studenten auf. Erst wurden zwei Fehler in Giomettis Code korrigiert: Die Arraydefinition für die verschiedenen PCA954x DeviceTypen wurde fehlerhaft initialisiert [zip] Beim laden des PCA954x Treibers gab es einen Absturz des Kernels, verursacht durch die Dereferenzierung eines NULL-Pointers. Der Patch prüft erst den Wert des Pointers [zip]. 6.5 Patches für die Diplomarbeit Patch 0022 Zur Überprüfung ob sich der Multiplexer wie erwartet verhält, wird dem Treiber ein channel Attribut hinzugefügt. Dadurch ist es möglich, aus dem sysfs direkt den aktiven Kanal auszulesen. Die Rechte auf das Attribut sind read only [zip] Patch 0023 Das Device Tree Source File wird mit den I2C-Knoten für die I2C-Adapter und Clients ergänzt. Der Patch ist Prototypen-Hardware spezifisch [zip] Patch 0024 Dieser Patch veranlasst den PCA954x Treiber, nach dem Laden des Treibers in dem Device Tree nach Kind-Knoten zu suchen und die darin spezifizierten Treiber zu laden [zip] Patch 0025 Der I2C spezifische Open Firmware Treiber wird um eine neue Funktion für die Behandlung der Multiplexer Kind-Knoten ergänzt. Im Header File wird diese deklariert. Die zweite neue Funktion wird eingeführt, um Code-Redundanz zu vermeiden [zip] Patch 0026 Dieser Patch liefert die Implementation der Deklaration von Patch Der I2C spezifische Open Firmware Treiber behandelt die Multiplexer Kind-Knoten. Die zweite Funktion dient der Verhinderung von Code-Redundanz [zip] Patch 0027 Neu werden vom Kernel diverse I2C Funktionalitäten verlangt. Zur bisherigen ETER1 Kernel- Konfiguration kommen der I2C Multiplexer Support hinzu, der Treiber für die AT24 Familie und der Treiber für den LM75 Sensor. Zusätzlich sind die I2C-Debug Features aktiviert [zip] Patch 0028 Dieser Patch fügt der Kernel Dokumentation eine Anleitung hinzu, wie der Multiplexer- Knoten und die Multiplexer Kind-Knoten im Flattened Device Tree beschrieben werden [zip] Seite 13 Christian Herzig

19 7 Komponente LINUXI2C 7.1 Kontext Software, welche klar definierte Schnittstellen aufweist, ein abgeschlossenes Problem behandelt und für eine Wiederverwendung in Betracht gezogen wird, wird in der Firma KEYMILE Komponente genannt. KEYMILE unterscheidet dabei zwei Arten: Plattform-Komponenten kommen in jedem Software Produkt zum Einsatz und bieten generische Dienste an. Produkt-Komponenten werden je nach Produkte Gruppe in ein Produkt integriert. Abbildung 12: Kontext der KEYMILE Software Produkte 7.2 Sinn und Zweck Es besteht die Anforderung, dass diverse Properties aus dem IVM-EEPROM direkt zugänglich sind. Da im Kernel für den EEPROM Access der generische Treiber at24 verwendet werden muss [3, Kapitel 6], ist es über das sysfs nicht direkt möglich, beispielsweise den Hardware-Key aus dem EEPROM abzufragen. Eine Anforderung sieht vor, direkten Zugriff auf IVM-EEPROM-Properties zu ermöglichen. Da der Kernel den generischen at24-treiber für das IVM verwendet, werden in einer Software-Komponente die Zugriffsmethoden in Form eines APIs bereit gestellt. 7.3 Repository Die Applikationssoftware wird mit Subversion verwaltet. Entwickelt wird auf dem Trunk, versioniert wird auf Tags. SVN Pfad der Komponente: trunk/users/nherzc/components/linuxi2c tags/users/nherzc/components/linuxi2c/x.yy.zz Eine ausführliche Dokumentation von Subversion ist in deutscher Sprache als Openbook verfügbar [12]. 7.4 Struktur der Komponente Die Abbildung 13 zeigt den Aufbau der erstellten Komponente. Jeder farbige Kasten repräsentiert eine eigene Klasse. Das API wird in der Service Klasse zur Verfügung gestellt Seite 14 Christian Herzig

20 Abbildung 13: Schichten der linuxi2c Komponente 7.5 Design Die Komponente umfasst mehr als nur ein API. Mittels Stimuli, einem Command Line Interface basierten Kommunikationskanal über das serielle Terminal oder Telnet, können einzelne Funktionen der Komponente ausgeführt werden. Die Abbildung 14 zeigt das Klassendiagramm der Stimuli Struktur. Alle Klassen erben von Stimuli_Commands. DumpIvmEeprom erbt von DumpEeprom, da das IVM-EEPROM ein spezialisiertes EEPROM ist. class Stimuli Stimuli_Command DumpEeprom ShowIv mhwkey ExportEeprom ShowBoardId EraseEeprom ListAllEeproms # printcontent() : void + doaction() : void + doaction() : void + doaction() : void + doaction() : void + doaction() : void + doaction() : void DumpIv meeprom GetTemp SetThreshold GetThreshold ListAllThresholds ListAllTemps - printtable() : void + doaction() : void + doaction() : void + doaction() : void + doaction() : void + doaction() : void + doaction() : void Abbildung 14: Klassendiagramm der Stimuli Struktur Seite 15 Christian Herzig

Connecting Android. Externe Hardware mit dem grünen Roboter verbinden. Alexander Dahmen Dominik Helleberg

Connecting Android. Externe Hardware mit dem grünen Roboter verbinden. Alexander Dahmen Dominik Helleberg Connecting Android Externe Hardware mit dem grünen Roboter verbinden Alexander Dahmen Dominik Helleberg Speaker Dominik Helleberg Mobile Development Android / Embedded Tools http://dominik-helleberg.de/+

Mehr

Dateisysteme mit Plugin-Funktion

Dateisysteme mit Plugin-Funktion Dateisysteme mit Plugin-Funktion Basierend auf Reiser 4 unter Linux http://llugb.amsee.de/logo.gif Ausgearbeitet und vorgetragen von Michael Berger 1/23 Agenda Die Idee Dateisysteme mit Plugin-Funktion

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

BNG Bootloader Documentation

BNG Bootloader Documentation BNG Bootloader Documentation Release 0.2 Elias Medawar, Yves Peissard, Simon Honegger, Jonathan Stoppani 20. 04. 2010 Inhaltsverzeichnis 1 Abstract 1 2 Architektur 3 2.1 Überblick.................................................

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

Alltagsnotizen eines Softwareentwicklers

Alltagsnotizen eines Softwareentwicklers Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,

Mehr

Build eines QNX-ifs-root-Images

Build eines QNX-ifs-root-Images h_da Embedded Technologies-Praktikum 6. Aufgabenblatt QNX Interrupts Prof. Wietzke Build eines QNX-ifs-root-Images Ziele Es soll ein QNX RTOS 6.4.1 Image für das Beagle-Board erstellt werden, auf dem mindestens

Mehr

Hardware Virtualisierungs Support für PikeOS

Hardware Virtualisierungs Support für PikeOS Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer

Mehr

Diplomarbeit: evidence goes Azure

Diplomarbeit: evidence goes Azure 0 Diplomarbeit: evidence goes Azure Pflichtenheft Projekt: Thema: Version: 1.1 evidence goes Azure evidence in der Cloud betreiben _MasterThesis.docx Abstract: Den.net basierenden Applikationsserver evidence

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

xcall Technische Dokumentation

xcall Technische Dokumentation xcall Technische Dokumentation zu Version 4.x Autor: Martin Roth Erstelldatum: 14.08.2008 Version: 1.4 Seite 2 / 7 Zweck...3 Schnittstellenarchitektur...3 Outbound-Schnittstellen...3 Outlook...3 TwixTel...3

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Workbooster File Exchanger Command Line Tool

Workbooster File Exchanger Command Line Tool Thema Technische Benutzerdokumentation - WBFileExchanger Workbooster File Exchanger Command Line Tool Letzte Anpassung 18. Januar 2014 Status / Version Finale Version - V 1.1 Summary Erstellung Diese technische

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Einbindung eines Buchungs- und Ticketingsystems in eine bestehende Anwendungslandschaft

Einbindung eines Buchungs- und Ticketingsystems in eine bestehende Anwendungslandschaft Einbindung eines Buchungs- und Ticketingsystems in eine bestehende Anwendungslandschaft Harald Lange sd&m Lübecker Str. 1 22087 Hamburg harald.lange@sdm.de Abstract: Mit der Einführung eines Buchungs-

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 Inhaltsverzeichnis Software ekey TOCAhome pc 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 3. MONTAGE, INSTALLATION UND ERSTINBETRIEBNAHME... 3 4. VERSION... 3 Version 1.5 5. BENUTZEROBERFLÄCHE...

Mehr

Migrationsanleitung von 2.0 auf 2.1

Migrationsanleitung von 2.0 auf 2.1 Die wichtigste Neuerung von 2.0 auf 2.1 aus Sicht der Anwendungs- Migration ist die Verwendung von Maven. Mit Maven holt sich die Anwendung alle notwendigen Bibliotheken in den jeweils angegebenen Versionen

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

C# - PROGRAMME MIT PLUGINS ERWEITERN C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt,

Mehr

Embedded-Linux-Seminare. Toolchains

Embedded-Linux-Seminare. Toolchains Embedded-Linux-Seminare Toolchains http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de Kopier-Rechte

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

Dazu stehen für alle gängigen Betriebssysteme die Command Line basierenden Tools snmpget, snmpset, snmptrap zur Verfügung.

Dazu stehen für alle gängigen Betriebssysteme die Command Line basierenden Tools snmpget, snmpset, snmptrap zur Verfügung. SNMP Einführung Command Line Tools Am Markt existieren jede Menge leistungsfähige, kommerzielle sowie open source Produkte, um Netzwerke und Serversysteme über das Simple Network Management Protokoll SNMP

Mehr

Linutronix - Wir verbinden Welten. Open Source Software in der Industrie. Firmenvorstellung

Linutronix - Wir verbinden Welten. Open Source Software in der Industrie. Firmenvorstellung Linutronix - Wir verbinden Welten Open Source Software in der Industrie Firmenvorstellung Firma Gegründet 1996 von Thomas Gleixner 2006 Umwandlung in GmbH Maintainer von: X86 Architektur RT-Preempt UIO

Mehr

Anleitung zur Administrieren von Mailinglisten. als Listen-Eigentümer. auf dem LISTSERVer (V.15.5)

Anleitung zur Administrieren von Mailinglisten. als Listen-Eigentümer. auf dem LISTSERVer (V.15.5) Anleitung zur Administrieren von Mailinglisten als Listen-Eigentümer auf dem LISTSERVer (V.15.5) Um auf die Web-Seite des Mailinglisten-Servers zu gelangen, bitte die URL http://listserv.uni-hannover.de

Mehr

Hello World from CORBA

Hello World from CORBA Hello World from CORBA ein erster Überblick Aufruf einer Objekt-Methode Client gettemperature() Thermometer Objekt- Implementation Thermometer th = new Thermometer(); double t = th.gettemperature(); th

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse 1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND

NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND init.at informationstechnologie GmbH - Tannhäuserplatz 2 - A-1150 Wien - www.init.at Dieses Dokument und alle Teile von ihm bilden ein geistiges Eigentum

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2

ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2 Produkt: Melde- und Bedientableau Typ: MT 701.2 Aktuelles Anwendungsprogramm Plug-In für ETS 2 MT_701_2_ETS2_SOW_xx_V1-12a_de_en.exe Plug-In für ETS 3 MT_701_2_ETS3_SOW_xx_V1-12a_de_en.exe EIBTAB: MT_701_2_EIBTAB_SOW_de_V2-08-00A_EibTab+Firmware.EXE

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty

1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty 1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty 2. Buildroot installieren Buildroot (www.buildroot.org)

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme Grundkurs C++ Buildsysteme Buildsysteme Beispielhaftes Übersetzungsszenario: Verzeichnis tutorial7/ main.cpp, lcdrange.cpp, lcdrange.h *.cpp Kompilieren *.o *.h Grundkurs C++ 2 Headerdateien //blackbox.h

Mehr

Dokumentation Windows 2000 Webserver 24.09.2004

Dokumentation Windows 2000 Webserver 24.09.2004 Inhaltsverzeichnis 1 Zum Dokument...2 2 Aufträge...3 2.1 Arbeitsauftrag 1...3 2.1.1 Aufgaben...3 2.2 Arbeitsauftrag 2...3 2.2.1 Aufgaben...3 3 Windows 2000 Server Installation:...4 3.1 Partitionierung:...4

Mehr

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

Versionsverwaltung mit CVS

Versionsverwaltung mit CVS Versionsverwaltung mit CVS Steffen Schäfer Michael Velten 27. Juni 2004 Reihe Berichte zur Softwaretechnik Herausgeber: Prof. Dr. Ulrich Eisenecker, Fachhochschule Kaiserslautern, Standort Zweibrücken,

Mehr

Linux System Management Spacewalk

Linux System Management Spacewalk Linux System Management Spacewalk Who? From? Jörg Steffens http://www.dass-it.de/ When? FrOSCon.de, 26.08.2012 Rev : 17236 ich Jörg Steffens Projekte seit 1995 Beschäftigung mit Linux seit 2000 Vollzeit

Mehr

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013 Software Komponenten FS13 Gruppe 03 Horw, 24.05.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Adresse Telefon

Mehr

embedded projects GmbH

embedded projects GmbH embedded projects GmbH e Quickstart GNUBLIN 32 MB (700641) Montage- und Aufbauanleitung Beispielanwendung (Rote LED auf dem Gnublin ) 1/12 Lieber Kunde, wir versuchen mit unseren Datenenblättern Ihnen

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5.

www.heimetli.ch Heimetli Software AG HSWModule ... Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. www.heimetli.ch. Heimetli Software AG HSWModule........ Senden und Empfangen von SMS-Meldungen mit einem GSM-Modul Version 1.01 5. August 2005 Inhaltsverzeichnis Was ist HSWModule?... 1 Installation...

Mehr

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05.

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05. IT Engineering Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014 Einleitung... worum es in diesem Vortrag geht Ziele Continuous

Mehr

Verteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Verteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln Verteilte Versionskontrolle mit GIT 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln 1 über mich 32 Jahre alt Softwareentwickler bei der Firma GreenPocket in Köln Java EE Entwickler und Rails

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung Einführung in AOP Informatikseminar Rico Schiekel - 012816 rschiekel@web.de Fachhochschule Ravensburg Weingarten Hochschule für Technik und Sozialwesen Einführung in AOP Agenda Kernproblem der Objekt Orientierung

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Virtualisierung mit Virtualbox

Virtualisierung mit Virtualbox Virtualisierung mit Virtualbox Dies ist kein Howto im herkömmlichen Sinne. Genaue Anleitungen für Virtualbox gibt es im Intenet genug. Zu empfehlen ist auch das jeweils aktuelle Handbuch von Virtualbox

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Schulungsunterlagen CoDeSys V3 OPC Server

Schulungsunterlagen CoDeSys V3 OPC Server Impressum Copyright epis Automation GmbH & Co. KG 2013. Alle Rechte, auch der Übersetzung vorbehalten. Das Kopieren oder Reproduzieren, ganz oder auch nur auszugsweise, in irgendeiner Form (Druck, Fotokopie,

Mehr

Einführung in die Programmierung mit Qt

Einführung in die Programmierung mit Qt Einführung in die Programmierung mit Qt Dr. Ralf Schüler 5.11.2009 Was ist Qt? sprich: [kju:t] Klassenbibliothek für C++ (ferner Java, Python u.a.) sehr umfangreich: GUI, Stringverarbeitung, reguläre Ausdrücke,

Mehr

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 E-Mail: sales@softvision.de Web: www.softvision.de Inhaltsverzeichnis

Mehr

Installation und Dokumentation. juris Autologon 3.1

Installation und Dokumentation. juris Autologon 3.1 Installation und Dokumentation juris Autologon 3.1 Inhaltsverzeichnis: 1. Allgemeines 3 2. Installation Einzelplatz 3 3. Installation Netzwerk 3 3.1 Konfiguration Netzwerk 3 3.1.1 Die Autologon.ini 3 3.1.2

Mehr

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps Projekt: Intern Softwareprojekt FH Furtwangen Status: Draft Ersteller: Kai Grabfelder Datum: 11.02.2007 Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps 1 Beschreibung... 2 Semesterprojekt...

Mehr

Anwendungshinweis. CAN Gateway-Modul 750-658. Verwendung der Bibliothek WagoLib_CAN_Gateway_02.lib. A500680 Deutsch Version 1.1.0

Anwendungshinweis. CAN Gateway-Modul 750-658. Verwendung der Bibliothek WagoLib_CAN_Gateway_02.lib. A500680 Deutsch Version 1.1.0 CAN Gateway-Modul 750-658 Verwendung der Bibliothek WagoLib_CAN_Gateway_02.lib Deutsch Version 1.1.0 Impressum Copyright 2013 by WAGO Kontakttechnik GmbH & Co. KG Alle Rechte vorbehalten. WAGO Kontakttechnik

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Wichtige Grundsätze für die Nutzung der E-Mail-Schnittstellen

Wichtige Grundsätze für die Nutzung der E-Mail-Schnittstellen Einleitung Diese Dokumentation soll Ihnen bei der Nutzung unseres Produktes zur Seite stehen. Leider können wir hiermit sicherlich nicht alle Fragen und Fallstricke aus der Welt schaffen, daher scheuen

Mehr

E-Mails in einem lokalen Netzwerk senden mit einem WAGO Controller 750-842 Anwendungshinweis

E-Mails in einem lokalen Netzwerk senden mit einem WAGO Controller 750-842 Anwendungshinweis E-Mails in einem lokalen Netzwerk senden mit einem WAGO Controller 750-842, Deutsch Version 1.0.2 ii Allgemeines Copyright 2002 by WAGO Kontakttechnik GmbH Alle Rechte vorbehalten. WAGO Kontakttechnik

Mehr

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de CVS-Einführung Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation und Anforderung Sobald ein Softwaresystem anwächst, ergeben sich Probleme im Umgang mit dem Quell Code. CVS (Concurrent

Mehr

:HE'DWHQEDQN$QELQGXQJ PLW-DYD6HUYOHWVEDVLHUHQG DXI$SDFKH-6HUY2UDFOHL

:HE'DWHQEDQN$QELQGXQJ PLW-DYD6HUYOHWVEDVLHUHQG DXI$SDFKH-6HUY2UDFOHL DNDGLD,QIRUPDWLRQ 7HFKQRORJ\ :HE'DWHQEDQN$QELQGXQJ PLW-DYD6HUYOHWVEDVLHUHQG DXI$SDFKH-6HUY2UDFOHL Authoren: Christoph Gächter / Martin Zahn Copyright 1999 Akadia AG All rights reserved $NDGLD$* Information

Mehr

AVR-Programmierung unter Mac OSX

AVR-Programmierung unter Mac OSX AVR-Programmierung unter Mac OSX im Studiengang BEL3 Lehrveranstaltung Embedded Systems Tutorial ausgeführt von: Jürgen Hausladen A-2460 Bruck/Leitha, Obere Neugasse 6 Wien 01.02.2011 Inhaltsverzeichnis

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

MVB3. Einrichten eines Servers für MVB3 ab Version 3.5. Admin-Dokumentation. Inhalt V3.05.001

MVB3. Einrichten eines Servers für MVB3 ab Version 3.5. Admin-Dokumentation. Inhalt V3.05.001 V3.05.001 MVB3 Admin-Dokumentation Einrichten eines Servers für MVB3 ab Version 3.5 Inhalt Organisatorische Voraussetzungen... 1 Technische Voraussetzungen... 1 Konfiguration des Servers... 1 1. Komponenten

Mehr

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 Virtuelle StruxureWare Data Center Expert-Appliance Der StruxureWare Data Center Expert-7.2-Server ist als virtuelle Appliance verfügbar, die auf

Mehr

GitLab als alternative Entwicklungsplattform zu Github.com

GitLab als alternative Entwicklungsplattform zu Github.com Entwicklungsplattform zu Github.com Chemnitzer Linux-Tage 2015 21. März 2015 Ralf Lang Linux Consultant/Developer lang@b1-systems.de - Linux/Open Source Consulting, Training, Support & Development GitLab

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/

Mehr

Acronis Universal Restore

Acronis Universal Restore Acronis Universal Restore BENUTZERANLEITUNG Inhaltsverzeichnis 1 Was ist Acronis Universal Restore?...3 2 Acronis Universal Restore installieren...3 3 Bootfähige Medien erstellen...3 4 Acronis Universal

Mehr

IBM SPSS Data Access Pack Installationsanweisung für Windows

IBM SPSS Data Access Pack Installationsanweisung für Windows IBM SPSS Data Access Pack Installationsanweisung für Windows Inhaltsverzeichnis Kapitel 1. Übersicht.......... 1 Einführung............... 1 Bereitstellen einer Datenzugriffstechnologie.... 1 ODBC-Datenquellen...........

Mehr

Use Cases REQEDIT CLIENT. Mai 2014. DER INNOVATIVE TOOLHERSTELLER www.reqteam.com

Use Cases REQEDIT CLIENT. Mai 2014. DER INNOVATIVE TOOLHERSTELLER www.reqteam.com Use Cases REQEDIT CLIENT Mai 2014 Übersicht 1. Einführung Anforderungsmanagement 2. Einführung Anforderungsmanagementtools und Austauschformate 3. Warum ReqEdit? 4. Use Cases - kleinere und mittlere Unternehmen

Mehr

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office 1. WINGAEB UND LINUX... 2 1.1. Systemvoraussetzungen... 2 1.2. Anmerkungen... 2 2. DIE INSTALLATION VON WINGAEB... 3 2.1.

Mehr

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

Mehr

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

Pervasive.SQL ODBC Treiber. ab ABACUS 2006.20er-Version Installationsanleitung

Pervasive.SQL ODBC Treiber. ab ABACUS 2006.20er-Version Installationsanleitung Inhaltsverzeichnis Pervasive.SQL ODBC Treiber ab ABACUS 2006.20er-Version Installationsanleitung Mai 2013 / CL 1 Serverinstallation... 1 2 Clientinstallation... 8 WICHTIG Alle untenstehenden Schritte müssen

Mehr

Programmierprojekt Aufgabe 1

Programmierprojekt Aufgabe 1 v01 10.05.2009 Die Formalitäten vorab (WICHTIG!!!): Technische Universität Darmstadt Fachbereich Informatik Prof. Dr. Johannes Fürnkranz Allgemeine Informatik 2 im SS 2009 Programmierprojekt Aufgabe 1

Mehr

Praktikum Ingenieurinformatik (PI)

Praktikum Ingenieurinformatik (PI) Praktikum Ingenieurinformatik (PI) Verteilte Versionskontrolle mit Git und Github Björn Meyer Fachgebiet Technische Informatik 1 Agenda Einleitung Motivation Versionskontrolle Ansätze Git Funktionen Arbeiten

Mehr

USB in Embedded Systemen. Referat von Peter Voser Embedded Development GmbH

USB in Embedded Systemen. Referat von Peter Voser Embedded Development GmbH USB in Embedded Systemen Referat von Peter Voser Embedded Development GmbH Embedded Development GmbH Engineering and Development System Engineering Hardware/Software Co-Design Embedded Software Entwicklung

Mehr