School of Engineering ESI-Lektion 9- 10
School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators Flash Speicher Accelerator
School of Engineering Memory MAP Control
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 byte Exception Vector Table Prefetch Abort (instruction fetch memory abort) Supervisor 0x C Exception ModeAddress Reset Undefined instruction Software interrupt (SWI) Data Abort (data access memory abort) IRQ (interrupt) FIQ (fast interrupt) Undefined Supervisor Abort IRQ FIQ 0x x x C 0x x x Speicherbereichs-Aufteilung LPC2138
School of Engineering 0x xFFFF FFFF 0x F 0x x x RAM Extern Flash Boot- loader MEMMAP Register Einstellung 1230 User Flash RAM Extern Flash Boot- loader RAM Boot- loader Boot Loader RAM Extern Flash Boot- Loader Extern Flash RAM Extern Flash 0x x x x F 0x F 64 Byte Exception Vector Table User Flash Mode (Normaler Modus) RAM Mode External Flash Mode Boot Loader Mode (nach Reset) Memory Map Control Register
School of Engineering Übung1: Memory Map
School of Engineering Übung1-Lösung: Memory Map
School of Engineering Bootloader und In Circuit Flash Programmer
School of Engineering Vectors: LDR PC,Reset_Addr LDR PC,Undef_Addr LDR PC,SWI_Addr LDR PC,PAbt_Addr LDR PC,DAbt_Addr.long 0xB8A06F58 /* Programm Signature */ LDR PC, IRQ_Addr LDR PC,FIQ_Addr \end{lstlisting} Ermitteln ob das Flash programmiert ist Signatur ist 2er-komplement der Checksumme
School of Engineering Reset Boot Programm is entered Is Force Software Reload Pin set Signature good Enter ISP Utility Switch Memory Map to Flash Mode Set PC to 0x0000 End y n y n ISP = In Circuit Flash Programming Ablauf nach Reset beim LPC
School of Engineering Berechnet auch die Signatur, ersetzt NOP im Startup code ISP (In Circuit Flash Programming) Utility
School of Engineering JTAG (Joint Action Test Group)
School of Engineering (TDI) (TDO) Boundary Scan mit JTAG (Joint Test Action Group)
School of Engineering ULINK PC USB JTAG- controller ARM Core Scan Chain Scan Flip-Flops JTAG Port LPC2138 JTAG Debug Schnittstelle
School of Engineering IEEE Erforderliche Befehle BYPASS Durchschleifen von seriellen Daten wenn ein anderes IC in der Scan Chain getestet werden soll (z.B. Instruction Code = 11111) SAMPLE/PRELOAD IC in Normalem Betriebszustand Capture möglich Serielles Schieben von Daten In/Aus Capture Register EXTEST Test Muster werden an die Ausgangspins angelegt oder von den Eingangspins eingelatched (z.B. Instruction Code = 00000)
School of Engineering IEEE Optionale Befehle INTEST Zum Testen des Verhaltens der Core Logik. Die Ausgänge der Core Logik werden in die Boundary Scan Register eingelesen. Die Boundary Scan Flip-Flops bestimmen die Signalpegel die an den Eingänge der Core Logik anliegen RUNBIST IC Selbsttest wir ausgelöst CLAMP Ausgänge werden auf einen bestimmten Pegel gebracht, dann wir die Scan Chain in den Bypass Modus gebracht um ein anders IC zu testen High-Z Alle Ausgänge werden Hochohmig geschaltet ID-CODE Auslesen des IC Typs und der Version USER CODE Instruction um Benutzer definierte Daten auszulesen
School of Engineering JTAG Architektur auf dem IC Befehls Register (Betriebsarten) TAP Controller Daten Register Scan Zellen
School of Engineering JTAG Anschlüsse am Keil Board VCC 3-3 TRST TDO TMS TCK RTK TDI RST 10 kΩ JTAG spezifische PINS
School of Engineering JTAG Pin Beschreibungen
School of Engineering TAP Controller Zustandsautomat Paralleles Abspeichern der Auszulesenden Daten ins Data Register Serielles Ein- oder Auslesen in das Schieberegister über TDI/TDO Neu ins Schieberegister eingelesene Daten ins Schattenregister übertragen Paralleles Abspeichern des Auszulesenden Status ins Instruction Register Serielles Ein- oder Auslesen in das Schieberegister über TDI/TDO Neu ins Schieberegister eingelesene Befehle ins Schattenregister übertragen Test Logik ist ausser Betrieb. Das Bauteil ist in normalem Betriebszustand TMS
School of Engineering Beispiel für das Einstellen des Instruction Codes
School of Engineering Clock Steuerung Der TAP Controller Statemacine Test Daten Eingang Test Daten Ausgang Daten Register Instruction Register Select JTAG TAP Controller
School of Engineering Der TAP Controller Steuersignale
School of Engineering Auszug aus BSDL Datei (Boundary Scan Language) -- ********************************************************************* -- * INSTRUCTIONS AND REGISTER ACCESS * -- ********************************************************************* attribute INSTRUCTION_LENGTH of EP2C35F484 : entity is 10; attribute INSTRUCTION_OPCODE of EP2C35F484 : entity is "BYPASS ( ), "& "EXTEST ( ), "& "SAMPLE ( ), "& "IDCODE ( ), "& "USERCODE ( ), "& "CLAMP ( ), "& "HIGHZ ( ), "& "CONFIG_IO ( )"; attribute INSTRUCTION_CAPTURE of EP2C35F484 : entity is " "; attribute IDCODE_REGISTER of EP2C35F484 : entity is "0000"& --4-bit Version " "&--16-bit Part Number (hex 20B4) " "& --11-bit Manufacturer's Identity "1"; --Mandatory LSB attribute USERCODE_REGISTER of EP2C35F484 : entity is "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; --All 32 bits are programmable attribute REGISTER_ACCESS of EP2C35F484 : entity is "DEVICE_ID (IDCODE),"& "IOCSR[8616] (CONFIG_IO)";
School of Engineering Übung2: JTAG TAP controller 1.Welche JTAG Register werden mit diesem JTAG Befehl angesprochen? 2.Was ist der Wert in diesem Register nach der 13ten Taktflanke? 3.Nennen sie 3 Anwendungsfälle für die JTGA Schnittstelle im FPGA [2]
School of Engineering Übung2 – Lösung: JTAG TAP controller 1.Welche JTAG Register werden mit diesem JTAG Befehl angesprochen? Data Register 2.Was war der Wert in diesem Register nach der 13ten Taktflanke? 13te: Nennen sie 3 Anwendungsfälle für die JTGA Schnittstelle in Microcontrollern 1.Testen der Leiterplattenverbindungen 2.Debuggen der Anwendung 3.Testen des IC
School of Engineering In Circuit Emulators
School of Engineering Keil (
School of Engineering Hitex HiTop und Tantino
School of Engineering IAR
School of Engineering Beispiel Evaluation Board Stellaris LM3S6965 microcontroller with fully-integrated 10/100 embedded Ethernet controller Simple setup: USB cable provides serial communication, debugging, and power OLED graphics display User LED, navigation switches, and select pushbuttons Standard ARM® 20-pin JTAG debug connector with input and output modes
School of Engineering Low Cost JTAG Debug Adapter von Olimex
School of Engineering Hersteller von ARM Emulatoren und Tools Abatron JTAG Debugger Software GDB oder andere Hersteller Keil JTAG Debugger Development Boards für Philips LPC Prozessoren Lauterbach ICE ETM Tools Hitex ETM Tools
School of Engineering BDI2000 JTAG Debug Interface ( Unterstützt auch andere gängie Prozessoren und DSPs Benötigt Debugger Tool von Dritthersteller z.B. IAR CodeWarrior GNU Debugger (GDB)
School of Engineering Embedded Tracers
School of Engineering Embedded Trace Macro Embedded Trace Macro
School of Engineering ARM Embedded Trace Macro (ETM) Zusätzliche IP Hardware die implementiert werden muss Jede Information über ausgeführte Befehle und Datenzugriff wird nach aussen geführt Erlaubt Tracing bei maximaler Taktfrequenz und damit Fehlersuche in Real Time Gibt es für all ARM und Cortex Prozessoren Benötigt extra Ports am Microcontroller, meist gemultiplexed mit anderen Funktionen
School of Engineering PC Embedded ICE Part Trace Analyser JTAG Interface ETM Trace Trigger ARM 7 PIPESTATE 0 PIPESTATE 1 PIPESTATE 2 TRACESYNC TRACEPKT 0 TRACEPKT 2 VCC2 VCC1 TRACEPKT 1 TRACEPKT 3 EXTTRIG DBGACK TRACECLK TRST TDO TMS TCK RTCK TDI RST Microcontroller Traceanschluss Embedded Trace Macro
School of Engineering Hitex ETM Trace Tool
School of Engineering Cortex-M3 Serial Wire Debug
School of Engineering On Chip Flash Memory of the LPC2138
School of Engineering Memory Accelerator Module (MAM)
School of Engineering Memory Accelerator Module (MAM)
School of Engineering MAM Ausgeschaltet Branches werden aus dem Flash geholt Alle Flash Zugriffe vom MAM Memory Accelerator Module (MAM)