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