I am trying to add a version number to my program, to be located at an
absolute flash address.
But it looks like I can't get avr-objcopy to copy the section that I have
put this data in.
I have in my .C file:
asm(" .section .version,\"x\"\n"
"optboot_version: .word " MAKEVER(OPTIBOOT_MAJVER, OPTIBOOT_MINVER)
"\n"
" .word 0x1234\n"
" .section .text\n");
And then I link with (for example):
LDSECTIONS = -Wl,--section-start=.text=0x3e00
-Wl,--section-start=.version=0x3ffc
this seems to produce a correct .elf file:
optiboot_diecimila.elf: file format elf32-avr
>
> Sections:
> Idx Name Size VMA LMA File off Algn
> 0 .text 000001d6 00003e00 00003e00 00000054 2**1
> CONTENTS, ALLOC, LOAD, READONLY, CODE
> 1 .version 00000004 00003ffc 00003ffc 0000022a 2**0
> CONTENTS, READONLY, CODE
> :
>
> Contents of section .text:
> 3e00 112484b7 14be81ff d3d085e0 80938100 .$..............
> 3e10 82e08093 c00088e1 8093c100 86e08093 ................
> 3e20 c20080e1 8093c400 8ee0bcd0 259a86e0 ............%...
> 3e30 20e33cef 91e03093 85002093 840096bb .<...0... .....
> 3e40 b09bfecf 1d9aa895 8150a9f7 99249394 .........P...$..
> 3e50 a5e0aa2e f1e1bf2e 9dd08134 21f481e0 ...........4!...
> 3e60 b2d083e0 1fc08234 11f484e1 03c08534 .......4.......4
> :
> Contents of section .version:
> 3ffc 02043412 ..4.
> Contents of section .debug_aranges:
> 0000 24000000 02000000 00000400 00000000 $...............
>
>
But objcopy seems to not include this section in output files, producing an
empty hex file (data wise):
BillW-MacOSX-2<8748> /sw/cross/bin/avr-objdump -sh optiboot_diecimila.elf |
> less
> BillW-MacOSX-2<8748> /sw/cross/bin/avr-objcopy -j .version -O ihex
> optiboot_diecimila.elf foo.hex
> BillW-MacOSX-2<8749> more foo.hex
> :0400000300003E00BB
> :00000001FF
>
Am I missing something obvious or is this some subtle bug to be tracked
down?
Thanks
WestfW
_______________________________________________
AVR-GCC-list mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list