School of Engineering ESI Lektion 7-8. School of Engineering ESI – Lektion 7-8 ARM Stacks Cortex Interrupt System Systemperipherie eines ARM basierenden.

Slides:



Advertisements
Ähnliche Präsentationen
Digital Output Board and Motherboard
Advertisements

Vom HW-Automaten zum Prozessor
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Kapitel 5 5 Rechnerorganisation
4. Attiny-Veranstaltung
PPTmaster_BRC_ pot Rexroth Inline compact I/O technology in your control cabinet SERCOS III Components Abteilung; Vor- und Nachname.
IndraMotion MLC RoCo Electric Drives and Controls
Claas J. Cornelius - Ogg-on-a-chip - MDCT MDCT Funktionsweise und Limitierende Faktoren.
Fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/17 Graphics:
3 Prozessverwaltung  sieht einen Prozess als Objekt der Verwaltung,
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Moore E A Zustands- speicher (ZS) Übergangs- logik (ÜL) Folgezustand
Teil 5: Embedded Systems
Technische Informatik I (SS 2006) Teil 1: Logik 1b: Schaltnetze.
W. Oberschelp G. Vossen Kapitel 7.
Hier wird Wissen Wirklichkeit Computer Architecture – Part 7 – page 1 of 56 – Prof. Dr. Uwe Brinkschulte, Prof. Dr. Klaus Waldschmidt Part 7 Instruction.
ilmenau.de Exploiting Pocket PC. ilmenau.de Exploiting Pocket PC PocketPC existiert seit über 5 Jahren (Windows CE seit ca. 10)
Zyklus Nr 0 Instruction Queue Instruction tag Instruction Register IF Stage CDB nameb ADD1 ADD2 ADD3 MUL1 MUL2 DIV INT MU1 MU2 MU3 Reservations OPV1Q1V2Q2.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Von: Antoni Gazali Clarkson Laryea
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
RS232 Register und ihre Bits
Zwischenpräsentation
Unterprogramme An mehreren Stellen im Programm stehen gleiche Codeabschnitte!! 0000h 0200h Programmspeicher Problem Langes Programm Programm unübersichtlich.
ARM7 Exception Vectors Exception Mode Address Reset Supervisor
Ein kommando unter Windows 7
Institut AIFB, Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Towards Automatic Composition of Processes based on Semantic.
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Lehrstuhl Technische Informatik - Computer Engineering Brandenburgische Technische Universität Cottbus 1 Hierarchical Test Technology for Systems on a.
VHDL-Synthese für Fortgeschrittene
Schutzvermerk nach DIN 34 beachten Profibus DP: Diagnose.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter Indirekte Adressierung- Quickie Beschreibung.
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter Speicher-Quickie Beschreibung.
3.3 Speicher Latches SR-Latch 1-bit Speicher S Q Q R Q Q
1 SR-Latch 3.3 Speicher Latches © Béat Hirsbrunner, University of Fribourg, Switzerland, 31. Oktober 2007 S Q Q R Q Q 1-bit Speicher.
3.4 CPU-Chips und Busse CPU-Chips
School of Engineering ESI-Lektion School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.
Architekturen der ARM Prozessoren
School of Engineering DT2 Projekt-3: Baud Rate Generator & GPS Decoder.
School of Engineering DT2 Projekt-2: Baud Rate Generator & GPS Decoder.
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Embedded Systems Prof. Dr. H. Kristl
Real Time Operating System
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Computerorientierte Physik VORLESUNG Zeit: jeweils Mo Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz 5, A-8010.
Computerorientierte Physik VORLESUNG
Computerorientierte Physik VORLESUNG
OPENTOUCH™ SUITE FOR MLE
Travelling Salesman Problem (TSP)
Fakultät für informatik informatik 12 technische universität dortmund Memory-architecture aware compilation - Sessions Peter Marwedel TU Dortmund.
Advanced Digital Design Übung 3. Aufgabe 1: Algorithmus für Phasen Inverter Plazierung Systematic approach: 1. Identify combinational logic and registers/memories.
Programmieren in Assembler
1 Intern | ST-IN/PRM-EU | | © Robert Bosch GmbH Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung,
Datenverarbeitung im PC
Fakultät für informatik informatik 12 technische universität dortmund Memory architecture description languages - Session 20 - Peter Marwedel TU Dortmund.
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
EN/FAD Ericsson GmbH EDD/ Information im 21. Jahrundert muss Erwünscht Relevant Erreichbar Schnell Kostenlos!?
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Kollektive Operationen Oswald Haan
6. Übung Informatik 1 Inhalte: Der DLX-Prozessor
Mikrocomputertechnik Jürgen Walter
Mikrocomputertechnik BLIN_INT-P-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „BLIN_INT-P-Quickie“
Vorgestern, gestern und heute
Vom Prozessor zum System
Speicher
Vom HW-Automaten zum Prozessor
Aufbau und Anwendungen von Mikrokontrollern
CSL211 Computer Architecture
 Präsentation transkript:

School of Engineering ESI Lektion 7-8

School of Engineering ESI – Lektion 7-8 ARM Stacks Cortex Interrupt System Systemperipherie eines ARM basierenden Microcontrollers ARM Busse Externe Speicherschnittstelle

School of Engineering ARM Stacks

School of Engineering AHB Peripherals VPB Peripherals Reserved for External Memory Boot Block Reserved for On-Chip Memory On-Chip Static RAM Reserved for Special Registers Reserved for On-Chip Memory On-Chip Non-Volatile Memory 4.0 GB 3.75 GB 3.5 GB 3.0 GB 2.0 GB 1.0 GB 0.0 GB 0xFFFF FFFF 0xF xE xC x x x3FFF x Stack Pointer Exception Vectors Main Code Memory Map des NXP LPC2138

School of Engineering ARM7 Stack Pointer Register Stack- Pointer

School of Engineering ARM7 Stackpointer im RAM

School of Engineering Cortex-M3 Stackpointer im RAM MSP PSP RAM

School of Engineering Betriebszustand: FIQ IRQ Supervisor User Undefined F = 1 FIQ disable I = 1 IRQ disable T = 1 Thumb mode Condition Code Flags: N = Negative Z = Zero C = Carry Over V = Overflow (Ergebnis grösser als Platz im Register) ARM7 Current Processor Status Register (CPSR)

School of Engineering // Setup Stack for each mode LDR R0, =Top_Stack // Enter Undefined Instruction Mode and set its Stack Pointer MSR CPSR_c, #Mode_UND|I_Bit|F_Bit //Switch to Undefined, disable Interrupt MOV SP, R0 SUB R0, R0, #UND_Stack_Size // Enter Abort Mode and set its Stack Pointer MSR CPSR_c, #Mode_ABT|I_Bit|F_Bit //Switch to Abort, disable Interrupt MOV SP, R0 SUB R0, R0, #ABT_Stack_Size // Enter FIQ Mode and set its Stack Pointer MSR CPSR_c, #Mode_FIQ|I_Bit|F_Bit //Switch to FIQ, disable Interrupt MOV SP, R0 SUB R0, R0, #FIQ_Stack_Size ARM7 Initialisieren der Stack Pointer direkt im Startup.s

School of Engineering ARM7 Initialisieren der Stack Pointer im uVision

School of Engineering Cortex-M3 Stack Push Stack Pointer zeigt immer auf die letzten Daten die abgespeichert wurden Wird vor einer Push Operation dekrementiert

School of Engineering Kopieren von mehreren Registern mit einem Befehl Abspeichern von mehreren Registern auf den Stack STMFD R13!, {[registers], R14} Zurückholen der Register vom Stack: LDMFD R13!, {[registers], PC}

School of Engineering Cortex M3 Interrupt Controller (NVIC)

School of Engineering Cortex-M3 Blockdiagram

School of Engineering Exception TypeAddress OffsetException Vector x48-0x3FFIRQ # x44IRQ #1 160x40IRQ #0 150x3CSYSTICK 140x38PendSV 130x34reserved 120x30Debug Monitor 110x2CSVC 7-100x1C-0x28Reserved 60x18Usage fault 50x14Bus fault 40x10MemManage fault 30x0CHard fault 20x08NMI 10x04Reset 00x00Starting Value for MSP Cortex-M3 Exception Vectors

School of Engineering Cortex-M3 Interrupt Stacking

School of Engineering Cortex-M3 Stack While Fetch

School of Engineering Cortex-M3 Interrupt Stacking

School of Engineering Cortex-M3 Interrupt Stacking Bei jedem Interrupt werden 8 x 4 Bytes gestacked = 32 Bytes

School of Engineering Übung1: Stacking SpeicheradresseDaten 0x300000FF0x x300000FB0x400000FE 0x300000F70x12FFFFF8 0x300000F30x14FFFFFF 0x300000EF0x x300000EB0x x300000E70x x300000E30x x300000DF0x x300000DB0x5a5a5a5a pc lr r12 r3 r2 r1 r0 Was sind die Inhalte der Coretex-M3 Register unmittelbar nach Rückkehr in das Hauptprogramm? Füllen Sie die Lücken unten aus. Während der Interruptroutine enthielt das Stack Pointer Register den Wert 0x DF

School of Engineering Übung 1: Stacking - Lösung SpeicheradresseDaten 0x300000FF0x x300000FB0x400000FE 0x300000F70x12FFFFF8 0x300000F30x14FFFFFF 0x300000EF0x x300000EB0x x300000E70x x300000E30x x300000DF0x x300000DB0x5a5a5a5a pc 0x12FFFFF8 lr 0x14FFFFFF r12 0x r3 0x r2 0x r1 0x r0 0x Was sind die Inhalte der Coretex-M3 Register unmittelbar nach Rückkehr in das Hauptprogramm? Füllen Sie die Lücken unten aus. Während der Interruptroutine enthielt das Stack Pointer Register den Wert 0x DF

School of Engineering Cortex-M3 Interrupt Situationen Tail Chaining Interrupts Ein Interrupt gleicher oder niedrigerer Priorität folgt unmittelbar nach einem Interrupt Pre Empt Interrupts Ein Interrupt höherer Priorität der signalisiert wird, während ein interrupt niedrigerer Priorität initiiert wird, wird noch vor Ausführung des niedriger priorisierten Interrupts vorgeschoben Nested Interrupts Ein Interrupt höherer Priorität unterbricht einen laufenden Interrupt niedrigerer Priorität

School of Engineering Tail Chaining Situation 1 Interrupt mit gleicher oder niedrigerer Priorität folgt sofort im Anschluss Cortex-M3

School of Engineering Tail Chaining Situation 1 Interrupt mit gleicher oder niedrigerer Priorität folgt sofort im Anschluss Cortex-M3

School of Engineering Tail Chaining Situation 2 Zweiter Interrupt folgt kurz nachdem oder während des Abladens des Stacks in die Register Cortex-M3

School of Engineering Pre-empt Interrupt Spät ankommender, höher priorisierter Interrupt kann füherem Interrupt vorgeschoben werden Cortex-M3

School of Engineering Cortex-M3 Nested Interrupt

School of Engineering Übung 2: NVIC Priorität Die Priorität von drei Interrupt Routinen ist: INT1 = höchste, Int3 = niedrigste Übung 2a) Der Stackpointer ist vor Eintritt in Interrupt Routine 2 0x300000FF Während der Ausführung von Routine 2 wird Interrupt 1 aktiviert. Beschreiben Sie was passiert: Was ist der Wert des Stackpointers während der Ausführung von Interrupt Routine 1 ? Übung 2b) Der Stackpointer ist vor Eintritt in Interrupt Routine 2 0x300000FF Während der Ausführung von Routine 2 wird Interrupt 3 aktiviert. Beschreiben Sie was passiert: Was ist der Wert des Stackpointers während der Ausführung von Interrupt Routine 3 ?

School of Engineering Übung2: NVIC Priorität - Lösung Übung 2a) Vor Ausführung von Routine2 werden die Register gestacked, der Stackpointer wird um 32 Bytes dekrementiert. Da Interrupt 1 höhere Priorität hat, wird Interrupt Routine2 unterbrochen, und die Register wieder gestacked, die Stack Adresse wird noch mal um 32 Bytes dekrementiert SP: 0x300000FF - 2 * 32 Byte = 0x300000BF Übung 2b) Vor Ausführung von Interrupt 2 wird der Stack um 32 Bytes dekrementiert. Interrupt 3 hat niedrigere Priorität, Interrupt 2 wird nicht unterbrochen. Nach Ausführung von Interrupt2 folgt unmittelbar Interrupt3, es erfolgte kein weiters stacking, da Interrupt 3 im Anschluss kommt. SP: 0x300000FF - 32 Byte = 0x300000DF

School of Engineering ARM System Peripherals

School of Engineering Blockdiagram des NXP LPC2138 Core Teil System Teil ARM7 Core Pulse Width Modulator A/D – D/A Converter Interrupt Controller Real Time Clock I2C/SPI Controller UART SRAM/Flash Bus/Systeme Takt Erzeugung General Purpose I/O

School of Engineering Interne Busse im LPC2138 ARM 7 AHB/VPB Bridge ON Chip Peripherals Program Code/Data Flash/RAM Local Bus Advance High Performance Bus VLSI Peripheral Bus Vectored Interrupt Controler AMBA-Bus

School of Engineering Speicherbereichs-Aufteilung LPC2138 AHB Peripherals VPB Peripherals Reserved for External Memory Boot Block Reserved for On-Chip Memory On-Chip Static RAM Reserved for Special Registers Reserved for On-Chip Memory On-Chip Non-Volatile Memory 4.0 GB 3.75 GB 3.5 GB 3.0 GB 2.0 GB 1.0 GB 0.0 GB 0xFFFF FFFF 0xF xE xC x x x3FFF x

School of Engineering Speicherbereichs-Aufteilung des VPB

School of Engineering Externe Speicherschnittstellen

School of Engineering Blockdiagram EBI Atmel AT91SAM7

School of Engineering Features eines modernen EBI Min. 23 Adressleitungen (je nach Konfiguration bis 32 Mbyte adressierbar) 16- oder 32-bit Datenbusbreite Steuert SRAM SDRAM DDRAM2 PROM EEPROM Flash Compact Flash NAND Flash Fehlerkorrekturschaltung eingebaut (ECC)

School of Engineering Addressaufteilung eines Atmel AT91X40

School of Engineering Verbinden von 8-bit Speichern

School of Engineering Verbinden von 16-bit Speichern

School of Engineering Adressieren von Speichern Ausgegebene Adresse A3..A0Datenbits D7..D0 0x0006 0b0110D7..0 0x0005 0b0101D7..0 0x0004 0b0100D7..0 0x0003 0b0011D7..0 0x0002 0b0010D7..0 0x0001 0b0001D7..0 0x0000 0b0000D7..0 Ausgegebene Adresse A3..A0DatenbitsNWR1 Write Enable NWR0 Write Enable D15..8D7..0 0x000c 0b1100D15..8D x000a 0b1010D15..8D x0008 0b1000D15..8D x0006 0b0110D15..8D x0004 0b0100D15..8D x0002 0b0010D15..8D x0000 0b0000D15..8D Schreiben von 16-bit Daten auf 16-bit externen Bus Schreiben von 16-bit Daten auf 8-bit externen Bus Low Aktiv!

School of Engineering Adressieren von Speichern Ausgegebene Adresse A3..A0DatenbitsNWR1 Write Enable NWR0 Write Enable D15..8D7..0 0x0006 0b0110D x0005 0b0101D x0004 0b0100D x0003 0b0011D x0002 0b0010D x0001 0b0001D x0000 0b0000D Schreiben von 8-bit Daten auf 16-bit externen Bus in little Endian Low Aktiv!

School of Engineering Übung3: Bestimmen der Enable Signale

School of Engineering Übung3: Lösung

School of Engineering Übung4: Verbinden von Speichern

School of Engineering Übung4: Lösung

School of Engineering Speicherzugriffs-Zyklen (Keine Wait States, schnellst möglicher Zugriff) NWE NRD NCS ADDR MCKI ODER Prozessor gibt Adressen aus Prozessor speichert Daten NWE = Low aktives Write Enable

School of Engineering SRAM Read Cycle

School of Engineering Ein programmierter Wait State NWE NRD NCS ADDR MCKI ODER 1 zusätzlicher Zyklus Prozessor gibt Adressen aus Prozessor speichert Daten min. 6 ns

School of Engineering Externes Wait Signal NWE NRD NCS ADDR MCKI ODER 1 Wait State Prozessor fügt Wait ein wenn NWAIT = 0 Prozessor speichert Daten WAIT

School of Engineering SRAM Write Cycle

School of Engineering Aufeinander folgende Lese und Schreibzyklen

School of Engineering Early Read Cycle NWE NRD NCS ADDR MCKI ODER 1 zusätzlicher Zyklus Prozessor gibt Adressen aus Prozessor speichert Daten Early Read Normal Read 10 ns

School of Engineering EBI Steuerregister

School of Engineering Für jedes Chip Select, gibt es ein Chip Select Register (Atmel-ARM) Datenbusbreite 10 = 8-bit 01 = 16-bit Number of Wait States Wait States eingeschaltet Seitengrösse 00 = 1 M Byte 01 = 4 MByte 10 = 16 MByte 11 = 64 MByte Data Float Output Time Chip Select Enable Base Address (höchste Bits der Basis Adresse) Byte Write Access Type

School of Engineering Übung5: EBI Chip Select Register CS0CS1CS2 Page Size:16M Base Address:0x x x Von:0x x x Bis:0x01FFFFFF0x02FFFFFF0x03FFFFFF CS0CS1CS2 Page Size:64M Base Address:0x Von: Bis:

School of Engineering Übung5-Lsg: EBI Chip Select Register CS0CS1CS2 Page Size:16M Base Address:0x x x Von:0x x x Bis:0x01FFFFFF0x02FFFFFF0x03FFFFFF CS0CS1CS2 Page Size:64M Base Address:0x x x Von:0x x x Bis:0x13FFFFFF0x17FFFFFF0x1BFFFFFF