This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Can't get CCS 6.1 "Continuous Refresh" for Memory or Expression views to work for Hercules devices

Other Parts Discussed in Thread: EK-TM4C1294XL, LAUNCHXL2-RM46, LAUNCHXL-RM42, CCSTUDIO

The CCS Real-time Debug training says that access to memory while the processor is running is possible on Tiva, Stellaris and Hercules ARM devices via the DAP (Debug Access Port).

With CCS 6.1.0.00104 under Windows 7 I am able to get Continuous Refresh to work on a running Tiva device in a EK-TM4C1294XL.

However,when using Hercules devices in a LAUNCHXL-RM42 or LAUNCHXL2-RM46 Continuous Refresh doesn't work if the target is running - CCS reports "execution state prevented access" and doesn't update the the Expressions or Memory Browser views when the target is running.

Is the failure to access the memory of Hercules devices when running a bug in CCS or a limitation of the devices and/or emulators?

[The launchpads used all happen to have different emulators - Stellaris ICDI on the EK-TM4C1294XL, XDS100v2 on the LAUNCHXL-RM42 and XDS110 on the LAUNCHXL2-RM46]

  • Continuous Refresh also works with a Cortex-M4F MSP432 in a MSP-EXP432P401R which has a XDS110 emulator, which suggests the problem is with the Hercules devices rather than the type of emulator.

  • Some further information:

    1) The following Emulation packages are being used with CCS 6.1:

      Hercules Emulation    6.0.6    com.ti.ccstudio.hercules.linux.feature.group    Texas Instruments

      TI Emulators    5.1.641.0    com.ti.emulation.pack.linux.feature.group    Texas Instruments

    2) With the LAUNCHXL2-RM46 I was able to access the memory when the target was running by pinning the Memory or Expressions View to the DAP. However, memory accesses via the DAP has to by address rather than variable (symbol) names and the reason I was trying "Continuous Refresh" on the Hercules devices was to use GUI Composer - which binds to variables via their name and so needs to resolve symbols.

  • Chester,

    I was able to reproduce the behavior you reported. The level of support ( or atleast the debug experience) for memory access via DAP while processor is running seems a bit different between Cortex M and Cortex R cores. I am checking internally what is expected for these Hercules devices and will get back to you when I have more information.
  • Chester,

    The engineer assigned to look into this is out sick. We hope to have an update by the later part of the week. Thanks for your patience!
  • Chester,

    The engineer looking into this just confirmed that "continuous refresh" of memory or expressions view while processor is running is indeed broken for Cortex R cores. We hope to get this fixed in an upcoming emulation release. 

    One note about the difference between RM42 and RM46: RM42 does not have the functional path wired to allow access to the memory map via DAP. That is the reason it does not work for RM42 but it should work for all other RM4x/RM5x devices. 

    Chester Gillon said:
    However, memory accesses via the DAP has to by address rather than variable (symbol) names and the reason I was trying "Continuous Refresh" on the Hercules devices was to use GUI Composer - which binds to variables via their name and so needs to resolve symbols.

    An engineer reported using the following workaround for this which you could give a try:

    Create a gel file which has the following:
    menuitem "DAP_Access";
    hotmenu LoadSymbolsForDAP() { GEL_SymbolLoad("filename.out");
    }

    Load this gel file onto the DAP. Now the "Expressions" window recognizes all global variable names, even if it is refreshed via the DAP.

  • AartiG said:
    An engineer reported using the following workaround for this which you could give a try:

    Create a gel file which has the following:
    menuitem "DAP_Access";
    hotmenu LoadSymbolsForDAP() { GEL_SymbolLoad("filename.out");
    }

    I tried that with a LAUNCHXL2-RM46, and confirm that the "Expression" window recognized global variables when the target was running and GUI Composer was able to change a global variable while the target was running.