This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Run Redboot from flash
- From: "Ricardo Andrino" <ricardo_andrino at web dot de>
- To: "GaryThomas" <gary at mlbassoc dot com>
- Cc: ecos-discuss at sources dot redhat dot com, "NickGarnett" <nickg at ecoscentric dot com>
- Date: Thu, 11 Dec 2003 17:18:08 +0100
- Subject: Re: [ECOS] Run Redboot from flash
- Organization: http://freemail.web.de/
Hello again,
I have built a RAM application for the EB40A (RAM startup, easy i think) and i have differents directories for the RAM application and the redboot image(RAM startup too).All seem to be good configured ( as described in the manuals). The only thing i ccan suggest is to take a look to the linker file.I am really confused.
Thanks a lot
My taget.ld is as follow:
***************************************************************************
STARTUP(vectors.o)
ENTRY(reset_vector)
INPUT(extras.o)
GROUP(libtarget.a libgcc.a libsupc++.a)
MEMORY
{
ram : ORIGIN = 0x00000000, LENGTH = 0x40000
}
SECTIONS
{
.debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } .note.arm.ident 0 : { KEEP (*(.note.arm.ident)) }
.fixed_vectors 0x20 : { . = .; KEEP (*(.fixed_vectors)) } > ram
.rom_vectors 0xc000 : { __rom_vectors_vma = ABSOLUTE(.); . = .; KEEP (*(.vectors)) } > ram __rom_vectors_lma = LOADADDR(.rom_vectors);
.text ALIGN (0x4) : { _stext = ABSOLUTE(.); PROVIDE (__stext = ABSOLUTE(.)); *(.text*) *(.gnu.warning) *(.gnu.linkonce.t.*) *(.init) *(.glue_7) *(.glue_7t) } > ram _etext = .; PROVIDE (__etext = .);
.fini ALIGN (0x4) : { . = .; *(.fini) } > ram
.rodata ALIGN (0x4) : { . = .; *(.rodata*) *(.gnu.linkonce.r.*) } > ram
.rodata1 ALIGN (0x4) : { . = .; *(.rodata1) } > ram
.fixup ALIGN (0x4) : { . = .; *(.fixup) } > ram
.gcc_except_table ALIGN (0x4) : { . = .; *(.gcc_except_table) } > ram
.data ALIGN (0x4) : { __ram_data_start = ABSOLUTE (.); *(.data*) *(.data1) *(.gnu.linkonce.d.*) . = ALIGN (4); KEEP(*( SORT (.ecos.table.*))) ; . = ALIGN (4); __CTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.); __DTOR_LIST__ = ABSOLUTE (.); KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.); *(.dynamic) *(.sdata*) *(.gnu.linkonce.s.*) . = ALIGN (4); *(.2ram.*) } > ram __rom_data_start = LOADADDR (.data); __ram_data_end = .; PROVIDE (__ram_data_end = .); _edata = .; PROVIDE (edata = .); PROVIDE (__rom_data_end = LOADADDR (.data) + SIZEOF(.data));
.bss ALIGN (0x4) : { __bss_start = ABSOLUTE (.); *(.scommon) *(.dynsbss) *(.sbss*) *(.gnu.linkonce.sb.*) *(.dynbss) *(.bss*) *(.gnu.linkonce.b.*) *(COMMON) __bss_end = ABSOLUTE (.); } > ram
__heap1 = ALIGN (0x8);
. = ALIGN(4); _end = .; PROVIDE (end = .);
}
***************************************************************************
Gary Thomas <gary@mlbassoc.com> schrieb am 11.12.03 16:34:14:
>
> On Thu, 2003-12-11 at 08:30, Ricardo Andrino wrote:
> > Please see my comments below
> > Thanks
> >
> > Gary Thomas <gary@mlbassoc.com> schrieb am 11.12.03 15:09:45:
> > >
> > > On Thu, 2003-12-11 at 06:57, Ricardo Andrino wrote:
> > > > Hello and thank you again, I will do what you say.
> > > > Now i am running redboot fron RAM and try to run the hello program. I have made the following:
> > > >
> > > > 1)Convert the elf image (with no extension or .elf or .exe) to Binary (.bin) image:
> > > > for ARM:
> > > > $arm-elf-objcopy -O binary hello hello.bin
> > > >
> > > > 2)Open terminal:
> > > > for Linux: Open minicom
> > > > $ minicom
> > > >
> > > > 3)Set the baud rates & other Uart parameters:
> > > > usualy 38400 baud + 8bits + no parity + no handshake. Hardware and Software flow control NO.
> > > >
> > > > 4)RedBoot> load -r -m xmodem -b 0x000200c0 ( first memory zone available after download redboot_RAM.elf)
> > > >
> > > > 5)After issuing the command send the .bin file using XMODEM protocol:
> > > > for Linux (minicom):
> > > > issue send file command <Cntl+A, S>, select "send xmodem", type the path to the file (.bin) & send
> > > >
> > > > 6)At the Redboot prompt "RedBoot> " issue the 'go' command:
> > > > RedBoot> go 0x20100( after 40 position for vectors, i am not sure about this, should be 0x000200c0?)
> > > >
> > > > I should see the application running & the outputs on the terminal window but no output is diplayed but the led D3 light.........(EB40A)
> > > >
> > > > I have made correct the redboot_RAM.elf, connecto to redboot, a hello RAM aplication etc, etc....
> > > >
> > > > Any ideas?
> > >
> > > This doesn't work because the eCos application will be linked to run
> > > at 0x20000, but you've loaded it to 0x200C0. If your RedBoot is truly
> > > using all of that RAM, you'll need to adjust the memory layout for RAM
> > > applications to start higher.
> >
> > >
> > > Much simpler would be to tune your RedBoot so that it's memory use is
> > > less. There are a number of simple things that you can do to help this.
> > > Try reducing the number of history lines - that should get it down
> > > quickly.
> > ***************************************************************************
> > Now I have downloaded redboot_RAM.elf file( i have followed your instructions) and the avalible memory is (0x0001f0a0-0x000400000) so i could run a Ram program from 0x00020000 couldn't i? But i load the .bin file instead the .elf file ( RedBoot> load -r -m xmodem -b 0x00020000) and no output is displayed too.
> > ****************************************************************************
> > > Also, don't load ELF images (I assume that's what you tried) with -r.
> > > This option tells RedBoot not to interpret the image at all. What you
> > > ended up doing was executing the ELF header - not exactly ARM code!
> > > If things are set up correctly, you should be able to just:
> > > RedBoot> load -m xm
> > > ... send file
> > > RedBoot> go
> > ****************************************************************************
> > If i do that ( download the ELF file instead the .bin) the download is interrupted and display the following message: Attempt to load ELF data to address :0x00008054 whih is not in RAM
> > ***************************************************************************
> > How could i change the traget.ld to run the aplications in higher address?
>
> You shouldn't need to now.
>
> The fact that you are getting this error tells all! The program is not
> configured to be a RAM eCos application. My guess is that you tried to
> use the ROM RedBoot configuration for this. You need to create a
> completely new build tree for your RAM application, separate from the
> one that you used to build RedBoot.
>
> > > >
> > > > Thanks in advance.
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Nick Garnett <nickg@ecoscentric.com> schrieb am 11.12.03 12:35:45:
> > > > >
> > > > > <ricardo_andrino@web.de> writes:
> > > > >
> > > > > > Hello,
> > > > > >
> > > > > > I have built redboot (RAM start up mode) and i have followed
> > > > > > all the instructions for EB40A board.All run correct but after
> > > > > > programming the flash memory( fi wr -f 0x01100000 -b %{FREEMEMLO} -l
> > > > > > 0x10000), the Prompt Redboot> doesn't allow me to type any command
> > > > > > (hangs up)and when i set JP1 to the user position and make a reset,
> > > > > > all leds light and redboot doesn't allow me to type any command
> > > > > > too. Any idea?
> > > > > >
> > > > > > Once Redboot is good installed in flash the way to run it is typing
> > > > > > minicom and a redboot prompt must on the screen?
> > > > > >
> > > > >
> > > > > If you are seeing RedBoot output the prompt then it should be ready to
> > > > > accept input. It is very rare for one direction to work and the other
> > > > > not. Check that minicom is not set up to expect hardware flow
> > > > > control. Presumably you loaded a RAM RedBoot via Angel and then
> > > > > downloaded and flashed the ROM RedBoot using that. If the RAM RedBoot
> > > > > worked I cannot see why the ROM one fails. Try rebuilding the ROM
> > > > > RedBoot from scratch, in a clean directory, it's a longshot but maybe
> > > > > it was misconfigured in some way.
> > > > >
> > > > >
> > > > > --
> > > > > Nick Garnett eCos Kernel Architect
> > > > > http://www.ecoscentric.com The eCos and RedBoot experts
> > > > >
> > > > >
> > > > > --
> > > > > Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
> > > > > and search the list archive: http://sources.redhat.com/ml/ecos-discuss
> > > > >
> > > >
> > > >
> > > > ______________________________________________________________________________
> > > > WEB.DE FreeMail wird 5 Jahre jung! Feiern Sie mit uns und
> > > > nutzen Sie die neuen Funktionen http://f.web.de/features/?mc=021130
> > > --
> > > Gary Thomas <gary@mlbassoc.com>
> > > MLB Associates
> > >
> >
> >
> > ______________________________________________________________________________
> > Horoskop, Comics, VIPs, Wetter, Sport und Lotto im WEB.DE Screensaver1.2
> > Kostenlos downloaden: http://screensaver.web.de/?mc=021110
> --
> Gary Thomas <gary@mlbassoc.com>
> MLB Associates
>
>
> --
> Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
> and search the list archive: http://sources.redhat.com/ml/ecos-discuss
>
______________________________________________________________________________
WEB.DE FreeMail wird 5 Jahre jung! Feiern Sie mit uns und
nutzen Sie die neuen Funktionen http://f.web.de/features/?mc=021130
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss