Re: redboot on STM3240G-EVAL board

Oleg Uzenkov <[email protected]> Fri, 17 Oct 2014 12:15:41 +0300
Newsgroups gmane.os.ecos.general
Message-ID <[email protected]>
> On Thu, 16 Oct 2014, Oleg Uzenkov wrote:
>
>> Thanks Sergei!
>>
>> I can confirm that loading and running .bin files works now ))
>>
>> For someone with the same problem here is a piece of information:
>>
>> 1. From objdump command below  we see that .rom_vectors section
>> address is 0x64008000 and .text section starts at 0x64008110.
> ...
>
> To be more precise, .text begins itself from 'reset_vector' address (it
> is public label). See arch's target.ld and vectors.S sources.
>
>> 2. Check Entry point address with readelf command. In my case Entry
>> point address:  0x64008111
> ...
>
> It is strange value as 0x64008111 is odd address, but 'reset_vector'
> address for your arch should be aligned on 2-bytes boundary. I believe
> that entry address is 0x64008110 or some even address. Try in GDB
>
>    (gdb) load
>    (gdb) print $pc
>    (gdb) print reset_vector
>
> or disassembly
>
>    % arm-eabi-objdump -d app.elf | more
>
> I think you see 0x64008110.
Yes, I you are right, this is what I see:

arm-none-eabi-gdb -b 115200 app.elf
(gdb) target remote /dev/ttyUSB0
(gdb) load
(gdb) print $pc
$1 = (void (*)()) 0x64008110

However, when I do:
 >go 0x640008110 in RedBoot it does not work!

it only works if I do:
 >go 0x640008111

I agree it is strange. It should be even address.

Do you know if it is possible to use gdb with binaries?
Only I was unable to do it.
arm-none-eabi-gdb -b 38400 ./app.bin
(gdb) target remote /dev/ttyUSB0
(gdb) load app.bin
"app.bin" is not an object file: File format not recognized
Perhaps, it can only works with ELF that contains symbols, where as .bin 
file is stripped of them.

Oleg

>> 3. Now load .bin
>>
>> RedBoot> load -m x -r -b 0x64008000
>> CRaw file loaded 0x64008000-0x6400df27, assumed entry at 0x64008000
>> xyzModem - CRC mode, 191(SOH)/0(STX)/0(CAN) packets, 5 retries
>> RedBoot>
>>
>> 4. Now run binary with:
>> RedBoot> go 0x64008111
> Just wondering, 'go 0x640008110' does not work?
>
> Sergei


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss