Can anyone tell me the meaning of Zero Initialized Data (ZI Data). Do they actually take up RAM maps. It would be best explained in practical point of view, ie is this global or local type of variable. I use Keil and Cortex-M0.
I declared variable within code that point to FLASH region as part of emulated ROM code. However according to the .map, it shown that ZI Data = 1024 Byte which is 8 * 128 = 1024 Byte. This lead to incorrect conclusion about RAM size as .map indicated.
EEEDATA_TYPE EEEFLASH[8] __attribute__((at(0x10007C00U))); //this instruct linker to align data to the specific FLASH location. Keil specfic.
Is there nice tutorial or PDF that explain how to use / meaning if RO, RW and ZI data and how to manage them where necessary.
http://www.keil.com/support/man/docs/armlink/armlink_Cdeffifa.htm http://www.keil.com/support/man/docs/armlink/armlink_Bhcghded.htm http://www.keil.com/support/man/docs/armlink/armlink_Cdeejjhi.htm
Local variables consume Stack; so the ZI is not for them.