[ECOS] Redboot hanging after "go" command

Sridhar k ksridhar231@gmail.com
Tue Oct 24 18:45:00 GMT 2006


Hi,
I have been using the startup type as RAM and  i h've loaded my redbot
image in external Flash [i h've onchip RAM stating @ 0x40000000 and
external RAM starting @ 0x81000000]

here is my RAM linker script (the path is
C:\cygwin\tmp\app1app1_install\include\pkgconf\mlt_arm_lpc2xxx_olpce2294_ram.ldi).
*********************************
#include <cyg/infra/cyg_type.inc>
MEMORY
{
    ram0 : ORIGIN = 0x40000000, LENGTH = 0x4000
    ram  : ORIGIN = 0x81000000, LENGTH = 0x100000
}

SECTIONS
{
    SECTIONS_BEGIN
    SECTION_fixed_vectors (ram0, 0x40000400, LMA_EQ_VMA)
    SECTION_rom_vectors (ram, 0x81010000, LMA_EQ_VMA)
    SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
    SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
    SECTIONS_END
}

Thanks for your time.

On 10/24/06, Gary Thomas <gary@mlbassoc.com> wrote:
> Sridhar k wrote:
> > Thanks for the reply..
> > am getting the follwoing if i dont use the option "-b XXX"
> >
> > RedBoot> load -m ymodem
> > CCBB*** Abort! Attempt to load S-record to address: 0x00000000, which is
> > not val
> > id
> > xyzModem - CRC mode, 2(SOH)/1(STX)/0(CAN) packets, 4 retries
> > RedBoot>
> >
> > By this , I think am certainly doing some thing wrong.please help me out
>
> Build your program for RAM startup - this should get it linked to an
> appropriate address.
>
> >
> > On 10/23/06, Gary Thomas <gary@mlbassoc.com> wrote:
> >> Sridhar k wrote:
> >> > Hi everyone,
> >> >
> >> > Am trying to load a simple hello world program after loading the
> >> > Redboot image into my LPCE2214 target(host is windows/cygwin).
> >> > The redboot image seems to be working fine.am able to ping the board
> >> > from the host and also i can ping the host from the target board
> >> > (from redboot prompt in terminal app). And here are the some redboot
> >> > command outputs for ref..
> >> >
> >> > *******************************
> >> > Non-certified release, version UNKNOWN - built 03:05:23, Oct  19 2006
> >> >
> >> > Platform: Olimex LPC-E2294 development board (ARM7TDMI)
> >> > Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.RedBoot(tm)
> >> > bootstrap and debug environment [ROM]
> >> > Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limitedrelease,
> >> > version UNKNOWN - built 03:05:23, Oct  19 2006
> >> >
> >> > RAM: 0x81000000-0x81100000, [0x8100cce0-0x810ed000] available
> >> >
> >> > Platform: Olimex LPC-E2294 development board (ARM7TDMI)
> >> > FLASH: 0x80000000 - 0x80100000, 16 blocks of 0x00010000 bytes each.
> >> > 2000, 2001,
> >> >
> >> >
> >> > RedBoot> fis list
> >> > Name              FLASH addr  Mem addr    Length      Entry point
> >> > RedBoot           0x80000000  0x80000000  0x00020000  0x00000000
> >> > FIS directory     0x800F0000  0x800F0000  0x0000F000  0x00000000
> >> > RedBoot config    0x800FF000  0x800FF000  0x00001000  0x00000000
> >> >
> >> > RedBoot>
> >> >
> >> > RedBoot> channel
> >> > Current console channel id: 0
> >> >
> >> >
> >> > *******************************
> >> > /* this is a simple hello world program */
> >> > #include <stdio.h>
> >> > #include <cyg/kernel/kapi.h>
> >> > #include <cyg/infra/diag.h>
> >> > #include <cyg/io/io.h>
> >> >
> >> > int main(void)
> >> > {
> >> >  diag_printf("Hello, eCos world!\n");
> >> >  return 0;
> >> > }
> >> > *******************************
> >> >
> >> > I h've compiled this hello.c using the Makefile from exapmles
> >> > directory and made the "hello.srec" from "hello.o" using the
> >> > arm-elf-objcopy.
> >> > I have loaded this hello.sre file using the folowing command from
> >> > windows hyperterminal redboot promt.
> >> >
> >> > *******************************
> >> > RedBoot> load -m ymodem -b 0x81010400
> >> > CCCAddress offset = 0x81010400
> >> > Entry point: 0x81010400, address range: 0x81010400-0x81010420
> >> > xyzModem - CRC mode, 2(SOH)/1(STX)/0(CAN) packets, 5 retries
> >> >
> >> > RedBoot>
> >> > RedBoot> go
> >> > *******************************
> >> > $ arm-elf-size hello.srec
> >> >   text    data     bss     dec     hex filename
> >> >      0      52       0      52      34 hello.srec
> >> >
> >> > after loading this when i give "go" command its hanging..its coming
> >> > out of this hang state only if i reset the target.
> >> > Please correct me if am doing any thing wrong.Please suggest.
> >> >
> >>
> >> Why are you forcing the address?  eCos programs are not position
> >> independent and the code needs to load at the address it was linked
> >> to run at.  Try the 'load' command without the '-b XXX' option and
> >> see what happens.
>
> --
> ------------------------------------------------------------
> Gary Thomas                 |  Consulting for the
> MLB Associates              |    Embedded world
> ------------------------------------------------------------
>

-- 
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