2018-04-16 04:36 AM
I have a ST32H7 project on the go with SDRAM at 0xC0000000. I can read internal memories via ST-Link and SWD just fine in a live system and this is helpful during debugging. However, try to read the initialized and working SDRAM and it complains 'external loader not found'. Surely it does not need a custom loader - the memory is visible, the MPU is initialized, all is well - I just want to read the memory in a live system as I can do in any of my other projects using non-STM processors. What am I missing ?
I am using a somewhat clutzy workaround by including a command line tool via UART in my application to dump the SDRAM memory contents. That really necessary ? It works but relies on the application running - if there is a crash I am blind...
Anybody with a bright idea ?
#st-link-external-loader2018-04-16 06:23 AM
External memory has a lot of unknowns, including pins, geometry, speed etc.
Tools like Keil and IAR will give you access to the SDRAM once code in your application has initialized those interfaces.
To use them from Reset you would need a Debugger Script type arrangement to poke several dozen registers to get the clocks, pins, controller, and memory device into a stable orbit.
The equivalent to this script in the ST-LINK Utilities will be the External Loader, which is what I assume you're using.
2018-04-17 12:16 AM
We know that. The loaders make sense on a blank device where it is required to initialize memories and interfaces before these can be read or written.
However on a device with running application it does NOT make sense at all and is completely disruptive. I fail to understand why I cannot simply view external, linear memory that is initialized and working using ST-Link.
Hence my question: I must be missing something - I cannot believe this is intentional.
2018-04-17 07:50 AM
Interesting. Did not know about J-Link OB. I use J-Link on several other hardware developments (non-STM).
Seems a little restricted but may come in handy some day...
2018-04-17 08:09 AM
I'd suppose it simplifies the implementation of the ST-LINK Utilities.
You could always flash the ST-LINK with the Segger J-Link OB firmware, and use the Segger tools.