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.

CCS/MSP430FR5989: Memory Dump Issues

Part Number: MSP430FR5989

Tool/software: Code Composer Studio

I'm having issues with a memory dump. I'm very new to CCS so perhaps I'm doing something wrong. I suspect some amount of it has to do with not converting memory addresses properly.

What I'm trying to do:

I have a device, freshly flashed firmware. Trying to dump all of its memory. Use another tool to change a config over bluetooth to the device. The dump all the memory again. This is to give myself two files with all of the memory dumped with specific configuration change visible in the diff between the two files.

I'd made a change to a config at INFOB origin = 0x1900, length 0x0080

Memory starts with TINYRAM at origin 0x0006, length 0x001A

and ends at

DATA_FRAM2 origin 0x10000 length 0x14000

When I'm using the Save Memory Tool I have my start address set at 0006 and Length in Words set at 147456. 

I'm however not getting changes at the expected location when I compare the difference in the memory dumps...

  • Hi,

    The Memory Save tool is pretty straightforward when saving a device's memory, but I wonder if something on the device itself may be causing the operation to silently fail. What I usually experience with other architectures are factors such as memory protection mechanisms or gaps that block or skip the operation under execution.

    Given you are saving a very wide range of memory, which contains peripheral registers, ROM and FRAM, I will try to get someone more experienced on the device itself to provide further comments.

    Regards,
    Rafael
  • Hi Rafael,

    I've been doing some additional exportation and will post my here afterwards. What I am after is the ability to connect to a running unit and to get a dump of memory. Basically everything. Hopefully containing everything from variable values, collected data, the the current state of the processor, etc. Without resetting the device. I have a unit that stuck more or less in a comatose state. Let us call this unit "Space Man." Either the watchman is not triggering or for one reason or another it's stuck in some loop. I want to figure out where and what "Space Man" is doing. How "Space Man" got into this state. 

    From my understanding the .stack will be in the RAM(HIgh). RAM's origin is at 0x1C00 and has a length of 0x0800 so i suspect that I'm looking at something around the last 100 words or so for that.

    I want to collect everything up-to the end of DATA_FRAM2 (origin 0x10000, length 0x14000).

    To test this on another unit I've flashed fresh firmware and have collected a few dumps. Then with another tool over bluetooth made changes to a configuration. Dumped the memory. Confirmed that the firmware was not flashed by the debugger. Made changes to config, dumped, confirmed, changed back to original state, dumped, and finally confirmed the configuration.

    In the end I'm hoping to have 3 dumps from the device: First is basically the fresh newly flashed firmware, second the firmware with a known change stored in INFOB memory (origin 0x1900 length 0x0080), the third is basically reverting the configuration change made between the first two. 

    I'm going to re-run my exploration because I didn't get what I had expected and report back.

  • Hi Stephen,

    I wanted to check in and see if you were still having issues?

    Thanks,

    Mitch
  • Hi Stephen,

    I haven’t heard from you for a while, so I’m assuming you were able to resolve your issue. If this isn’t the case, please click the "This did NOT resolve my issue" button and reply to this thread with more information. If this thread locks, please click the "Ask a related question" button and in the new thread describe the current status of your issue and any additional details you may have to assist us in helping to solve your issues.

    Thanks,

    Mitch