I am using Cygnal controller C8051F005 which has on chip external 2K memory. I defined one array as follows. xdata char mydata[1440]_at_0x97; In mydata array I am storing my data. But I observe that some initial part of the array is getting currupted. I am unable to know, how it gets currupted. Please let me know when I declare an array as mentioed above, does the compiler use the memory reserved for above array. If yes, then how should I solve this problem.