[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [avr-gcc-list] avr-objcopy not copying custom section...
From: |
Boyapati, Anitha |
Subject: |
RE: [avr-gcc-list] avr-objcopy not copying custom section... |
Date: |
Sat, 26 Feb 2011 20:22:22 +0800 |
➢ asm(" .section .version,\"x\"\n"
Actually, looking back, I don’t get the meaning of this. How can a section be
‘executable’ without being ‘allocatable’ in ELF?
Anitha
________________________________________
From: address@hidden [mailto:address@hidden On Behalf Of Bill Westfield
Sent: Friday, February 25, 2011 2:51 PM
To: address@hidden
Subject: [avr-gcc-list] avr-objcopy not copying custom section...
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