I ma newbie in ARM world. I am have basic background working with AVR controllers. AVR has separate physical memory blocks (like EEPROM, FLASH, Data). It is very easy to find a lot of tutorials explaining memory model for AVR.

But I cannot find any good explanation of memory model for ARM (ARM7 in my case). I want to understand how this memory is located physically. As I can guess there are two types of memory in ARM - Flash (for firmware) and General Memory for all other data. ARM is mostly 32bit so it can address up to 4GB of data, but of course ARM SoC has much less amount of memory, but it is possible to attach external devices.

So explain or provide good article where ARM memory model explained and will help to find answers for such questions. 1. What happens after power on of ARM processor (AFAIK it starts to process RESET interrupt handler) how programm is fetched from MEMORY (where this memory from physical and logical perspective). 2. I understand that it is single chip, but memory can be located near CPU (like in x86 architecture SRAM caches and so on) other memory can be connected via the bust with CPU. 3. As I know most ARMs are based on Von Neuman architecture, does is strictly follow this architecture ?

Thank you for help in advance.


closed as too broad by Voltage Spike, Daniel Grillo, Bence Kaulics, ThreePhaseEel, jonk Nov 14 '16 at 7:57

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    \$\begingroup\$ Pretty much any ARM CPU documentation explains all this for that specific CPU. \$\endgroup\$ – Brian Drummond Oct 29 '16 at 16:29

ARM, even ARM7, is a very broad design. Documentation for the common parts can be found in ARMinc's documents, or in general books like Furber.

Details about a specefic chip (like its memory map) are to be found in the manufacturers documents, often split between a datasheet and a user manual.

When an ARM7 start from a reset, it loads the first interrupt vector (the word at address 0) into the PC. That's all, after that it is up to the code.

ARM7 is a CPU design (with some things around the CPU). This design is put in a chip by a manufacturer, along with anything he wants to include. Hence it depends on the specific chip whether all memory and peripherals are on the chip, external to the chip, or a combination.


Not the answer you're looking for? Browse other questions tagged or ask your own question.