I recently fought with profiling the power consumption of an ARM Cortex-M4, and I wondered if it was possible to read or write in arbitrary regions of memory. What I mean is that I know that in a normal system there are layers of translation and protection of memory addresses, so that if a program tries to read from a memory area that doesn't belong to it, an interrupt is raised. However, I don't know if this behavior is implemented in hard-coded silicon, if it's firmware, or microcode, or the OS. In other words, is it always possible to disable this, so that for instance I can write on arbitrary memory address? Or pop from the stack indefinitely, wrapping around the virtual memory space? Or being it hard-wired, cannot be disabled in certain cases/for certain processors?
Asked
Active
Viewed 18 times