This is the mail archive of the ecos-discuss@sources.redhat.com 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: Run Redboot from flash


On Fri, 2003-12-12 at 02:35, Ricardo Andrino wrote:
> Hello, 
> I have success installed the Redboot on flash, run good and i have tried agian to run the hello program with this new enviorment.Now the RAM memory map is 0x0000000-0x00040000, 0x0000a960-0x00040000 available). So what i don't understand is why when i type this:
> Redboot>load -m xmodem
> Send my hello (compiled and linked when a RAM startup mode)
> Redboot>go
> i send the same message as before "!Attempt to load ELF data to address :0x00008054 whih is not in RAM. Why this address? It's not suppose that should it beginn at 0x00020000?Where can i see this?(vectors.o ?).
> 
> Below can you see the target.ld file
> 
> Thanks in advance and sorry for ask this again. 

Try running some of the standard tests and see if that works.
Do this in a whole new directory:
  % mkdir /tmp/test_eb40a
  % cd /tmp/test_eb40a
  % ecosconfig new eb40a
  % ecosconfig tree
  % make
  % make -C hal/common/current tests

Now, try running "install/tests/hal/common/current/tests/basic"
and see what happens.

> 
> 
> "Ricardo Andrino" <ricardo_andrino@web.de> schrieb am 11.12.03 17:18:37:
> > 
> > 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
> > 
> 
> 
> ______________________________________________________________________________
> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]