School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP...

42
School of Engineerin g ESI-Lektion 9- 10

Transcript of School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP...

Page 1: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

ESI-Lektion 9- 10

Page 2: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

ESI – Lektion 9-10

● Memory MAP Controll

● Bootloader, ISP

● JTAG Debugging

● In Circuit Emulators

● Flash Speicher Accelerator

Page 3: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Memory MAP Control

Page 4: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

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

0xF000 0000

0xE000 0000

0xC000 0000

0x8000 0000

0x4000 0000

0x3FFF 8000

0x0000 0000

64 byteExceptionVectorTable

Prefetch Abort (instruction fetch memory abort)

Supervisor

0x0000001C

Exception Mode Address

Reset

Undefined instruction

Software interrupt (SWI)

Data Abort (data access memory abort)

IRQ (interrupt)

FIQ (fast interrupt)

Undefined

Supervisor

Abort

Abort

IRQ

FIQ

0x00000018

0x00000010

0x0000000C

0x00000008

0x00000004

0x00000000

Speicherbereichs-Aufteilung LPC2138

Page 5: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

0x0000 0040

0xFFFF FFFF

0x0000 003F

0x0000 0000 0x4000 0000

0x8000 0000

RAM

ExternFlash

Boot-loader

MEMMAPRegisterEinstellung

1 2 30

UserFlash

RAM

ExternFlash

Boot-loader

RAM

Boot-loader

BootLoader

RAM

ExternFlash

Boot-Loader

ExternFlash

RAM ExternFlash

0x0000 0000 0x8000 0000

0x4000 0000

0x4000 003F 0x8000 003F64 ByteExceptionVectorTable

User FlashMode

(Normaler Modus)

RAMMode

External FlashMode

Boot LoaderMode

(nach Reset)

Memory Map Control Register

Page 6: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Übung1: Memory Map

Page 7: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Übung1-Lösung: Memory Map

Page 8: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Bootloader und In Circuit Flash Programmer

Page 9: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

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 ist2er-komplement der

Checksumme

Page 10: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Reset

BootProgrammis entered

Is „ForceSoftware Reload“

Pin set

Signaturegood

Enter ISPUtility

SwitchMemory Mapto Flash Mode

Set PC to 0x0000

End

y

n

y

nISP = In Circuit FlashProgramming

Ablauf nach Reset beim LPC

Page 11: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Berechnet auch die Signatur, ersetzt NOP im Startup code

ISP (In Circuit Flash Programming) Utility

Page 12: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

JTAG (Joint Action Test Group)

Page 13: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

(TDI) (TDO)

Boundary Scan mit JTAG(Joint Test Action Group)

Page 14: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

ULINKPCUSB JTAG-

controller

ARM Core

Scan Chain

Scan Flip-Flops

JTAGPort

LPC2138

JTAG Debug Schnittstelle

Page 15: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

IEEE 1149.1 Erforderliche Befehle

● BYPASSDurchschleifen von seriellen Daten wenn ein anderes IC in der Scan Chain getestet werden soll(z.B. Instruction Code = „11111“)

● SAMPLE/PRELOADIC in Normalem BetriebszustandCapture möglichSerielles Schieben von Daten In/Aus Capture Register

● EXTESTTest Muster werden an die Ausgangspins angelegtoder von den Eingangspins eingelatched (z.B. Instruction Code = „00000“)

Page 16: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

IEEE 1149.1 Optionale Befehle

● INTESTZum 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

Page 17: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

JTAG Architektur auf dem IC

Befehls Register(Betriebsarten)

TAP Controller

Daten Register

Scan Zellen

Page 18: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

JTAG Anschlüsse am Keil Board

VCC 3-3 VCC 3-3

TRST

TDO

TMS

TCK

RTK

TDI

RST

10 kΩ

1 2

20

46

8

10

121416

18

19

35

7

9

111315

17

JTAGspezifische

PINS

Page 19: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

JTAG Pin Beschreibungen

Page 20: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineeringTAP Controller Zustandsautomat

Paralleles Abspeichern derAuszulesenden Daten insData Register

Serielles Ein- oder Auslesenin das Schieberegister überTDI/TDO

Neu ins Schieberegistereingelesene Daten insSchattenregisterübertragen

Paralleles Abspeichern desAuszulesenden Status insInstruction Register

Serielles Ein- oder Auslesenin das Schieberegister überTDI/TDO

Neu ins Schieberegistereingelesene Befehle insSchattenregisterübertragen

Test Logik ist ausser Betrieb.Das Bauteil ist in normalemBetriebszustand

TMS

TMSTMS

TMS

Page 21: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineeringBeispiel für das Einstellen des

Instruction Codes

Page 22: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineeringAuszug 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 (1111111111), "& "EXTEST (0000001111), "& "SAMPLE (0000000101), "& "IDCODE (0000000110), "& "USERCODE (0000000111),"& "CLAMP (0000001010), "& "HIGHZ (0000001011), "& "CONFIG_IO (0000001101)"; attribute INSTRUCTION_CAPTURE of EP2C35F484 : entity is "0101010101"; attribute IDCODE_REGISTER of EP2C35F484 : entity is "0000"& --4-bit Version "0010000010110100"&--16-bit Part Number (hex 20B4) "00001101110"& --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)";

Page 23: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Ü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]

Page 24: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Ü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: 1001

3. Nennen sie 3 Anwendungsfälle für die JTGA Schnittstelle in Microcontrollern1. Testen der Leiterplattenverbindungen2. Debuggen der Anwendung3. Testen des IC

Page 25: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

In Circuit Emulators

Page 26: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Keil (www.keil.com)

Page 27: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Hitex HiTop und Tantino

Page 28: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

IAR

Page 29: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

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

Page 30: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineeringLow Cost JTAG Debug Adapter von

Olimex

Page 31: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineeringHersteller 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

Page 32: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

BDI2000 JTAG Debug Interface(www.abatron.ch)

• Unterstützt auch andere gängie Prozessoren und DSPs• Benötigt Debugger Tool von Dritthersteller z.B.

• IAR• CodeWarrior• GNU Debugger (GDB)

Page 33: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Embedded Tracers

Page 34: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Embedded Trace Macro

EmbeddedTraceMacro

Page 35: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

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

Page 36: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

PC

Embedded ICE

Part Trace Analyser

JTAG Interface

ETM Trace Trigger

ARM 7

PIPESTATE 0PIPESTATE 1PIPESTATE 2

TRACESYNC

TRACEPKT 0

TRACEPKT 2

VCC2

VCC1

TRACEPKT 1

TRACEPKT 3

EXTTRIG

DBGACKTRACECLK

TRSTTDO

TMS

TCK

RTCK

TDIRST

Microcontroller

Traceanschluss

Embedded Trace Macro

Page 37: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Hitex ETM Trace Tool

Page 38: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Cortex-M3 Serial Wire Debug

Page 39: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

On Chip Flash Memory of the LPC2138

Page 40: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Memory Accelerator Module (MAM)

Page 41: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

Memory Accelerator Module (MAM)

Bank 064k x 128

Bank 164k x 128

128

128

3232 3232

32

Address16 ..5

Address16 ..5

Address4

Address3..2

Page 42: School of Engineering ESI-Lektion 9- 10. School of Engineering ESI – Lektion 9-10 Memory MAP Controll Bootloader, ISP JTAG Debugging In Circuit Emulators.

School ofEngineering

MAMAusgeschaltet

Branches werdenaus dem Flash geholt

Alle Flash Zugriffevom MAM

Memory Accelerator Module (MAM)