Menu

#13 Peripheral registers view in debug

1.0
accepted
None
2014-10-12
2014-09-29
No

A preliminary version of the debug plug-in is available for evaluation.

Apart from code restructuring, the major addition is a 'Peripherals' view added to the same region where processor registers are displayed.

To make this new view work, there are several preconditions

  • the Packs plug-in must be installed in Eclipse
  • the packages related to the processors in use must be installed (in the Packs perspective)
  • the build configuration for the project under debug must have the device associated to it (use project properties -> C/C++ Build -> Settings -> Devices, and select the device)

Then, once the debug session is started, the Peripherals view is populated with the definitions encountered in the CMSIS SVD file.

Checking one peripheral adds a new monitor to the Memory view, and a custom rendering shows the registers and the bit-fields. If not read-only, the value is editable.

Known problems of the current version:

  • in certain cases the derivedFrom definition might not work as expected
  • the dimElementGroup is not yet implemented, so parametrised register names are instantiated only once
  • the cluster definitions are not fully implemented, so the new Atmel devices may not be rendered properly
  • the scaling definitions (KMGT) for scaledNonNegativeInteger is not implemented
  • the prependToName definitions are not implemented (affects Atmel devices)
  • the enumeration definitions are not yet implemented
  • the list of active peripheral monitors is not preserved from one session to the other
  • 8-bit registers are shown with 16-bit values

Discussion

  • Liviu Ionescu (ilg)

    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -21,7 +21,7 @@
     - the prependToName definitions are not implemented (affects Atmel devices)
     - the enumeration definitions are not yet implemented
     - the list of active peripheral monitors is not preserved from one session to the other
    -
    +- 8-bit registers are shown with 16-bit values
    
     
  • Liviu Ionescu (ilg)

    A new beta version is available for testing.

    Solved problems:
    - the dimElementGroup was implemented, so parametrised register names and clusters are instantiated properly
    - the scaling definitions (KMGT) for scaledNonNegativeInteger were implemented
    - 8-bit registers are shown with 8-bit values
    - viewing unions (registers with same address) is implemented
    - the group, version and reset value are visible as tooltips

    Known problems:
    - in certain cases the derivedFrom definition might not work as expected
    - the enumeration definitions are not yet implemented
    - the list of active peripheral monitors is not preserved from one session to the other
    - editing a union member does not propagate changes to its siblings

    If no serious bugs are reported, the Peripherals view will be frozen for now, in preparation for the public release.

     

    Last edit: Liviu Ionescu (ilg) 2014-10-12