This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: redboot on STM3240G-EVAL board



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]