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

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

Erstellung von Bibliotheken in CoDeSys V3

Erstellung von Bibliotheken in CoDeSys V3 Dokument Version 2.0 3S - Smart Software Solutions GmbH Seite 1 von 10 INHALT 1 EINFÜHRUNG 3 2 BIBLIOTHEKSKONZEPT IM DETAIL 4 2.1 Kategorien von Bibliotheken 4 2.1.1 System 4 2.1.2 Internal 4 2.1.3 Application

Mehr

LavA OS: Ein Betriebssystem für konfigurierbare MPSoCs

LavA OS: Ein Betriebssystem für konfigurierbare MPSoCs LavA OS: Ein Betriebssystem für konfigurierbare MPSoCs Diplomarbeit Abschlussvortrag Stephan Vogt stephan.vogt@cs.uni-dortmund.de 1 Inhalt Einleitung Wiederverwendung von BS Arbeiten an CiAO Kommunikation

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

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

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

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

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

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

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

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. Version: 0.1 Autor: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln Version: 0.1 Autor: Anja Beuth Inhaltsverzeichnis 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

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

ishrt CommDTM Benutzerhandbuch UNIFIED FIELD COMMUNICATION

ishrt CommDTM Benutzerhandbuch UNIFIED FIELD COMMUNICATION Benutzerhandbuch UNIFIED FIELD COMMUNICATION Inhalt 1 Installation der Software...3 2 Kommunikations-DTM ishrt CommDTM...4 3 Konfiguration ishrt Comm DTM offline...5 3.1 Treiberkonfiguration...5 3.2 Kanalkonfiguration...6

Mehr

Projekt Weblog :: Integration

Projekt Weblog :: Integration Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,

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

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

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

Modbus-Master-Treiber

Modbus-Master-Treiber Modbus-Master-Treiber 1. Einleitung MODBUS ist ein offenes serielles Kommunikationsprotokoll, das auf einer Master/Slave Architektur basiert. Dabei greift der MODBUS-Master (Touch Panel PC) auf die fest

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

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

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

Benutzerdokumentation Hosted Backup Services Client

Benutzerdokumentation Hosted Backup Services Client Benutzerdokumentation Hosted Backup Services Client Geschäftshaus Pilatushof Grabenhofstrasse 4 6010 Kriens Version 1.1 28.04.2014 Inhaltsverzeichnis 1 Einleitung 4 2 Voraussetzungen 4 3 Installation 5

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

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

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

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

Geräte Treiber unter Unix/Linux

Geräte Treiber unter Unix/Linux Geräte Treiber unter Unix/Linux Martin Schäf 7. Oktober 2004 1 Einleitung Die Programmierung von Geräte Treibern unter Linux ist ein sehr populäres Thema, da für viele Geräte keine, oder nur sehr primitive

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

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

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

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

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

Tutorial. Bibliothek AutoGUITest V1.0. Windows-Benutzeroberflächen automatisiert testen. Ausgabe: 6.6.02. 06.06.02 / 13:51 Seite 1

Tutorial. Bibliothek AutoGUITest V1.0. Windows-Benutzeroberflächen automatisiert testen. Ausgabe: 6.6.02. 06.06.02 / 13:51 Seite 1 Bibliothek AutoGUITest V1.0 Windows-Benutzeroberflächen automatisiert testen Tutorial Ausgabe: 6.6.02 06.06.02 / 13:51 Seite 1 Inhalt 1 Übersicht...3 2 Funktionsweise...3 3 Funktionsumfang...3 4 Einsatz

Mehr

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum Betriebssysteme 1. Aufgabe (1) FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten

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

Es können nur Werte ausgelesen werden, Es kann -NICHT- geschaltet werden!!

Es können nur Werte ausgelesen werden, Es kann -NICHT- geschaltet werden!! Es können nur Werte ausgelesen werden, Es kann -NICHT- geschaltet werden Vorhanden auf Geräten der V3 Version ab Patch Level 1008 und V2 Versionen ab Patch Level 1001. Bei Geräte der V2 Versionen werden,

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

Bestandsabgleich mit einem Onlineshop einrichten

Bestandsabgleich mit einem Onlineshop einrichten Bestandsabgleich mit einem Onlineshop einrichten Mit unserem Tool rlonlineshopabgleich können die Warenbestände zwischen unserem Programm raum level und einem Onlineshop abgeglichen werden. Einleitend

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

PCFaceSwitch. Treiber und Steuerprogramm für eine Extender-Karte für den PCI-Express-Bus

PCFaceSwitch. Treiber und Steuerprogramm für eine Extender-Karte für den PCI-Express-Bus PCFaceSwitch Treiber und Steuerprogramm für eine Extender-Karte für den PCI-Express-Bus Version 1.7 Juni 2013 Hinweise zur Installation, Funktionsweise und Lizenzierung Für Ihre Fragen stehen wir gern

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Mod_com.lib. Inhalt. WAGO-I/O-PRO 32 Bibliothek

Mod_com.lib. Inhalt. WAGO-I/O-PRO 32 Bibliothek Anhang A Weitere Bibliotheken WAGO-I/O-PRO 32 Bibliothek Mod_com.lib Inhalt ADD_DESC (Datentyp)...2 ADD_PI_INFORMATION...4 CRC16...6 FBUS_ERROR_INFORMATION...7 GET_DIGITAL_INPUT_OFFSET...8 GET_DIGITAL_OUTPUT_OFFSET...10

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

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

Drei Jahre mit Polarion bei Fresenius Medical Care. Stuttgart, Oktober 2012

Drei Jahre mit Polarion bei Fresenius Medical Care. Stuttgart, Oktober 2012 Drei Jahre mit Polarion bei Fresenius Medical Care Stuttgart, Oktober 2012 Polarion Users Conference 2012, Drei Jahre mit Polarion bei Fresenius Medical Care, Jürgen Lehre (c) Copyright 31/08/2012 Fresenius

Mehr

Kurzanleitung zu XML2DB

Kurzanleitung zu XML2DB Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines

Mehr

TriNotar. Administrationshandbuch. Copyright Wolters Kluwer Deutschland GmbH Build 013.100.0028 vom 18.03.2013

TriNotar. Administrationshandbuch. Copyright Wolters Kluwer Deutschland GmbH Build 013.100.0028 vom 18.03.2013 Copyright Wolters Kluwer Deutschland GmbH Build 013.100.0028 vom 18.03.2013 TriNotar Administrationshandbuch (Version mit Schwerpunkt auf Neuerungen Build 013.100.0028) Wolters Kluwer Deutschland GmbH

Mehr

Handbuch: PlagScan PlugIn in Moodle 2.X und 3.X für den Administrator

Handbuch: PlagScan PlugIn in Moodle 2.X und 3.X für den Administrator Handbuch: PlagScan PlugIn in Moodle 2.X und 3.X für den Administrator Stand: November 2015 Inhaltsverzeichnis Phase 1: Registrierung Schritt 1 von 2: Nutzungsart Organisation wählen Schritt 2 von 2: Organisation

Mehr

USB232CONV Installation. Version 1.2.0 Copyright 2004 2005 IFTOOLS GbR www.iftools.com

USB232CONV Installation. Version 1.2.0 Copyright 2004 2005 IFTOOLS GbR www.iftools.com USB232CONV Installation Version 1.2.0 Copyright 2004 2005 IFTOOLS GbR www.iftools.com USB232CONV Treiber Installierung Inhalt 1 USB232CONV Einleitung...1 1.1 Hinweis für MSB A Benutzer...1 2 Virtueller

Mehr

Seminararbeit Embedded Systems - Discovery Mechanismus für sdds. Kevin Sapper

Seminararbeit Embedded Systems - Discovery Mechanismus für sdds. Kevin Sapper Seminararbeit Embedded Systems - Discovery Mechanismus für sdds Kevin Sapper Seminararbeit Embedded Systems - Discovery Mechanismus für sdds Kevin Sapper Table of Contents... v 1. Einführung... 1 2. Grundlagen...

Mehr

Druckanpassung von Mahnungen

Druckanpassung von Mahnungen Druckanpassung von Mahnungen Nur wenn Sie die faktura in der Einzelversion nutzen, steht Ihnen für die Druckanpassung der Mahnungen auch der Formularassistent zur Verfügung. Dort können Sie die gewünschten

Mehr

eclipse - EGit HowTo

eclipse - EGit HowTo eclipse - EGit HowTo An der HSR steht den Studierenden ein git Server für die Versionskontrolle zur Verfügung. Dieses HowTo fasst die notwendigen Informationen zur Verwendung dieses Dienstes in Verwendung

Mehr

CARM-Server. Users Guide. Version 4.65. APIS Informationstechnologien GmbH

CARM-Server. Users Guide. Version 4.65. APIS Informationstechnologien GmbH CARM-Server Version 4.65 Users Guide APIS Informationstechnologien GmbH Einleitung... 1 Zugriff mit APIS IQ-Software... 1 Zugang konfigurieren... 1 Das CARM-Server-Menü... 1 Administration... 1 Remote-Konfiguration...

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

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

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

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

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

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

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

CAS Embedded Linux und Android

CAS Embedded Linux und Android CAS Embedded Linux und Android Frühlingssemester 2015 Inhaltsverzeichnis 1 Abstract 3 2 Umfeld und Motivation 3 3 Zielgruppe 3 4 Ausbildungsziele 3 5 Voraussetzungen 3 6 Kursübersicht 4 7 Kompetenzprofil

Mehr

Reflection. Arthur Zaczek. Nov 2014

Reflection. Arthur Zaczek. Nov 2014 Arthur Zaczek Nov 2014 1 Einleitung 1.1 Definition Reflection ist das Auslesen von Metainformationen über Klassen, deren Methoden & Eigenschaften zur Laufzeit. 1.2 Anwendungsfälle Analyse von Programmen

Mehr

Weblog. Projektdokumentation. Java NDK 2004. Fallstudie. Identifikation: ID.10000001 Status: in Arbeit Version: 00.11

Weblog. Projektdokumentation. Java NDK 2004. Fallstudie. Identifikation: ID.10000001 Status: in Arbeit Version: 00.11 Projektdokumentation Java NDK 2004 Fallstudie Identifikation: ID.10000001 Version: 00.11 Auftraggeber: Studienleitung HSZ-T, Daniel Nydegger AuftragnehmerIn: Gruppe 3 Projektteam: Madeleine Wegmann erreichbar

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

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

Erstellen eines PlugIns

Erstellen eines PlugIns Erstellen eines PlugIns Mai 2013 Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Einleitung... 3 1.1 Ablauf... 3 1.2 Weitere Dokumentation... 3 1.3 Wichtige Hinweise... 3 2 Beschreibung...

Mehr

SimpleOOP Opensource OOP Plugin

SimpleOOP Opensource OOP Plugin SimpleOOP Opensource OOP Plugin Einführung SimpleOOP bringt PureBasic eine einfache OOP Unterstützung ohne komplizierten Syntax, mit besonderem Wert auf einen sauberen und simplen Code. SimpleOOP ist Opensource

Mehr

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln version: 0.1 Author: Anja Beuth Table of contents 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Zusammengesetzte Datentypen -- Arrays und Strukturen

Zusammengesetzte Datentypen -- Arrays und Strukturen Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

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

.DSLWHO+%HWULHEXQWHU,QWHUDFWLYH81,;

.DSLWHO+%HWULHEXQWHU,QWHUDFWLYH81,; .DSLWHO+ %HWULHEXQWHU,QWHUDFWLYH81,;.DSLWHO+%HWULHEXQWHU,QWHUDFWLYH81,; +%HWULHEXQWHU,QWHUDFWLYH81,; Nachdem in den Kapiteln B und C der Einbau des ICP Controllers bzw. das Einrichten von Host Drives erklärt

Mehr

Wie setzt Swisscom Solaris 11 ein

Wie setzt Swisscom Solaris 11 ein Wie setzt Swisscom Solaris 11 ein Fritz Wittwer Swisscom Enterprise Customers Bern / Schweiz Marcel Hofstetter St. Gallen / Schweiz Schlüsselworte Oracle Solaris 11, Virtualisierung, SPARC, T5, LDom, Solaris

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Embedded Hardware Getting Started

Embedded Hardware Getting Started Embedded Hardware Getting Started HW - Ressourcen 2 Arduino Installation-Guide 4 Arduino IDE/Download 4 Arduino Treiber Installation 5 Arduino DIE starten 7 Arduino IDE - Getting Started (Code-Basiert)

Mehr

PhPepperShop Pakettracking Modul

PhPepperShop Pakettracking Modul PhPepperShop Pakettracking Modul Datum: 28. Januar 2014 Version: 1.5 PhPepperShop Pakettracking Modul Anleitung Glarotech GmbH Inhaltsverzeichnis 1. Einleitung...3 2. Installation...3 2.1 Systemanforderungen...3

Mehr

Softwaretechnik (WS 11/12)

Softwaretechnik (WS 11/12) Universität Augsburg, LSt. Softwaretechnik, K. Stenzel, H. Seebach, G. Anders Softwaretechnik (WS 11/12) Lösungsvorschlag 5 Aufgabe 1 (System Behavior: System Sequence Diagrams) (10/5 Punkte) a) Was sind

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

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

Innovator 11 classix. Java Reverse Engineering. HowTo. Ralph Schönleber. www.mid.de

Innovator 11 classix. Java Reverse Engineering. HowTo. Ralph Schönleber. www.mid.de Innovator 11 classix Java Reverse Engineering Ralph Schönleber HowTo www.mid.de Mit Innovator Java Reverse Engineering durchführen Inhaltsverzeichnis Voraussetzungen... 2 Java Reverse Engineering... 2

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

Installationsanleitung für die netzbasierte Variante Bis Version 3.5. KnoWau, Allgemeine Bedienhinweise Seite 1

Installationsanleitung für die netzbasierte Variante Bis Version 3.5. KnoWau, Allgemeine Bedienhinweise Seite 1 1 Installationsanleitung für die netzbasierte Variante Bis Version 3.5 Copyright KnoWau Software 2013 KnoWau, Allgemeine Bedienhinweise Seite 1 2 Seite absichtlich leer KnoWau, Allgemeine Bedienhinweise

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. Einrichtung für Remotedesktopdienste (Windows Server 2012 R2)

Whitepaper. Produkt: combit Relationship Manager / address manager. Einrichtung für Remotedesktopdienste (Windows Server 2012 R2) combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Einrichtung für Remotedesktopdienste (Windows Server 2012 R2) Einrichtung für Remotedesktopdienste

Mehr

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...

Mehr

PADS 3.0 Viewer - Konfigurationen

PADS 3.0 Viewer - Konfigurationen PADS 3.0 Viewer - Konfigurationen Net Display Systems (Deutschland) GmbH - Am Neuenhof 4-40629 Düsseldorf Telefon: +49 211 9293915 - Telefax: +49 211 9293916 www.fids.de - email: info@fids.de Übersicht

Mehr

Block R (Rahmen): SE Aktivitäten 21.10.04 2. Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung

Block R (Rahmen): SE Aktivitäten 21.10.04 2. Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung Block R (Rahmen): SE Aktivitäten 21.10.04 1 Vorlesung Methoden des Software Engineering Block R Rahmen Aktivitäten der Software-Entwicklung Martin Wirsing Einheit R.2, 21.10.2004 Block R (Rahmen): SE Aktivitäten

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

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

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

A20_PCI. ARCNET Controller Karte für PCI Bus. Gerätebeschreibung. 2003 TK Systemtechnik GmbH Nr. TK-04-037-F-1.2

A20_PCI. ARCNET Controller Karte für PCI Bus. Gerätebeschreibung. 2003 TK Systemtechnik GmbH Nr. TK-04-037-F-1.2 A20_PCI ARCNET Controller Karte für PCI Bus Gerätebeschreibung 2003 TK Systemtechnik GmbH Nr. TK-04-037-F-1.2 Angaben zur Version Dokument-Nr. Beschreibung Datum TK-04-037-F-1.0 Ausgabe 1 17.04.2001 TK-04-037-F-1.1

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

System Monitoring mit strace. Systemcall tracing

System Monitoring mit strace. Systemcall tracing System Monitoring mit strace Systemcall tracing 1 Gliederung Einleitung: Was ist strace Grundlagen zu strace Kernel Kernelspace vs. Userspace Systemcalls ptrace Simple strace (Demo) strace die wichtigsten

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

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

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