All these words become a little bit confusing to me as I am a newbie. I understand that bascially a microcontroller is processor + memory to store data(RAM) + data memory OR from where the instructions get executed(ROM/Flash) + Peripherals.
- How I am supposed to visualize the mapping?
- Is the mapping done on the RAM?
- If yes, Isn't it memory itself? How does the processor know about it?
- Is this mapping done when I switch on the Controller or is done by the person/Company that manufatured the controller?
if it is really a stupid question or a broad one, let me know. I would try to narrow in.
Best Answer
I think these terms are primarily used with microprocessors, rather than microcontrollers.
"Memory-mapped" I/O devices just appear as normal memory locations, and can be read or written by any instructions that can read or write normal data memory. Memory-mapped I/O can be used by any microprocessor.
Some microprocessors (Intel 8085 and relatives) have a separate address space for I/O device use, not part of the normal memory space, and a limited number of instructions to read from, or write to that address space. I/O devices using this space would be "IO Mapped".