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