I have interfaced flash memory to my mega64 and created a section for this memory. I have some variables and two structures which are located in this memory. Initially I defined the variables first and then the structure. After linking I checked the map and list files and found that the first defined variable occupied the first memory location and so on. Later I moved the structure to the top and compiled again but this time the variables remained in the same old order (the structure should have occupied the first byte onwards). Why is this happening? If I need to put some variables in some fixed address in this memory how can I do it? Thanks in advance for your help.