2022-01-23 03:11 PM
I am exploring the memory space of my STM32F051 using a very simple hex monitor that communicates through a serial port. I can (attempt to) read/write a byte at any arbitrary address in the 32-bit address space. Within the SRAM area (starting at 0x2000000) I can write a byte and read it back.
There are two circumstances I'm encountering (which I think are normal) where a memory access attempt does not succeed.
I would like to know what the condition is called so I can read about it in documentation and understand the rules around memory space in ARM (at least for this - F0 series - processor.)
In both cases, the lock-up conditions is readily resolved by pushing the reset button (on my STM32F0Discovery module).
I am not concerned that there is an unsolved problem; my only wish is to know what these sorts of unexpected memory accesses are called, or what is happening.
I am new to ARM; my last experience with a microcomputer that was selective in granting memory-space access was my DEC LSI-11 from 1979 (such accesses would cause a "bus fault" interrupt.)
2022-01-23 03:34 PM
Both these attempts are considered to be "bus error" and result in HardFault. That's the only fault in Cortex-M0 (M3/M4/M7 have a more refined set of faults).
Read PM0215, start perhaps at the Fault handling chapter
JW
2022-01-23 06:10 PM
Thank you, JW - that helps very much and explains exactly what I encountered.
PM0215 explains the conditions that may happen.
I will learn now how to create a service routine so my application can recover from such an interrupt.
Dave