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.
Solved! Go to Solution.
Hello Amer Naseem,
The kernel and required libraries are loaded on DRAM. I don’t think the Linux Kernel had support to run from non-volatile memory up until very lately and these versions are not available on the BSP Releases for the i.MX Processors.
You could have a very small kernel if you wished to limit the DRAM use. However, Android and other graphically intensive distributions do require large amounts of RAM.
I hope this helps!
Regards,
Hello Amer Naseem,
The kernel and required libraries are loaded on DRAM. I don’t think the Linux Kernel had support to run from non-volatile memory up until very lately and these versions are not available on the BSP Releases for the i.MX Processors.
You could have a very small kernel if you wished to limit the DRAM use. However, Android and other graphically intensive distributions do require large amounts of RAM.
I hope this helps!
Regards,