I’m curious about the difference between the memory initialized at the start and the memory accessed during debugging.
At the start, I would expect the memory to be filled from address 0. This is because exception handlers need to be placed there, and stack management usually starts from the lower addresses.
However, when I debug and check addresses, I often see registers (r0 – r12) holding repeated negative values.
-
Is this due to the memory being relocated for debugging mode?
-
Additionally, if I were to build from scratch, it seems inefficient. Could you explain the minimum setup required to build, run, and debug effectively? Any references or functionality details would be appreciated.