I have developed a project using IAR EW for ARM and an STM32 MCU. For an issue, I need to inspect the RAM contents of a running device. How can I do that without resetting the device? because with the reset RAM will be re-initialized and I will lose the data.
How to see RAM contents of a running STM32 MCU without resetting it?
336 Views Asked by Monem Ahmed At
2
There are 2 best solutions below
Related Questions in DEBUGGING
- How to pass the value of a function of one class to a function of another with the @property decorator
- Visual Studio C++, breakpoints not stopping debugging DLL (GODOT GDExtention)
- Playwright JS: Getting an error when debugging using line numbers
- C++ skips line when promting for user to enter name of person being added to a string array
- Xcode: Can't Attach to process
- unity navmeshsurface prefab not found or whatever
- It seems to be a bug about "base::trace()" or "methods:::.TraceWithMethods()"?
- How to check reference counting issues when doing direct manipulations of CPython objects?
- How to scroll to the bottom of console window in PyCharm2019 automatically?
- need help debugging prolog
- Is there a way to deactivate (but not delete) conditional breakpoints when debugging?
- How can i debug a python exe which is created by using pyinstaller?
- Increment or Decrement volume programmatically on Xiaomi device adjusts it by 10 steps instead of one step
- Checking request JSON with image data
- Why cannot I set font of `xlabel` in `plotmf` in MATLAB?
Related Questions in EMBEDDED
- MSP430F5529 on the MSPEXP430F5529LP: UART is not actually transmitting despite seemingly correct setup. What is wrong?
- A FPGA Project Proposal where I can use both PS and PL
- Program doesn't run after DFU
- Sending struct through queue
- How to generate a VPI warpmap for polynomial distortion correction?
- How to present this example concept in UML: Using 2 LCD displays in C/C++
- CLion: Debug via St-Link
- Portenta H7 Baremetal Development and a Little Guidance on Embedded System Learning Roadmap
- STM32 RTC3 Mixed Mode: Writing TR resets SSR
- Unable to read value from gpio set as input
- Mbed TLS: in-place en-/decryption for OAEP doesn't seem to work
- Shared variable read from low priority thread in preemptive scheduling
- Own Pattern / framework for interfacing with components in C
- Performance Difference Between Global Variable and Local Variable in Embedded Systems
- Comparing analog signal from Electret mic with samples
Related Questions in STM32
- Build issue in my STM32-NUCLEO project using the Eclipse IDE
- STM32 ADC DMA low raw/Voltage readings
- Program doesn't run after DFU
- STM32G030 refuses write to flash
- STM32 - Serial Audio Interface (SAI) - dual data line transmit possible?
- CLion: Debug via St-Link
- STM32 RTC3 Mixed Mode: Writing TR resets SSR
- Ran on an MCU (STM32F1), doubly-linked list code results in a call of HardFault() due to stack overflow
- i want to display voltage of ADC with " ssd1306 OLED " in STM32 when i change the voltage with potentiometer
- spi5 of my STM32MP157F-K2 CAN'T read data from the RC522 CARD
- STM32 unable to be read
- Enabling one timer using another
- Confusion with thumb instructions while compiling recipe for cortexm4 CPU
- How to setup Interface Encoder mode for the STM32F0
- UART Driver for STM32MP25 by EDK2
Related Questions in RAM
- Windows 64-bit: Do overlapped MMF windows mean more RAM consumption (doubling the RAM where the file views overlap)?
- Read/write data to DS1642
- Failed to use memory bits in fpga
- Is it better to pass a C++ object by reference than by value if it is in RAM?
- Stm32 Problem with reading from Flash memory (incorrect data)
- MariaDB not releasing RAM after jobs finish
- How to secure a Python project on Windows from domain administrators?
- Memory consumption of Parent & child process in Linux
- Simulation contradiction using the same Vivado block ram IP
- RAM crash executing procedure in Spyder
- Will the 16n prefetch in DDR5 affect the bandwidth of small-granularity memory accesses?
- How do I view individual memory blocks on my PC?
- pidstat output to file, once
- Get memory usage of this process C++ Win32
- how do I determine how much RAM a jupyter notebook has allocated and is using?
Related Questions in IAR
- PC-Lint on IAR not understanding std::atomic<>
- changing white space character in IAR embedded
- How can i download IAR EWARM 8.30.1
- Running a C code developed in IAR on Windows
- Initializing Global Variables in IAR
- Writing problem after placing a group of variables in a specific section with IAR arm linker
- Timers window of the ThreadX IAR plugin crashing IAR when a 10th timer is created
- Memory intersection problem in IAR Embedded Workbench
- how to make a common linker for keil and IAR
- extern const declaration as pointer causes hard fault in C?
- How to create a test.out file to sue for Unity Ceedling testing framework in IAR compiler
- Using IAR Embedded Workbench to configure an Arduino Due through J-link, the debugger never reaches the main function of my C-Code
- STM32 Stop mode
- IAR Workbench color customization
- How to choose FlexSpi channel in IAR
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?



Reset does not modify or reinitialise the SRAM. That occurs in the runtime start-up. The on-chip SRAM will not be reinitialised unless you let the run-time start-up code run (which executes between reset and
main()).So all you need do is set a breakpoint at the reset vector and maintain power and you can connect the debugger and let it reset. It will halt before anything writes to the SRAM, the content of which will be preserved through a reset so long as power is maintained.
The reset vector is stored at offset 0x0004 from the start of the vector table. The address of that will depend on whether you are using ROM, Flash or SRAM boot mode (SRAM boot would of course be unhelpful in this case). It will also be the symbol __reset in your link-map. Anyhow you can set the symbol or the absolute address as a breakpoint before connection of the debugger, and it will halt before modifying SRAM.
Alternatively your debugger can almost certainly be configured to connect without asserting a reset (a long time since I have used EWB so I can't tell you exactly how - that is what the user manual is for), which would preserve not only the SRAM, but also the peripheral register states, the NVIC and core registers likely to be essential in many debugging situations. That said, you mention in a comment that you tried that without success. I too have had issues "hot connecting" to STM32 - I have never needed the feature sufficiently to resolve that issue, and assumed it was a misconfiguration, but perhaps it is a "feature"?
Ultimately the best solution is to be running with the debugger connected from the get go, so you can simply halt the processor to inspect it's state, or in mast cases, view the memory "Luce" while the processor continues to run.