[ECOS] [ixdp425/RedBoot] How to start eCos binary?

Karel Gardas kgardas@objectsecurity.com
Mon Aug 8 18:28:00 GMT 2005


Hello,

I do have linksys NSLU2, which is basically Intel's ixdp425 striped down 
platform. I've bought this to experiment with embedded programming and 
eCos. Now I have final binary which works great when started from Insight 
debugger or directly from arm-elf-gdb connected to NSLU2, but I'm not able 
to load and start this binary while using board's RedBoot.

The start in gdb looks:

$ arm-elf-gdb /tftpboot/hello.xs
GNU gdb 6.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=x86_64-unknown-linux-gnu --target=arm-elf"...(no debugging symbols found)...
(gdb) tar rem 192.168.0.1:9000
Remote debugging using 192.168.0.1:9000
0x00018014 in ?? ()
(gdb) load
Loading section .rom_vectors, size 0x40 lma 0x80000
Loading section .text, size 0xe990 lma 0x80040
Loading section .rodata, size 0x384 lma 0x8e9d0
Loading section .data, size 0x3a0 lma 0x8ed54
Start address 0x80040, load size 61684
Transfer rate: 493472 bits/sec, 316 bytes/write.
(gdb) cont
Continuing.
[New Thread 2]

<and binary runs well>


When I try to do as I think the same in RedBoot, it does nothing:

# telnet 192.168.0.1 9000
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
RedBoot> load -v -r -b 0x80000 -h 192.168.0.2 hello.xs
Using default protocol (TFTP)
-
Raw file loaded 0x00080000-0x00097887, assumed entry at 0x00080000
RedBoot> go 0x80040


The question is: do I interpret data about loading provided by gdb and 
also obtained from `readelf' utility, i.e. 0x80000 as a target 
loading address and 0x80040 as a starting address well?

BTW: readelf output looks:

$ arm-elf-readelf -l /tftpboot/hello.xs

Elf file type is EXEC (Executable file)
Entry point 0x80040
There are 1 program headers, starting at offset 52

Program Headers:
   Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
   LOAD           0x008000 0x00080000 0x00080000 0x0f0f4 0x133f4 RWE 0x8000

  Section to Segment mapping:
   Segment Sections...
    00     .rom_vectors .text .rodata .data .bss


Thanks,
Karel
--
Karel Gardas                  kgardas@objectsecurity.com
ObjectSecurity Ltd.           http://www.objectsecurity.com

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



More information about the Ecos-discuss mailing list