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



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.

arm-none-eabi-objdump -h app.elf | grep LOAD -B1

  0 .rom_vectors  00000008  64008000  64008000  00000098  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .ARM.extab    0000003c  64008008  64008008  000000a0  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  2 .ARM.exidx    000000c8  64008048  64008048  000000e0  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .text         0000595c  64008110  64008110  000001a8  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  4 .rodata       00000204  6400da70  6400da70  00005b08  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
--
  6 .data         000002a8  6400dc80  6400dc80  00005d10  2**3
                  CONTENTS, ALLOC, LOAD, DATA

2. Check Entry point address with readelf command. In my case Entry point address: 0x64008111

arm-none-eabi-readelf -h app.elf
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x64008111
  Start of program headers:          52 (bytes into file)
  Start of section headers:          24700 (bytes into file)
Flags: 0x5000002, has entry point, Version5 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         3
  Size of section headers:           40 (bytes)
  Number of section headers:         12
  Section header string table index: 11

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


Oleg



On Wed, 15 Oct 2014, Oleg Uzenkov wrote:

For binaries you have to know the first LMA address (rom_vectors
address) to specify that address on a command line.

For binary image

    load -m x -r -b <LMA>
    fis create -b <LMA> <name>
Please, let me know what do you think of this:

1) I have built app.elf and app.bin for *RAM* startup
(SECTION_rom_vectors: LMA == 0x64008000 ) (memory layout is
mlt_cortexm_stm32x0g_eval_ram.ldi)

2) I can successfuly run app.elf under redboot (i.e. >load -m x; >go)

3) When I load app.bin like this:
load -m x -r -b 0x64008000
go 0x64008000
or
go
RedBoot 'load' command does stat info about 'Entry point'. For example
on my ARM target

   RedBoot> load -m y
   Entry point: 0x81008040, address range: 0x81008000-0x81013890
   xyzModem - CRC mode, 627(SOH)/0(STX)/0(CAN) packets, 2 retries
   RedBoot>

Load address 0x81008000 and entry point (LMA of .text) is 0x81008040.

If I load a binary, I got something likes this

   RedBoot> load -m y -r -b 0x81008000
   CRaw file loaded 0x81008000-0x8101388f, assumed entry at 0x81008000
   xyzModem - CRC mode, 372(SOH)/0(STX)/0(CAN) packets, 3 retries
   RedBoot>

RedBoot has no clue where start from (it can guess only, 'assumed
entry')

 From your old message

   http://ecos.sourceware.org/ml/ecos-discuss/2014-10/msg00007.html

I see that after loading PC register will be set to 0x64008110, so try

   RedBoot> go 0x64008110

I get rubbish ($T080f:00800064;0d:e8cf1b64;)
Connect GDB to get it.

(i also tried to create fis and load and run image from fis, same
result, i.e.
fis create -b 0x64008000 app; >fis load app; >go)
any ideas where I am wrong?
See/try above.

Did anyone manage to execute .bin file from Redboot?
It should work.

HTH

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]