This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Possible bug; code-block vanishes when adding one assembler-instruction.
- From: Jens Bauer <jens-lists at gpio dot dk>
- To: Richard Sandiford <rdsandiford at googlemail dot com>
- Cc: binutils at sourceware dot org
- Date: Thu, 9 May 2013 20:36:39 +0200
- Subject: Re: Possible bug; code-block vanishes when adding one assembler-instruction.
- References: <20130507122903314912 dot 0457de47 at gpio dot dk> <87sj1xv0bs dot fsf at talisman dot default> <20130508213144132481 dot 9400973e at gpio dot dk> <877gj83448 dot fsf at sandifor-thinkpad dot stglab dot manchester dot uk dot ibm dot com> <20130509113822748942 dot 6df40120 at gpio dot dk> <87sj1w1nt4 dot fsf at sandifor-thinkpad dot stglab dot manchester dot uk dot ibm dot com>
On Thu, 09 May 2013 10:53:59 +0100, Richard Sandiford wrote:
>> As I understand it, -d disassembles all the executable sections, but I
>> can't seem to find out how to mark a section 'executable' either.
>
> Using:
>
> .section .fastcode, "ax", @progbits
>
> rather than:
>
> .section .fastcode
>
> ought to do the trick.
Hmm.. I get an error, when I try to build the code with...
.section .fastcode, "ax", @progbits
...It doesn't like the extra parameters:
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -x assembler-with-cpp -I./src/ -I"../lpc175x_6x/Core/Device/NXP/LPC17xx/Include/" -I"../lpc175x_6x/Core/CMSIS/Include/" -I"../lpc175x_6x/Drivers/include/" -I. -D__BUILD_WITH_EXAMPLE__=1 -c src/fastcode.S -o src/fastcode.o
src/fastcode.S: Assembler messages:
src/fastcode.S:3: Error: junk at end of line, first unrecognized character is `,'
make: *** [src/fastcode.o] Error 1
>> -I've also included the .map, the .dis and the .bin files, just in case
>> they can provide additional information.
>> I just made a .diff on the .dis files; it seems that the label of the
>> interrupt routine differs.
>> In one file, it's named _edata, in the other, it's named _sfastcode.
>> -So after all, there might be a difference in the .elf file too...
>>
>> Fastcode-test1.dis:
>> Disassembly of section .fastcode:
>>
>> 10000000 <_edata>:
>> 10000000: 6001 str r1, [r0, #0]
>> 10000002: f241 2034 movw r0, #4660 ; 0x1234
>> 10000006: f2c5 6078 movt r0, #22136 ; 0x5678
>> 1000000a: 4770 bx lr
>>
>> Fastcode-test2.dis:
>> Disassembly of section .fastcode:
>>
>> 10000000 <_sfastcode>:
>> 10000000: f241 2034 movw r0, #4660 ; 0x1234
>> 10000004: f2c5 6078 movt r0, #22136 ; 0x5678
>> 10000008: 4770 bx lr
>> ...
>>
>> ...It may just be a side-effect, though.
New information:
I sat back and started thinking... The reason I started looking into this, was because I was flashing the microcontroller with an .ELF file.
As I did not get the results I expected, I started dumping the contents of RAM on my LEDs. I got only 0xffff-instructions, which meant that the code was not there.
Notice: I use the .elf for flashing, not the .hex-file.
This again suggests that the problem is with the .elf file.
-So objcopy may behave correctly after all; although my code is being stripped away.
> Thanks, I'll take a look (might not be till the weekend).
I'm grateful that you're looking into it. :)
Love
Jens