Open On-Chip Debugger Dominic Rath University of Applied Sciences Augsburg.

Slides:



Advertisements
Similar presentations
Introduction to DFT Alexander Gnusin.
Advertisements

Cortex-M3 Implementation Overview. Chapter 6 in the reference book.
BOUNDARY SCAN.
LOGSYS Development Environment of Embedded Systems Tamás Raikovich Béla Fehér Péter Laczkó Budapest University of Technology and Economics Department of.
ARM development environment Modified Content Philips LPC2106 ARM chip ARM target board PSPad customised development environment Troubleshooting.
PLD Technology Basics. Basic PAL Architecture DQ Q CLK OE Fuse.
The ARM7TDMI Hardware Architecture
Presenter : Chien-Hung Chen Tsung-Cheng Lin Kuan-Fu Kuo EICE team Open On-Chip Debugger Ch6. Design and Architecture.
Lecture 28 IEEE JTAG Boundary Scan Standard
Real-Time Systems Design JTAG – testing and programming.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
TAP (Test Access Port) JTAG course June 2006 Avraham Pinto.
ARM HARDWARE DEBUGGER Shane Mahon, Lyndsi Parker, and Drew Shafer.
Configuration. Mirjana Stojanovic Process of loading bitstream of a design into the configuration memory. Bitstream is the transmission.
Prardiva Mangilipally
© 2009 Acehub Vista Sdn. Bhd Introduction to ARM ® Processors.
ARM Processor Architecture
Camera Interfacing using ARM7
1 EE 587 SoC Design & Test Partha Pande School of EECS Washington State University
Scan and JTAG Principles1 Scan and JTAG Principles ARM Advanced RISC Machines.
Cortex-M3 Debugging System
Spring 2014 SILICON VALLEY UNIVERSITY CONFIDENTIAL 1 Introduction to Embedded Systems Dr. Jerry Shiao, Silicon Valley University.
® ChipScope ILA TM Xilinx and Agilent Technologies.
Basic Microcomputer Design. Inside the CPU Registers – storage locations Control Unit (CU) – coordinates the sequencing of steps involved in executing.
National Taiwan University JTAG and Multi-ICE Speaker : 沈文中.
Configuration Solutions Overview
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
NS7520.
11/16/2006 WSN Mote- MCU & Sensor Hardware 1 ECET 581 Wireless Sensor Networks Mote – MCU & Sensor Hardware 2 of 3 Fall 2006
ARM 7 & ARM 9 MICROCONTROLLERS AT91 1 Development Tools & Partners.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
ECE 553: TESTING AND TESTABLE DESIGN OF DIGITAL SYSTEMS Boundary Scan.
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
April 20, 2001VLSI Test: Bushnell-Agrawal/Lecture 281 Lecture 28 IEEE JTAG Boundary Scan Standard n Motivation n Bed-of-nails tester n System view.
80386DX functional Block Diagram PIN Description Register set Flags Physical address space Data types.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
ARM 7 & ARM 9 MICROCONTROLLERS AT91 1 ARM920T Processor.
Introduction to Exceptions 1 Introduction to Exceptions ARM Advanced RISC Machines.
SYSTEM-LEVEL TEST TECHNIQUES INTRODUCTION In the 1970s, the in-circuit testing (ICT) method appeared. In the 1970s, the in-circuit testing (ICT) method.
LAB 6 JTAG and Multi-ICE 第四組 R 蘇倉弘 R 莊銘罡 R 陳建志.
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
2D-Graphic Accelerator
PROGRAMMABLE LOGIC CONTROLLERS SINGLE CHIP COMPUTER
ARM Embedded Systems
Computer Hardware – System Unit
ECE354 Embedded Systems Introduction C Andras Moritz.
ECE 353 Introduction to Microprocessor Systems
UNIT – Microcontroller.
Operating Systems (CS 340 D)
COP Interface Requirements
Firmware Structure Alireza Kokabi Mohsen Khakzad Friday 9 October 2015
Programming Microcontroller
JTAG Emulators JTAG emulator Target System Debugger software
JTAG and Multi-ICE National Taiwan University
CPE/EE 428/528 VLSI Design II – Intro to Testing (Part 3)
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
Introduction to Microprocessors and Microcontrollers
Using FPGAs with Processors in YOUR Designs
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
Bus-Based Computer Systems
JTAG Emulators JTAG emulator Target System Debugger software
Today’s agenda Hardware architecture and runtime system
Digital Signal Processors-1
CSC3050 – Computer Architecture
ARM Introduction.
Computer System Laboratory
JTAG, Multi-ICE and Angel
ADSP 21065L.
Chapter 13: I/O Systems.
ARM920T Processor This training module provides an introduction to the ARM920T processor embedded in the AT91RM9200 microcontroller.We’ll identify the.
Presentation transcript:

Open On-Chip Debugger Dominic Rath University of Applied Sciences Augsburg

Content ● JTAG – Overview, Uses ● ARM Debugging – ARM Cores – ARM9TDMI ● OpenOCD – Architecture – Supported JTAG Interfaces and Cores ● Future Development

JTAG IEEE ● IEEE Standard Test Access Port and Boundary-Scan Architecture ● Testing component functionality, connection, and interaction <- TDO <- -> TCK -> -> TMS -> -> TDI -> TAP bus master Device under test #1 Device under test #2

JTAG TAP Statemachine Test-Logic Reset(TLR) Run-Test/Idle (RTI) Select-DR-Scan (SDS) Capture-DR (CD) Shift-DR (SD) Exit1-DR (E1D) Pause-DR (PD) Exit2-DR (E2D) Update-DR (UD) Select-IR-Scan (SIS) Capture-IR (CI) Shift-IR (SI) Exit1-IR (E1I) Pause-IR (PI) Exit2-IR (E2I) Update-IR (UI) TLR RTI SISSDS RTICICD RTISISD RTIE1IE1D RTIPIPD RTIE2IE2D RTIUIUD

JTAG Boundary-Scan Testing ● Serially apply test vectors to output pins ● Capture data on input pins ● Detect open/short circuits ● Functional testing TDITDO

JTAG In-System Programming ● Programmable Logic Devices – CPLDs, FPGAs ● Popular description files: – Serial Vector Format (SVF, XSVF) – Standard Test and Programming Language (STAPL), Jedec Std. No 71 ● Loop programming ● Procedure calls ● Conditional execution

ARM Cores ● ARM7 ● ARM7TDMI(-S) ● ARM720T ● ARM9 ● ARM920T / ARM922T ● ARM926EJ-S ● ARM946E-S / ARM966E-S ● ARM10 ● ARM11 ● ARM Cortex ● Intel XScale ● Philips LPC2xxx ● Atmel AT91SAM7/9 ● Atmel AT91RM ● Analog Devices ADUC7xxx ● Samsung S3C24xx/34xx/44xx ● Intel PXA, IXP, IOP ●...

ARM Architecture Variants ● ARMv4 ● 31 registers (r0 - r15 + banked registers) ● 6 program status registers (CPSR + 5 SPSR) ● 7 core states (USR, FIQ, IRQ, SVC, ABT, UND, SYS) ● ARM and Thumb mode (32 / 16 bit instructions) ● Flat 32-bit address room ● ARMv5 ● Additional Jazelle mode (Java), DSP instructions ● BKPT instruction (saves one breakpoint unit) ● ARMv4/v5 MMU / Caches ● Translation Lookaside Buffer ● ICache, DCache (only ARM9+)

ARM ARM7/9 Debugging ● Embedded-ICE – Scan chain 2 ● 32 bit data ● 5 bit address ● 1 bit read/write ● Core Debug – Scan chain 1 ● 32 bit data ● 32 bit instruction (ARM9 only) ● Control bits ARM7TDMI JTAGEmbedded-ICE Core Boundary-Scan

ARM7/9 Embedded-ICE Unit ● Debug request ● Breakpoint / Watchpoint handling ● Debug communications channel – Fast memory transfers, semihosting, logging Watchpoint 0 address mask Watchpoint 0 address value Watchpoint 0 data mask Watchpoint 0 data value Watchpoint 0 control mask Watchpoint 0 control value Watchpoint 1 address mask Debug control Debug status Debug comms control Debug comms data Watchpoint 1 address value Watchpoint 1 data mask Watchpoint 1 data value Watchpoint 1 control mask Watchpoint 1 control value

ARM7/9 Embedded-ICE Scan-Chain 2 ● Writes to Embedded-ICE registers ● Reads require two accesses – nRead/Write = 0, Address of register, Data = don't care – Pass through Update-DR ● Register is read – Shift data out of Scan-Chain 2 ● Could do a write, or request data for next read nRead/Write Data[31:0] Address[4:0]

ARM7/9 ARM9TDMI Pipeline ● Serially insert instruction into core (SC1) – LDR, STR, LDM, STM ● Clock instruction through pipeline ● Capture output, supply input ● Model pipeline behaviour – Instruction cycle times, pipeline interlocks (RAW) Fetch Instruction fetch Decode Reg. Read Write Reg. Write Execute ALU/Shift Memory Data Memory Access

ARM7/9 ARM9TDMI Scan-Chain 1 ● Harvard architecture – separate data and instruction bus ● Sysspeed bit for system-speed instructions ● WPTANDBKPT indicates simultaneous watchpoint and breakpoint break ● DDEN indicates valid data on DD[31:0] ID[0:31] DD[31:0] SYSSPEEDWPTANDBKPTDDEN

ARM7/9 Examining System State ● Core registers can be accessed at debug speed – Core clocked from DCLK (TCK cycles in RTI) ● Memory subsystem (RAM, ROM, MMIO) can't be accessed at debug speed – Leave debug state, resynchronize to MCLK – Execute instruction (LDR/STR/LDM/STM) at system speed – Reenter debug state

ARM7/9 Caches, MMU ● ARM9 cores have separate data and instruction caches – Ensure cache coherency (Write through, invalidate Icache) ● Preserve Cache state ● Preserve TLB state ● Allow accesses using both VMA and PA – Simulate page table walking

OpenOCD Architecture Target (ARM7/9 based uC) JTAG Abstraction (jtag.h) JTAG hardware driver Wiggler, PLD cables, FT2232,... JTAG Target specific code GDB ServerTelnet Server ● GDB Server – source level debugging ● Telnet Server – low-level tasks ● flash writing ● virtual address translation ●... Target Abstraction (target.h) GDBTelnet client

OpenOCD CLI And Configuration ● Target state manipulation – poll, halt, resume, step, reset ● Memory access – md[bhw], mw[bhw] – load_binary – dump_binary ● Breakpoint/Watchpoint handling – [r]bp, [r]wp ● Flash handling – probe, erase, write, erase_check, protect_check ● JTAG control – var, field – irscan, drscan, statemove, runtest, endstate, jtag_reset ● Daemon operation – attach, reset ● Reset modes – run, halt, init, run and halt ● JTAG configuration – interface, jtag_device, reset_config, jtag_speed ● Target configuration – arm7tdmi, arm9tdmi, arm720t, arm920t ● Flash configuration – lpc2000, cfi

OpenOCD Supported JTAG interfaces ● Wiggler, PLD download cables – PC parallel port interfaces with level shifters – supported by generic bitbanging algorithm ● FTDI FT2232 – USB 2.0 full-speed with multi protocol synchronous serial engine (MPSSE) ● may be operated as JTAG, SPI,... ● Amontec JTAG Accelerator (Chameleon) – Xilinx CPLD with EPP interface

OpenOCD Open Source Toolchain ● Eclipse IDE + Embedded CDT (Zylin.com) ● GNU Toolchain (gcc, binutils,...) ● OpenOCD ● GDB (through Eclipse) ● ARM cross- development with Eclipse by Jim Lynch (

OpenOCD Future Enhancements ● Support for additional ARM7/9 cores – ARM9EJ-S (ARM926EJ-S) ● Support for additional flash devices – CFI flashes with AMD command set – AT91SAM7 on-chip flash – STR7 on-chip flash ● Support for additional core families – Intel XScale

OpenOCD Additional JTAG Interfaces ● USB + CPLD/FPGA – Universal solution – Latency critical ● Offload logic from host to device ● STAPL in hardware? ● SBC + CPLD/FPGA – Ethernet, USB,... – Task specific code runs on SBC – High-level protocol ● GDB remote protocol ● Boundary-Scan vector file player (SVF, STAPL)

Questions? Thank your for your attention! This project was supported by: FuE-Programm "Informations- und Kommunikationstechnik" High-Tech Offensive Bayern (HTO)