avr-gcc-list
[Top][All Lists]
Advanced

[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
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]