Dear Eric,

Thank you very much for your reply. I googled to see how I can use
-fdata-sections to achieve this. But couldnt find much information. Can
you please briefly explain how I can use -fdata-sections to enforce data
ordering in SRAM ?


----- Original Message ----
From: "Weddington, Eric" <[EMAIL PROTECTED]>
To: Raj Sharma <[EMAIL PROTECTED]>; avr-gcc-list@nongnu.org
Sent: Tuesday, May 20, 2008 1:06:25 PM
Subject: RE: [avr-gcc-list] Order of variables placed in .data and .bss sections



> -----Original Message-----
> From: 
> [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED]
> org] On Behalf Of Raj Sharma
> Sent: Tuesday, May 20, 2008 11:21 AM
> To: avr-gcc-list@nongnu.org
> Subject: [avr-gcc-list] Order of variables placed in .data 
> and .bss sections
> 
> Dear all,
> 
> Is there a way to force some order in the way variables 
> (global/static) are placed in .data and .bss sections ? For 
> example, let my program has 2 initialized global variables g1 
> and g2 and 5 uninitialized global variables u1,u2,u3,u4 and 
> u5. g1 and g2 are first placed in program memory after .text 
> section and __do_copy_data copies them to the starting 
> address in SRAM. u1 through u5 are not explictitly stored in 
> program memory but __do_copy_bss places them just after g1 
> and g2 in SRAM and zeroes them out. I want to know if I can 
> somehow specify the order of these variables, say  g1 
> followed by g2; then u3,u4,u5,u1,u2. 
> 
> I noticed that the order in which the variables are 
> declared/defined in C file or assembly file does not 
> correspond to the way they are placed in SRAM.
> 
> Thanks in advance,
> Raj

Hello Raj,

In theory it can be done, but you will have to use -fdata-sections, and
a customized linker script. You may also have to either, customize the
startup code in avr-libc, or have some custom code right after startup
that takes care of the .data initialization and .bss clearing yourself.

Why do you need to do this anyway?

I am working on incremental compiling/linking and I need the techniques to 
preserve maximum similarity between the old and new versions of the executable 
image.

Thanks,
Raj



      
_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to