In a typical embedded system entire application code runs from flash memory. What about embedded system running embedded Linux?
When NXP MCIMX8QXP-CPU evaluation board running Android distribution boots from SD card, it looks like entire application code, kernel, Read only variables, read/write variables, boot code are copied from SD card to DRAM and code execution occurs on DRAM. Is that correct? If correct, why? Why doesn't embedded Linux based system run from non-volatile memory like SD card or flash?
I say this because when I look at the log in PC console, it tells me about 1.7GB of 3GB is available. This means about 1.3GB is used. And this 1.3GB is used by kernel code, rwdata, rodata, init, bss, etc.
3GB is size of DRAM. This means code execution is occurring in DRAM.