Treiber PCI-Subsystem

Größe: px
Ab Seite anzeigen:

Download "Treiber PCI-Subsystem"

Transkript

1 Treiber PCI-Subsystem Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber PCI-Subsystem 1/

2 Übersicht Inhalt: Geräte(er)kennung, Initialisierung und Deinitialisierung, Ressourcen ermitteln und anfordern, Hardwarezugriff, Interrupts. Treiber PCI-Subsystem 2/

3 Geräte(er)kennung Typischer Ablauf 1 Modul-Initialisierung meldet den Treiber mit seiner Probeund Remove-Funktion beim PCI-Subsystem an, 2 PCI-Subsystem erkennt Hardware, findet über Herstellerund Gerätekennung zuständigen Treiber und ruft Probe-Funktion auf, 3 Probe-Funktion fordert Ressourcen an, initialisiert Hardware, 4 Treiber-Funktionen greifen auf Hardware zu, 5 Modul-Deinitialisierung meldet den Treiber beim PCI-Subsystem ab, 6 PCI-Subsystem ruft bei Entfernen des Geräts oder Treibers die Remove-Funktion auf, 7 Remove-Funktion gibt Ressourcen frei. Treiber PCI-Subsystem 3/

4 API: pci_register_driver pci_register_driver #i n c l u d e <l i n u x / p c i. h> i n t p c i _ r e g i s t e r _ d r i v e r ( s t r u c t p c i _ d r i v e r d r i v e r ) ; Registriert den durch die Struktur driver beschriebenen Treiber beim PCI-Subsystem, ist keine Hardware vorhanden und unterstützt der Kernel kein Hotplugging, wird der Treiber sofort wieder abgemeldet, wird typischerweise in der module_init-funktion aufgerufen, Rückgabewert: 0 bei Erfolg, negativer Fehlercode sonst (typischerweise -ENODEV). Treiber PCI-Subsystem 4/

5 API: pci_unregister_driver pci_unregister_driver #i n c l u d e <l i n u x / p c i. h> void p c i _ u n r e g i s t e r _ d r i v e r ( s t r u c t p c i _ d r i v e r d r i v e r ) ; Meldet den durch die Struktur driver beschriebenen Treiber beim PCI-Subsystem ab, wird typischerweise in der module_exit-funktion aufgerufen, das PCI-Subsystem ruft in der Folge die remove-funktion auf. Treiber PCI-Subsystem 5/

6 PCI-Treiberstruktur Aus <linux/pci.h>... s t r u c t p c i _ d r i v e r {... char name ; const s t r u c t p c i _ d e v i c e _ i d i d _ t a b l e ; i n t ( probe ) ( s t r u c t pci_dev dev, const s t r u c t p c i _ d e v i c e _ i d i d ) ; void ( remove ) ( s t r u c t pci_dev dev ) ;... } ; Treiber PCI-Subsystem 6/

7 PCI-ID-Struktur Aus <linux/mod_devicetable.h>... s t r u c t p c i _ d e v i c e _ i d { u32 vendor, d e v i c e ; u32 subvendor, s u b d e v i c e ; u32 c l a s s, class_mask ; k e r n e l _ u l o n g _ t d r i v e r _ d a t a ; } ; Treiber PCI-Subsystem 7/

8 PCI-ID-Struktur (2) MODULE_DEVICE_TABLE #i n c l u d e <l i n u x / module. h> MODULE_DEVICE_TABLE( subsystem, t a b e l l e ) ; Ergänzt die Meta-Information des erzeugten Moduls um Informationen, für welche Geräte der Treiber geeignet ist, subsystem bezeichnet das Subsystem, dem das Gerät angehört (pci, usb, isapnp,...), tabelle zeigt auf eine Subsystemspezifische Geräte-ID-Tabelle (bei PCI also eine vom Typ struct pci_device_id *). Treiber PCI-Subsystem 8/

9 PCI-Strukturen Beispiel s t a t i c const s t r u c t p c i _ d e v i c e _ i d d e v i n i t d a t a dhwk_pci_ids [ ] = { { 0 x10b5, / vendor / 0 x9056, / d e v i c e / PCI_ANY_ID, / subvendor / PCI_ANY_ID, / s u b d e v i c e / 0, 0, 0 }, { 0, } / Ende des A r r a y s / } ; s t a t i c s t r u c t p c i _ d r i v e r dhwk_driver = {. name = "dhwk",. i d _ t a b l e = dhwk_pci_ids,. probe = dhwk_probe,. remove = devexit_p ( dhwk_remove ), } ; Treiber PCI-Subsystem 9/

10 PCI-Strukturen (2) Beispiel (Fort.)... MODULE_DEVICE_TABLE( pci, dhwk_pci_ids ) ;... s t a t i c i n t i n i t dhwk_init ( void ) { i f ( r e g i s t e r _ c h r d e v (240, "DHWK",& f o p s ) == 0) { i f ( p c i _ r e g i s t e r _ d r i v e r (& dhwk_driver ) < 0) { u n r e g i s t e r _ c h r d e v (240, "DHWK" ) ; r e t u r n EIO ; } r e t u r n 0 ; } r e t u r n EIO ; }... m o d u l e _ i n i t ( dhwk_init ) ; Treiber PCI-Subsystem 10/

11 PCI-Funktionen probe probe i n t d r i v e r _ p r o b e ( s t r u c t pci_dev dev, const s t r u c t p c i _ d e v i c e _ i d i d ) ; Wird aufgerufen, wenn das PCI-Subsystem eine Hardware-Komponente vom registrierten Typ gefunden hat, sollte der Sektion devinit zugeordnet werden, die Implementation muss ggf. testen, welche Variante/Version der Hardware vorliegt, Ressourcen reservieren, treiber- und gerätespezifische Initialisierungen durchführen, sie braucht keinen Hardware-Probe im eigentlichen Sinne durchzuführen, Rückgabewert: 0 bei Erfolg, negativer Fehlercode sonst. Treiber PCI-Subsystem 11/

12 PCI-Gerätestruktur Aus <linux/pci.h>... s t r u c t pci_dev {... unsigned s h o r t vendor ; unsigned s h o r t d e v i c e ; s t r u c t d e v i c e dev ; i n t c f g _ s i z e ; unsigned i n t i r q ; s t r u c t r e s o u r c e r e s o u r c e [DEVICE_COUNT_RESOURCE ] ;... } ; Treiber PCI-Subsystem 12/

13 Device-Struktur driver_data void dev_get_drvdata ( s t r u c t d e v i c e dev ) ; void dev_set_drvdata ( s t r u c t d e v i c e dev, void data ) ; Dient zum Manipulieren treiberspezifischer Daten in der Device-Struktur (dev in struct pci_dev), der direkte Zugriff auf driver_data ist nicht mehr möglich. Treiber PCI-Subsystem 13/

14 PCI-Funktionen remove remove void d r i v e r _ r e m o v e ( s t r u c t pci_dev dev ) ; Gegenstück zu probe, die Implementation muss ggf. die Hardware deinitialisieren und alle reservierten Ressourcen freigeben, sollte der Sektion devexit zugeordnet werden. Treiber PCI-Subsystem 14/

15 Ressourcen anfordern PCI-Subsystem reserviert bereits für alle Geräte, die es findet, die in ihrem Config-Space angeforderten Speicher- und IO-Ressourcen. Aber... Bevor ein Treiber auf IO- oder Speicher-IO-Bereiche zugreifen darf, muss er sie beim betreffenden Subsystem anfordern. Treiber PCI-Subsystem 15/

16 Ressourcen anfordern pci_request_regions pci_request_regions #i n c l u d e <l i n u x / p c i. h> i n t p c i _ r e q u e s t _ r e g i o n s ( s t r u c t pci_dev pdev, const char res_name ) ; Reserviert alle IO- und Speicher-Ressourcen des Geräts pdev unter dem Namen res_name, nach erfolgreicher Registrierung erscheint ein entsprechender Eintrag in /proc/ioports und/oder /proc/iomem, Rückgabewert: 0 bei Erfolg, -EBUSY bei Fehler. Treiber PCI-Subsystem 16/

17 Ressourcen anfordern request_region request_region #i n c l u d e <l i n u x / i o p o r t. h> s t r u c t r e s o u r c e r e q u e s t _ r e g i o n ( unsigned long from, unsigned long l e n g t h, const char name ) ; Fordert den Bereich der Länge length ab der Adresse from im IO-Port-Bereich unter dem Namen name an, nach erfolgreicher Registrierung erscheint ein entsprechender Eintrag in /proc/ioports, Rückgabewert: Adresse der resource-struktur bei Erfolg, NULL bei Fehler. Treiber PCI-Subsystem 17/

18 Ressourcen anfordern request_mem_region request_mem_region #i n c l u d e <l i n u x / i o p o r t. h> s t r u c t r e s o u r c e request_mem_region ( unsigned long from, unsigned long l e n g t h, const char name ) ; Fordert den Bereich der Länge length ab der Adresse from im Speicher-IO-Bereich unter dem Namen name an, nach erfolgreicher Registrierung erscheint ein entsprechender Eintrag in /proc/iomem, Rückgabewert: Adresse der resource-struktur bei Erfolg, NULL bei Fehler. Treiber PCI-Subsystem 18/

19 Ressourcen ermitteln PCI-Ressourcen-Makros Zum bequemen Zugriff auf die IO-Ressourcen des PCI-Config- Space stehen eine Reihe von Makros zur Verfügung, deren wichtigste im Folgenden vorgestellt werden. pci_resource_flags #i n c l u d e <l i n u x / p c i. h> unsigned long p c i _ r e s o u r c e _ f l a g s ( s t r u c t pci_dev dev, i n t bar ) ; Gibt die Flags des durch bar bezeichneten Basis-Adress-Registers des PCI-Gerätes dev zurück, Rückgabewert: Disjunktion über Flags aus <linux/ioport.h>, u.a. IORESOURCE_IO IO-Adressbereich, IORESOURCE_MEM Speicheradressbereich. Treiber PCI-Subsystem 19/

20 Ressourcen ermitteln (2) pci_resource_start und _end #i n c l u d e <l i n u x / p c i. h> unsigned long p c i _ r e s o u r c e _ s t a r t ( s t r u c t pci_dev dev, i n t bar ) ; unsigned long p c i _ r e s o u r c e _ e n d ( s t r u c t pci_dev dev, i n t bar ) ; Gibt Anfang bzw. Ende des von Basis-Adress-Register bar bezeichneten Adressbereichs des Geräts dev zurück. pci_resource_len #i n c l u d e <l i n u x / p c i. h> unsigned long p c i _ r e s o u r c e _ l e n ( s t r u c t pci_dev dev, i n t bar ) ; Gibt die Länge des von Basis-Adress-Register bar bezeichneten Adressbereichs des Geräts dev zurück. Treiber PCI-Subsystem 20/

21 Ressourcen ermitteln (3) Direktzugriff #i n c l u d e <l i n u x / p c i. h> i n t p c i _ r e a d _ c o n f i g _ b y t e ( s t r u c t pci_dev dev, i n t where, u8 v a l ) ; i n t pci_read_config_word ( s t r u c t pci_dev dev, i n t where, u16 v a l ) ; i n t pci_read_config_dword ( s t r u c t pci_dev dev, i n t where, u32 v a l ) ; Liest ein Byte/Word/Dword aus dem Config-Space des Geräts dev bei Position where und schreibt es nach *val, Rückgabewert: Anzahl der gelesenen Bytes. Treiber PCI-Subsystem 21/

22 Ressourcen Beispiel Beispiel s t a t i c unsigned long i o p o r t =0, i o l e n =0;... / probe : / s t a t i c i n t d e v i n i t dhwk_probe ( s t r u c t pci_dev dev, const s t r u c t p c i _ d e v i c e _ i d i d ) { p c i _ e n a b l e _ d e v i c e ( dev ) ; i f ( p c i _ r e q u e s t _ r e g i o n s ( dev, "dhwk" ) ) { r e t u r n EIO ; } i o p o r t = p c i _ r e s o u r c e _ s t a r t ( dev, 0 ) ; i o l e n = p c i _ r e s o u r c e _ l e n ( dev, 0 ) ; r e t u r n 0 ; } Treiber PCI-Subsystem 22/

23 Ressourcen freigeben Bei seiner Deinitialisierung muss der Treiber angeforderte IO-Ressourcen wieder freigeben. pci_release_regions #i n c l u d e <l i n u x / p c i. h> void p c i _ r e l e a s e _ r e g i o n s ( s t r u c t pci_dev pdev ) ; Alle IO- und Speicher-Ressourcen des Geräts pdev werden freigegeben. Treiber PCI-Subsystem 23/

24 Ressourcen freigeben (2) release_region #i n c l u d e <l i n u x / i o p o r t. h> void r e l e a s e _ r e g i o n ( u n s g i n e d long from, u n s i g e n d long l e n g t h ) ; Der IO-Bereich der Länge length ab Adresse from wird freigegeben. release_mem_region #i n c l u d e <l i n u x / i o p o r t. h> void release_mem_region ( u n s g i n e d long from, u n s i g e n d long l e n g t h ) ; Der Speicher-IO-Bereich der Länge length ab Adresse from wird freigegeben. Treiber PCI-Subsystem 24/

25 Ressourcen freigeben Beispiel Beispiel / remove : / s t a t i c void devexit dhwk_remove ( s t r u c t pci_dev dev ) { p c i _ r e l e a s e _ r e g i o n s ( dev ) ; } Treiber PCI-Subsystem 25/

26 Hardwarezugriff Eigentlicher Datenaustausch mit der Hardware. Unterscheidung von zwei Arten: Port-IO Ein-/Ausgabe über Port-Adressen im gesonderten IO-Adressbereich, Memory-Mapped-IO Ein-/Ausgabe über in den Adressbereich des Arbeitsspeichers eingeblendete IO-Bereiche. Treiber PCI-Subsystem 26/

27 Hardwarezugriff Port-IO in #i n c l u d e <asm/ i o. h> u8 i n b ( i n t p o r t ) ; u16 inw ( i n t p o r t ) ; u32 i n l ( i n t p o r t ) ; Liest ein Byte/Word/Dword vom Port port ein und gibt es zurück. out #i n c l u d e <asm/ i o. h> void outb ( u8 v a l u e, i n t p o r t ) ; void outw ( u16 v a l u e, i n t p o r t ) ; void o u t l ( u32 v a l u e, i n t p o r t ) ; Schreibt das Byte/Word/Dword value auf den Port port. Treiber PCI-Subsystem 27/

28 Hardwarezugriff Port-IO (2) ins #i n c l u d e <asm/ i o. h> void i n s b ( i n t port, void addr, unsigned long count ) ; void insw ( i n t port, void addr, unsigned long count ) ; void i n s l ( i n t port, void addr, unsigned long count ) ; Liest vom Port port count Mal Bytes/Words/Dwords ein und schreibt sie ab Adresse addr in den Speicher. outs #i n c l u d e <asm/ i o. h> void outsb ( i n t port, void addr, unsigned long count ) ; void outsw ( i n t port, void addr, unsigned long count ) ; void o u t s l ( i n t port, void addr, unsigned long count ) ; Schreibt auf den Port port count Mal die ab Adresse addr stehenden Bytes/Words/Dwords. Treiber PCI-Subsystem 28/

29 Hardwarezugriff Port-IO (3) Verzögerte IO Die Makros inb_p, inw_p, inl_p, outb_p, outw_p, outl_p, machen dasselbe wie ihre Pendants ohne _p, allerdings mit einer kurzen Verzögerung nach der IO-Operation. Treiber PCI-Subsystem 29/

30 Hardwarezugriff Memory-Mapped-IO ioremap #i n c l u d e <asm/ i o. h> void ioremap ( r e s o u r c e _ s i z e _ t o f f s e t, unsigned long s i z e ) ; void ioremap_nocache ( r e s o u r c e _ s i z e _ t o f f s e t, unsigned long s i z e ) ; void ioremap_cache ( r e s o u r c e _ s i z e _ t o f f s e t, unsigned long s i z e ) ; Blendet den bei offset beginnenden IO-Speicher der Länge size ein, Speicherbereich wird als nicht-cachebar bzw. cachebar markiert, Rückgabewert: Startadresse des gemappten Speichers oder NULL bei Fehler. Treiber PCI-Subsystem 30/

31 Hardwarezugriff Memory-Mapped-IO (2) iounmap #i n c l u d e <asm/ i o. h> void iounmap ( void addr ) ; Blendet den bei addr gemappten Speicher wieder aus. Treiber PCI-Subsystem 31/

32 Hardwarezugriff Memory-Mapped-IO (3) read #i n c l u d e <asm/ i o. h> u8 readb ( void addr ) ; u16 readw ( void addr ) ; u32 r e a d l ( void addr ) ; Liest ein Byte/Word/Dword von Adresse addr ein und gibt es zurück. write #i n c l u d e <asm/ i o. h> void w r i t e b ( u8 v a l u e, void addr ) ; void writew ( u16 v a l u e, void addr ) ; void w r i t e l ( u32 v a l u e, void addr ) ; Schreibt das Byte/Word/Dword value nach Adresse addr. Treiber PCI-Subsystem 32/

33 Hardwarezugriff Memory-Mapped-IO (4) Kopieren von Blöcken #i n c l u d e <asm/ i o. h> void memset_io ( void d, i n t c, s i z e _ t n ) ; void memcpy_fromio ( void d, const void s, s i z e _ t n ) ; void memcpy_toio ( void d, const void s, s i z e _ t n ) ; memset_io initialisiert den bei d beginnenden IO-Bereich der Länge n mit dem Wert c, die beiden memcpy-varianten kopieren n Bytes von s nach d, wobei beim ersten die Quelle, bei zweiten das Ziel ein IO-Bereich ist, Rückgabewert: d. Treiber PCI-Subsystem 33/

34 Interrupts Mittels Interrupts signalisieren Hardware-Komponenten wichtige Ereignisse (z.b. Empfangspuffer voll ). Das Auftreten eines Interrupts führt i.d.r. dazu, dass der aktuelle Prozess unterbrochen, in den privilegierten Modus gewechselt und eine spezielle Behandlungsprozedur ausgeführt wird. Voraussetzungen Für die Interruptbehandlung muss: eine Interrupt-Handlerroutine implementiert werden, die Routine als Ressource beim IO-Subsystem für den richtigen Interrupt registriert werden. Treiber PCI-Subsystem 34/

35 Interrupts Interrupt-Service-Routine ISR i r q r e t u r n _ t d r i v e r _ i s r ( i n t i r q _ n r, void dev_id ) ; Muss vom Treiber implementiert werden, wird vom Kern aufgerufen, wenn der Interrupt irq_nr aufgetreten ist, dev_id ist die bei der Registrierung vergebene ID, Rückgabewert: IRQ_HANDLED, falls der Interrupt von der eigenen Hardware ausgelöst wurde, IRQ_NONE sonst. Treiber PCI-Subsystem 35/

36 API: request_irq request_irq #i n c l u d e <l i n u x / i n t e r r u p t. h> i n t r e q u e s t _ i r q ( unsigned i n t i r q, i r q r e t u r n _ t ( i s r ) ( i n t, void ), unsigned long f l a g s, const char devname, void dev_id ) ; Registriert den Interrupt-Handler isr unter dem Interrupt irq, devname bezeichnet den Namen des Geräts (erscheint bei Erfolg in /proc/interrupts), dev_id muss ein hinreichend eindeutiger Wert sein (z.b. ein Zeiger auf eine Verwaltungsstruktur des Treibers), flags: siehe nächste Folie, Rückgabewert: 0 bei Erfolg, negativer Fehlercode sonst. Treiber PCI-Subsystem 36/

37 API: request_irq (2) Flags Bezeichner IRQF_SHARED IRQF_DISABLED IRQF_SAMPLE_RANDOM Bedeutung IRQ darf von mehreren Treibern verwendet werden, (lokale) Interrupts sind während der Abarbeitung der ISR gesperrt, Interrupt darf als Entropiequelle genutzt werden. Treiber PCI-Subsystem 37/

38 API: free_irq free_irq #i n c l u d e <l i n u x / i n t e r r u p t. h> void f r e e _ i r q ( unsigned i n t i r q, void dev_id ) ; Gibt die unter dev_id registrierte, dem Interrupt irq zugeordnete Interrupt-Ressource frei. Treiber PCI-Subsystem 38/

39 Interrupts Beispiel Beispiel i r q r e t u r n _ t dhwk_isr ( i n t i r q, void dev_id ) { i f ( / u n s e r e hw war s / ) { / b e h a n d l e i r q und b e s e i t i g e i r q grund / r e t u r n IRQ_HANDLED ; } r e t u r n IRQ_NONE ; }... Treiber PCI-Subsystem 39/

40 Interrupts Beispiel (2) Beispiel (Forts.)... / probe : / s t a t i c i n t dhwk_probe ( s t r u c t pci_dev dev, const s t r u c t p c i _ d e v i c e _ i d i d ) { p c i _ e n a b l e _ d e v i c e ( dev ) ; i f ( r e q u e s t _ i r q ( dev >i r q, dhwk_isr, IRQF_DISABLED IRQF_SHARED, "dhwk", dev ) ) { r e t u r n EIO ; } r e t u r n 0 ; }... Treiber PCI-Subsystem 40/

41 Interrupts Beispiel (3) Beispiel (Forts.)... / remove : / s t a t i c void dhwk_remove ( s t r u c t pci_dev dev ) { f r e e _ i r q ( dev >i r q, dev ) ; } Treiber PCI-Subsystem 41/

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Hardware PCI-Bus Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 Hardware PCI-Bus 1/23 2008-08-06 Übersicht Inhalt:

Mehr

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Hardware PCI-Bus Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2007/2008 Hardware PCI-Bus 1/23 2007-10-26 Übersicht Inhalt:

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

BACHELORARBEIT. Herr Frederic Ringsleben. Untersuchung programmierbarer Logik zur Unterstützung von Userspace-Programmen

BACHELORARBEIT. Herr Frederic Ringsleben. Untersuchung programmierbarer Logik zur Unterstützung von Userspace-Programmen BACHELORARBEIT Herr Frederic Ringsleben Untersuchung programmierbarer Logik zur Unterstützung von Userspace-Programmen 2013 Fakultät Mathematik/Naturwissenschaften/Informatik BACHELORARBEIT Untersuchung

Mehr

U4-1 Aufgabe 3: einfache malloc-implementierung

U4-1 Aufgabe 3: einfache malloc-implementierung U4 3. Übung U4 3. Übung Besprechung der Aufgabe 2: wsort Aufgabe 3: malloc-implementierung Ziele der Aufgabe Zusammenhang zwischen "nacktem Speicher" und typisierten bereichen verstehen Funktion aus der

Mehr

Hardware Logik-Analysatoren

Hardware Logik-Analysatoren Hardware Logik-Analysatoren Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware Logik-Analysatoren 1/24 2010-10-12

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,

Mehr

Komponenten/Busse. Dr.-Ing. Volkmar Sieh. Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

Komponenten/Busse. Dr.-Ing. Volkmar Sieh. Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Komponenten/Busse Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Komponenten/Busse 1/34 2009-05-05 Übersicht 1 Praxis 2 Motivation

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden

Mehr

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10 Dominik Schoenwetter Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität

Mehr

E Mikrocontroller-Programmierung

E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E.1 Überblick Mikrocontroller-Umgebung Prozessor am Beispiel AVR-Mikrocontroller Speicher Peripherie Programmausführung Programm laden

Mehr

Zugriff auf die Modul-EEPROMs

Zugriff auf die Modul-EEPROMs MAX-P- und P-Bibliotheken EEPROM-Zugriff 1 Zugriff auf die Modul-EEPROMs Jedes X-Bus-Modul verfügt über ein EEPROM, in dem modulspezifische Daten gespeichert werden. Neben einigen Bereichen, die vom Betriebssystem

Mehr

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff

Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen

Mehr

x86 Open Source Virtualisierungstechniken Thomas Glanzmann <thomas@glanzmann.de>

x86 Open Source Virtualisierungstechniken Thomas Glanzmann <thomas@glanzmann.de> x86 Open Source Virtualisierungstechniken März 2006 Zu meiner Person Informatik Student an der Universität Erlangen im 9. Semester 4 jährige Mitarbeit an dem Projekt FAUmachine der

Mehr

Dynamischer Speicher

Dynamischer Speicher Dynamischer Speicher C-Kurs 2012, 3. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 13. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Referent Klaus Ruhwinkel Module, Built-In-Treiber, Treiber Ein Modul kann alles sein Ein Treiber hat I/O Aufgaben und unterscheidet

Mehr

11. Die PC-Schnittstelle

11. Die PC-Schnittstelle PC-Schnittstelle Funktion -1. Die PC-Schnittstelle.1. Funktion Die folgenden Angaben gelten ohne Einschränkung für den PC, PC-XT, PC-AT, AT-386, AT-486 und kompatible Rechner. Sie sind nur für jene interessant,

Mehr

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner Konzepte von Betriebssystemkomponenten Gerätetreiber Mario Körner 26.01.2004 Übersicht Einordnung in die Betriebssystemarchitektur Schnittstelle zur Hardware Schnittstelle zum Betriebssystem am Beispiel

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus 2. November 2012 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität

Mehr

Komponenten/Busse. Dr.-Ing. Volkmar Sieh. Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011

Komponenten/Busse. Dr.-Ing. Volkmar Sieh. Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Komponenten/Busse Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Komponenten/Busse 1/29 2010-09-28 Komponenten/Busse Praxis

Mehr

Grundlagen der Informatik 11. Zeiger

Grundlagen der Informatik 11. Zeiger 11. Zeiger Motivation Zeiger und Adressen Zeiger und Funktionen Zeiger und Arrays Dynamische Objekte Grundlagen der Informatik (Alex Rempel) 1 Motivation Dynamische Speicherverwaltung Oft müssen große

Mehr

Betriebssysteme 1. Thomas Kolarz. Folie 1

Betriebssysteme 1. Thomas Kolarz. Folie 1 Folie 1 Betriebssysteme I - Inhalt 0. Einführung, Geschichte und Überblick 1. Prozesse und Threads (die AbstrakFon der CPU) 2. Speicherverwaltung (die AbstrakFon des Arbeitsspeichers) 3. Dateisysteme (die

Mehr

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg VHDL Grundelemente Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010 VHDL Grundelemente 1/15 2009-07-31 Inhalt Folgende

Mehr

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1 Assignment #2 Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1 Organisatorisches:Termine Ab Montag Tutorien 10.12.-14.12. Designdiskussionen 18.12. Abgabe Designdokument 18.1. Abgabe Implementierung

Mehr

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Vorbesprechung U8 Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures Basistypen Alignment der Basistypen auf deren Grösse Grössen (abhängig

Mehr

Übung zu Betriebssystembau (Ü BS)

Übung zu Betriebssystembau (Ü BS) Übung zu Betriebssystembau (Ü BS) Interruptbehandlung in OOStuBS Wanja Hofer Lehrstuhl für Informatik IV WS 07/08 1 Agenda: IRQ-Behandlung in OOStuBS Interrupts und Traps beim x86 Die Interrupt-Deskriptor-Tabelle

Mehr

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund Betriebssystembau 3. Übung Michael Engel Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund michael.engel@tu-dortmund.de http://ess.cs.uni-dortmund.de/~me/ 1 Agenda: IRQ-Behandlung

Mehr

Hydroinformatik I: Referenzen und Zeiger

Hydroinformatik I: Referenzen und Zeiger Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 06. Januar

Mehr

Komponenten/Busse. Dr.-Ing. Volkmar Sieh

Komponenten/Busse. Dr.-Ing. Volkmar Sieh Komponenten/Busse Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 V. Sieh Komponenten/Busse (WS14/15)

Mehr

VHDL Simulation. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

VHDL Simulation. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 VHDL Simulation Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 VHDL Simulation 1/20 2011-05-18 Motivation Der Simulationsalgorithmus

Mehr

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 6 und Präsenzaufgaben Übung 7

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 6 und Präsenzaufgaben Übung 7 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 6 und Präsenzaufgaben Übung 7 Dominik Schoenwetter Erlangen, 16. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 Busse Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 Busse 1/40 2008-10-13 Übersicht 1 Einleitung 2 Bus-Konfiguration

Mehr

i386 Interrupt-Deskriptortabelle (IDT)

i386 Interrupt-Deskriptortabelle (IDT) Agenda: IRQ-Behandlung in OO-Stubs Interrupts und Traps bei x86 Die Interrupt-Deskriptor-Tabelle (IDT) Aufbau der IDT Traps und Hardware IRQs Der Programmierbare Interruptcontroller PIC 8295A Aufbau Verwendung

Mehr

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1 /home/esser/daten/dozent/hs-muenchen-2008/folien/bs-ss2008-esser-14.odp Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]:

Mehr

Low Cost PCI Digital-Scope

Low Cost PCI Digital-Scope Low Cost PCI Digital-Scope Linux Driver Projekt Hompage: Autoren: e-mail: Dozent: http://code.google.com/p/lcpd-scope/ T.Kurmann, R. Woodtli, S. Eichenberger kurmt1@bfh.ch, woodr1@bfh.ch, eichs2@bfh.ch

Mehr

Hydroinformatik I: Referenzen und Zeiger

Hydroinformatik I: Referenzen und Zeiger Hydroinformatik I: Referenzen und Zeiger Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 08. Januar

Mehr

Aufbau eines Kernelmoduls

Aufbau eines Kernelmoduls Kernel Module Kernelmodul = ladbare/entfernbare Objektdatei (Dateisystem, Gerätetreiber, Systemeingriffe) Vorteile: Ressourcenverbrauch abhängig vom aktuellen Anforderungen Erweiterung der Kernelfunktionalität

Mehr

Aufgabe 2 - Erweiterung um PIC und Interrupts

Aufgabe 2 - Erweiterung um PIC und Interrupts Aufgabe 2 - Erweiterung um PIC und Interrupts Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS2010/2011 Aufgabe 2 - Erweiterung um

Mehr

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Multiprozessoren Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Multiprozessoren 1/29 2011-06-16 Multiprozessoren Leistungsfähigkeit

Mehr

HARDWARE UND GERÄTETREIBER. Björn Döbel (TU Dresden)

HARDWARE UND GERÄTETREIBER. Björn Döbel (TU Dresden) HARDWARE UND GERÄTETREIBER Björn Döbel (TU Dresden) Dresden, 10.12.2013 Übersicht Kommunikation zwischen Hardware und CPU Interrupts I/O-Ports I/O-Speicher Busse Verwaltung von Geräten Dynamisches Hinzufügen/Entfernen

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

Systemnahe Programmierung in C/C++

Systemnahe Programmierung in C/C++ Systemnahe Programmierung in C/C++ Signalbehandlung & MMap Knut Stolze stolze@informatik.uni-jena.de Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik 2006 11 29

Mehr

U5-2 Register beim AVR-µC

U5-2 Register beim AVR-µC U5 4. Übungsaufgabe U5 4. Übungsaufgabe U5-2 Register beim AVR-µC U5-2 Register beim AVR-mC Grundlegendes zur Übung mit dem AVR-µC 1 Überblick Register Beim AVR µc sind die Register: I/O Ports Interrupts

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung

Mehr

Proseminar Konzepte von Betriebssystemkomponenten

Proseminar Konzepte von Betriebssystemkomponenten Proseminar Konzepte von Betriebssystemkomponenten Thema: Module von Michael Balda am 02.02.2004 1 Allgemeines zum Modulkonzept 1.1 Was sind Module? Wozu dient das Modulkonzept? Module sind Codeelemente,

Mehr

RAM. Konsistenzprobleme entstehen => CPU - durch Verzögerung in Warteschlange, Umfangreiche Pufferung in den PCI Brücken. lesen. EOP-Signal.

RAM. Konsistenzprobleme entstehen => CPU - durch Verzögerung in Warteschlange, Umfangreiche Pufferung in den PCI Brücken. lesen. EOP-Signal. 11. s 11.1 Pufferspeicher Lesepuffer um vorauszulesen: - erste Leseoperation hat lange Latenzzeit, - Folgedaten vorsorglich schon gelesen, - "prefetch buffer". Schreibpuffer um ein Blockieren des schreibenden

Mehr

2

2 TINF Interrupts EDT-Referat Jürgen Schwarzbauer 2ANB 1995/96 Inhalt : Was ist ein Interrupt? Zweck von Interrupts Maskierbare und nicht maskierbare Interrupts Aufruf eines Interrupts Anwendung von Interrupts

Mehr

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen

Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Kernel Programmierung unter Linux Teil II Programmierung von Kernelmodulen Referent Klaus Ruhwinkel Module, Built-In-Treiber, Treiber Ein Modul kann alles sein Ein Treiber hat I/O Aufgaben und unterscheidet

Mehr

Busse. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg

Busse. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg Einleitung Bus-Konfiguration Bus-Arbitrierung Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Einleitung Bus-Konfiguration Bus-Arbitrierung

Mehr

Installationsanleitung Linux ab Kernel 2.2.x. für die Add-on Karten: ETC-7320 ETC-7181

Installationsanleitung Linux ab Kernel 2.2.x. für die Add-on Karten: ETC-7320 ETC-7181 Installationsanleitung Linux ab Kernel 2.2.x für die Add-on Karten: ETC-7320 ETC-7181-1 - Inhaltsverzeichnis Kapitel 1 - Allgemeines 3 Kapitel 2 - Serielle Schnittstellen 4 2.1 Freie COM Schnittstellen

Mehr

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform. BS-V Betriebssysteme SS 2015 Dipl.-Math., Dipl.-Inform. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls v1.0, 2015/05/28 (klassische Dokumentation) Folie V-1 Übersicht: BS Praxis und BS Theorie

Mehr

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Aufgabe 1 Entwicklung einer Virtuellen Maschine Aufgabe 1 Entwicklung einer Virtuellen Maschine Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Entwicklung

Mehr

Aufgabe 2 - Erweiterung um PIC und Interrupts

Aufgabe 2 - Erweiterung um PIC und Interrupts Aufgabe 2 - Erweiterung um PIC und Interrupts Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Erweiterung

Mehr

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)

Mehr

Analyse des Userspace I/O Framework (UIO) für den Einsatz in Embedded Linux-Systemen

Analyse des Userspace I/O Framework (UIO) für den Einsatz in Embedded Linux-Systemen Forschungsbericht WS 2011/2012 Analyse des Userspace I/O Framework (UIO) für den Einsatz in Embedded Linux-Systemen Prof. Dr.-Ing. Rainer Bermbach Einleitung Betriebssysteme wie Linux benötigen sogenannte

Mehr

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.

Mehr

Programmieren in Java

Programmieren in Java Ein Projekt 2 Wiederholung: new-operator Werte nicht-primitiver Datentypen müssen mit new erzeugt werden Es gibt keine Möglichkeit primitive Daten mit new zu erzeugen Beispiele int[] myarray = new int[]

Mehr

Embedded Linux auf FPGA-basierten Systemen mit freien Prozessor-IPs (3. Teil)

Embedded Linux auf FPGA-basierten Systemen mit freien Prozessor-IPs (3. Teil) Forschungsbericht WS 2010/2011 Embedded Linux auf FPGA-basierten Systemen mit freien Prozessor-IPs (3. Teil) Unterthema: Entwicklung und Einbindung von Spezialhardware in Embedded Linux Prof. Dr.-Ing.

Mehr

Rechnerorganisation. Überblick über den Teil 13

Rechnerorganisation. Überblick über den Teil 13 Rechnerorganisation Teil 3 9. Juni 2 KC Posch Überblick über den Teil 3 Arbiter: Wie können sich 2 aktive Partner vertragen? Direkter Speicherzugriff: Ein Ko Prozessor zum Daten Schaufeln Die Verbesserung

Mehr

E. Fehlermeldungen von PC-Bibliotheken

E. Fehlermeldungen von PC-Bibliotheken Anhang Fehlermeldungen von PC-Bibliotheken -1. Fehlermeldungen von PC-Bibliotheken Beim insatz von MODULAR-4/486 und Multi-LAB/2 Karten und den dazugehörigen Bibliotheken können die folgenden Fehlermeldungen

Mehr

7. Organisation von Informationen

7. Organisation von Informationen Computeranwendung in der Chemie Informatik für Chemiker(innen) 7. Organisation von Informationen Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL7 Folie 1 Grundlagen Programme

Mehr

Speicherverwaltung in Minix

Speicherverwaltung in Minix Speicherverwaltung in Minix Speicher-Layout ausführbare Datei wird in Speicher geladen a.out-header bestimmt Gesamt-Speicherplatz Resultat: Gap zwischen Stack- und Daten-Segmenten Segment-Liste (kombinierte

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern

Mehr

Speicherverwaltung in C

Speicherverwaltung in C Speicherverwaltung in C Tobias Gutzmann, Le Xuan Khanh, Robert Hartmann 19.04.2005 Typeset by FoilTEX Inhalt Übersicht der wichtigsten Befehle malloc, free, realloc alloca, obstack, brk Speicherverwaltung

Mehr

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18 C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen

Mehr

Übungen zu Systemprogrammierung 1 (SP1)

Übungen zu Systemprogrammierung 1 (SP1) Übungen zu Systemprogrammierung 1 (SP1) B1 Debugging Jens Schedel, Christoph Erhardt, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme 03-B1_handout Friedrich-Alexander-Universität

Mehr

Tafelübung zu BS 4. Speicherverwaltung

Tafelübung zu BS 4. Speicherverwaltung Tafelübung zu BS 4. Speicherverwaltung Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/

Mehr

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes

Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern

Mehr

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung Sommersemester 2005 Uni Erlangen Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebsysteme Tarek Gasmi Tarek.Gasmi@informatik.stud.uni-erlangen.de

Mehr

HARDWARE UND GERÄTETREIBER. Björn Döbel (TU Dresden)

HARDWARE UND GERÄTETREIBER. Björn Döbel (TU Dresden) HARDWARE UND GERÄTETREIBER Björn Döbel (TU Dresden) Dresden, 06.01.2015 Übersicht Kommunikation zwischen Hardware und CPU Interrupts I/O-Ports I/O-Speicher Busse Verwaltung von Geräten Dynamisches Hinzufügen/Entfernen

Mehr

Kapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik

Kapitel 4: Zeiger. Inhalt. Zeiger Zeigerarithmetik Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Funktionen Leibniz Universität IT Services Anja Aue Subroutine (Unterprogramm) Lösung von Teilen einer Gesamtaufgabe. Kapselung von Anweisungen, die zu einer

Mehr

Treiber Kernel und Module bauen

Treiber Kernel und Module bauen Treiber Kernel und Module bauen Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber Kernel und Module bauen 1/17

Mehr

Installation der Software (Version 1.23) unter Windows NT4.0

Installation der Software (Version 1.23) unter Windows NT4.0 TT-DVB : Installation der Software (Version 1.23) unter Windows NT4.0 0. Systemvoraussetzungen: Windows NT 4.0 Service Pack 5 oder höher Internet Explorer Version 4.01 oder höher Ausserdem muss der RAS

Mehr

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien Informatik I SS 2003 Dateioperationen 1 Textdateien, Öffnen Abspeichern und Einlesen von Texten (Strings) in Dateien 1. Das Öffnen einer Datei a) Deklaration eines Zeigers auf eine Datei FILE *pfile; b)

Mehr

Rechnerorganisation. 1. Juni 201 KC Posch

Rechnerorganisation. 1. Juni 201 KC Posch .6.2 Rechnerorganisation. Juni 2 KC Posch .6.2 2 .6.2 Front Side Bus Accelerated Graphics Port 28 MHz Front Side Bus North Bridge RAM idge South Bri IDE USB PCI Bus 3 .6.2 Front Side Bus Front Side Bus

Mehr

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208.  ZHAW, M. Thaler, K. Rege, G. Pointer und Arrays INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Variable Speicherplatz Datenwert über Name ansprechbar hat Typ hat Adresse (Speicheradresse)

Mehr

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren

Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit

Mehr

Treiber Fortgeschrittene Konzepte

Treiber Fortgeschrittene Konzepte Treiber Fortgeschrittene Konzepte Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Treiber Fortgeschrittene Konzepte

Mehr

Virtueller Speicher und Memory Management

Virtueller Speicher und Memory Management Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write

Mehr

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm U4 4. Übungsaufgabe U4 4. Übungsaufgabe Grundlegendes zur Übung mit dem AVR-µC Register I/O Ports Interrupts AVR-Umgebung U4.1 U4-1 Grundlegendes zur Übung mit dem AVR-mC U4-1 Grundlegendes zur Übung mit

Mehr

Visuelle Kryptographie. Anwendung von Zufallszahlen

Visuelle Kryptographie. Anwendung von Zufallszahlen Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System

Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System Florian Lukas Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich Alexander Universität Erlangen

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts

Mehr

Lehrveranstaltung Speichersysteme Sommersemester 2009

Lehrveranstaltung Speichersysteme Sommersemester 2009 Lehrveranstaltung Speichersysteme Sommersemester 2009 Kapitel 9: Verbindungstechnologien I André Brinkmann Gliederung Anbindung von I/O an Prozessoren Memory mapped I/O vs. Ported IO Programmed I/O vs.

Mehr

HARDWARE UND GERÄTETREIBER. Marcus Hähnel Björn Döbel Michael Raitza

HARDWARE UND GERÄTETREIBER. Marcus Hähnel Björn Döbel Michael Raitza HARDWARE UND GERÄTETREIBER Marcus Hähnel Björn Döbel Michael Raitza Dresden, 30.01.2018 Übersicht Kommunikation zwischen Hardware und CPU Interrupts I/O-Ports I/O-Speicher Busse Verwaltung von Geräten

Mehr

HARDWARE UND GERÄTETREIBER. Marcus Hähnel Björn Döbel Michael Raitza

HARDWARE UND GERÄTETREIBER. Marcus Hähnel Björn Döbel Michael Raitza HARDWARE UND GERÄTETREIBER Marcus Hähnel Björn Döbel Michael Raitza Dresden, 31.01.2017 Übersicht Kommunikation zwischen Hardware und CPU Interrupts I/O-Ports I/O-Speicher Busse Verwaltung von Geräten

Mehr

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Grundlagen der Rechnerarchitektur. Ein und Ausgabe Grundlagen der Rechnerarchitektur Ein und Ausgabe Übersicht Grundbegriffe Hard Disks und Flash RAM Zugriff auf IO Geräte RAID Systeme SS 2012 Grundlagen der Rechnerarchitektur Ein und Ausgabe 2 Grundbegriffe

Mehr

Hardware Programmierbare Logik

Hardware Programmierbare Logik Hardware Programmierbare Logik Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware Programmierbare Logik 1/23

Mehr

INE1 Bit-Operationen. Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap

INE1 Bit-Operationen. Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap INE1 Bit-Operationen Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap 1 Displays and I/O Binary Display & Input Output 2 von 39 Operationen für Bitmanipulation Bit - Operatoren Die

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit

Mehr

Hardware PCI, PCIe und Bus-Bridges

Hardware PCI, PCIe und Bus-Bridges Hardware PCI, PCIe und Bus-Bridges Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2010/2011 Hardware PCI, PCIe und Bus-Bridges

Mehr