Steve
2005-11-01 14:23:54 UTC
Hi all,
I am having some difficulty understanding how memory remapping is
carried out in the ARM926 core. I understand that upon boot, the CPU
reads data from Flash, or some non-volatile memory, that has been
mapped to address 0, and that after initialisation, it is generally the
case that the CPU remaps the memory regions so that the address 0 is
mapped to volatile memory, such as SRAM, so that the interrupt vectors
can be modified during execution.
The problem I am having is understanding the means with which this is
achieved. I have heard the term MMU and MPU banded about as the
solution to this problem but I'm wary about going down this avenue
because at the moment I'm really trying to minimise the complexity of
the software. Also, in the book I'm working from, ARM System
Developer's Guide (Blue book), the chapter on Firmware preceeds that on
the MMU and MPU, and it appears that the source code from it, which
does some mapping, does not refer to any of these blocks. Could someone
give me some pointers on how this is done?
Thanks,
Stephen Henry
I am having some difficulty understanding how memory remapping is
carried out in the ARM926 core. I understand that upon boot, the CPU
reads data from Flash, or some non-volatile memory, that has been
mapped to address 0, and that after initialisation, it is generally the
case that the CPU remaps the memory regions so that the address 0 is
mapped to volatile memory, such as SRAM, so that the interrupt vectors
can be modified during execution.
The problem I am having is understanding the means with which this is
achieved. I have heard the term MMU and MPU banded about as the
solution to this problem but I'm wary about going down this avenue
because at the moment I'm really trying to minimise the complexity of
the software. Also, in the book I'm working from, ARM System
Developer's Guide (Blue book), the chapter on Firmware preceeds that on
the MMU and MPU, and it appears that the source code from it, which
does some mapping, does not refer to any of these blocks. Could someone
give me some pointers on how this is done?
Thanks,
Stephen Henry