[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: |
Weddington, Eric |
Subject: |
RE: [avr-gcc-list] avr-objcopy not copying custom section... |
Date: |
Fri, 25 Feb 2011 07:04:58 -0700 |
First, you can probably do the same thing in your C file without resorting to
assembler, but doing it all in C.
Second, why do you need this information to go into a hex file? Can't you just
use the ELF file?
> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden On
> Behalf Of Bill Westfield
> Sent: Friday, February 25, 2011 2:21 AM
> 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
>