Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dsdp-dd-dev] register mappings in debuggers

Hello everyone,

One thing that I have been working on a bit in the SPIRIT/IP-XACT debug
working group is coming up with a schema to be a part of IP-XACT that
describes mappings between register id's in cores and peripherals and
other information that debuggers need.  The two operative examples of
where these mappings are needed in a debugger that I can come up with
are mappings from:
1) standard register id's to compiler register id's (e.g. dwarf register
2) standard register id's to a proprietary format used for a debugger
back end of some kind.  i.e. a string of whatever format used for a
particular probe or simulator for access to registers (e.g. GDB server
register indexes)

The general idea here is that we would like to have a scenario where
someone may get CPU IP from company A who supplies the customer with an
IP-XACT component for their CPU, the customer may then buy a compiler
from company B because it has whiz-bang optimization, a probe from
company C and a debugger from company D.   In an ideal world, both the
compiler and probe vendors would supply standard format mapping files in
this standard schema, and the customer could drop them into their design
environment.  Then when the debugger gets around to trying to debug this
design, they not only get the hardware information in terms of what
registers/peripherals are in the system, but they also get files that
have the dwarf index mapping and mapping for whatever API the probe
uses, and they are all in sync (what a concept).

Mentors debuggers use many permutations of proprietary files to supply
this type of information currently, and they all do basically doing the
same thing (some ini files, some XML files, ...) and I would be happy to
throw them all away in favor of a standard.

The Questions: (finally)

1) Does anyone have other ideas where this sort of mapping between
register id's and something else is useful?

2) if you have any examples of mappings used by your commercial tools
that you would be willing to send my way I would appreciate seeing them.
This point is important, because I want to be able to think about the
different ways people are doing things.  We for example have one schema
in which we use regular expressions to parse register id's to construct
the id's used to access the registers in a certain probe API.  This is
very convenient because they when new registers are added we don't have
to modify these files and it just works (mostly)


Aaron Spear
Debug Tools Architect/Staff Engineer
Mentor Graphics

Back to the top