100 likes | 188 Views
Describing target hardware in debuggers. Aaron Spear DEBUG TECHNOLOGIES ARCHITECT ACCELERATED TECHNOLOGY DIVISION Feb 2006 DSDP Meeting/Toronto. Agenda. Common needs for debuggers Quick look at AT’s proprietary solution Existing standards/SPIRIT Extending SPIRIT for debug use.
E N D
Describing target hardware in debuggers Aaron Spear DEBUG TECHNOLOGIES ARCHITECT ACCELERATED TECHNOLOGY DIVISION Feb 2006 DSDP Meeting/Toronto
Agenda • Common needs for debuggers • Quick look at AT’s proprietary solution • Existing standards/SPIRIT • Extending SPIRIT for debug use Nucleus EDGE Architecture - company confidential
Debugger features tied to hw details • Board/connection information (e.g. JTAG scan chain info) • Registers (native, coprocessor, peripherals) • Memory maps • Help building apps/validation • HW tools (e.g. memory testing, flashing) • Aid the debugger (e.g. ROM stepping) • Initialization Nucleus EDGE Architecture - company confidential
What is SPIRIT missing for debugger use? • Core internal register information • Register use information (does reading a register change its contents? Important for a debugger!) • Non-contiguous bitfields? Nucleus EDGE Architecture - company confidential
Register specific information we need: • id, alternative id’s (e.g. “R15”, “R15_irq”) • bit width • register type (floating point? fixed point?) • access restrictions (RW) • access hints/side effects • volatile contents • reads are destructive • writes may change state/invalidate other memory • dependencies (visibility depends on another register/bit field) • bit fields • which bits (non-contiguous!?) • value to text mapping • formulas/masks for values • default formatting hints (hex vs decimal) • access (RW) Nucleus EDGE Architecture - company confidential
Memory info we need? • address spaces • id (“Memory”, “IO”,”DATA”, “INST”) • unit size (e.g. 8 bits) • unit count (e.g. 2^32) • Memory maps (core specific/shared) • region name (“DRAM”, “FLASH”) • space reference • offset in space (units) • unit count • Access flags (RWXV) • Required access sizes (none, 16 bit write?) • Memory type (RAM, Flash information) Nucleus EDGE Architecture - company confidential
What is SPIRIT? SPIRIT stands for: “Structure for Packaging, Integrating and Re-using IP within Tool flows”, • Standard schema for description of HW IP blocks • Standard interfaces for IP creation and configuration scripts (“generators”) • Standard interfaces for “flow based” Electronic Design Automation (EDA) tools Nucleus EDGE Architecture - company confidential
What is SPIRIT used for today? • Vendor neutral description of IP blocks for use by SoC design tools • Interconnection of HW IP on an SoC • Routing of signals between IP blocks • Cores, peripherals, buses • Focused on creation of SoC Nucleus EDGE Architecture - company confidential
What does SPIRIT have that is cool for debugger vendors? • Standardized description of memory maps • Address Spaces • Buses/bridges between spaces • Memory mapped registers (peripherals) • Bit fields within registers If it was the memory map used in creation of the SoC, it is going to be correct! Nucleus EDGE Architecture - company confidential
Thank You! www.acceleratedtechnology.com