Memory model of Arduino


I have no experience about micro-controller platforms but OS based platforms.

Could anyone give me an idea about any different in memory management between two?

What are not applicable in micro-controller world but OS kind of a comparison.

There is no memory manager on the AVR microcontroller.
There are no page-faults, no out-of-bounds exceptions, no user/supervisor memory spaces.
This may not be true of all microcontroller architectures.

microcontroller - 3 memory types; flash, SRAM, eeprom. Flash holds bootloader and application program. Limited amounts of all 3 due to bus size, 8 bit wide, 256K deep. Intended for embedded applications. Can add extra storage via SPI interface to SD/uSD cards, serial memory chips.

microprocessor - all memory is offchip. 8/16/32/64 bit bus width, virtually unlimited depth. Many support chips control peripheral devices; video card, USB interface, hard drives, DRAM memory, etc.

Programming a microcontroller is similar to programming a single application in a full OS.

The microcontroller has one stack, one heap, and more importantly, one process.

On some more powerful microcontrollers it is possible to run an operating system, in which case it becomes more like a full computer - albeit one with hardly any RAM.

And don't forget, usually microprocessors are von Neumann architectures, but many microcontrollers (including AVR) are Harvard.