[ECOS] Run Redboot from flash

Gary Thomas gary@mlbassoc.com
Fri Dec 12 12:32:00 GMT 2003


On Fri, 2003-12-12 at 05:05, Ricardo Andrino wrote:
> Here is..
> thanks
> 
> ****************************************************************************
> basic:     file format elf32-littlearm
> 
> Sections:
> Idx Name          Size      VMA       LMA       File off  Algn
>   0 .debug_aranges 00001528  00000000  00000000  0000ad00  2**0
>                   CONTENTS, READONLY, DEBUGGING
>   1 .debug_pubnames 00003680  00000000  00000000  0000c228  2**0
>                   CONTENTS, READONLY, DEBUGGING
>   2 .debug_info   0006444c  00000000  00000000  0000f8a8  2**0
>                   CONTENTS, READONLY, DEBUGGING
>   3 .debug_abbrev 00009f5c  00000000  00000000  00073cf4  2**0
>                   CONTENTS, READONLY, DEBUGGING
>   4 .debug_line   00015094  00000000  00000000  0007dc50  2**0
>                   CONTENTS, READONLY, DEBUGGING
>   5 .debug_frame  000039cc  00000000  00000000  00092ce4  2**2
>                   CONTENTS, READONLY, DEBUGGING
>   6 .debug_str    00009032  00000000  00000000  000966b0  2**0
>                   CONTENTS, READONLY, DEBUGGING
>   7 .fixed_vectors 00000140  00000020  00000020  0009f700  2**5
>                   CONTENTS, READONLY
>   8 .rom_vectors  00000040  0000c000  0000c000  00004000  2**0
>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>   9 .text         00006628  0000c040  0000c040  00004040  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, CODE
>  10 .fini         00000000  00012668  00012668  0009f840  2**0
>                   CONTENTS
>  11 .rodata       000003ec  00012668  00012668  0000a668  2**2
>                   CONTENTS, ALLOC, LOAD, READONLY, DATA
>  12 .rodata1      00000000  00012a54  00012a54  0009f840  2**0
>                   CONTENTS
>  13 .fixup        00000000  00012a54  00012a54  0009f840  2**0
>                   CONTENTS
>  14 .gcc_except_table 00000000  00012a54  00012a54  0009f840  2**0
>                   CONTENTS
>  15 .data         000002ac  00012a54  00012a54  0000aa54  2**2
>                   CONTENTS, ALLOC, LOAD, DATA
>  16 .bss          00004284  00012d00  00012d00  0000ad00  2**5
>                   ALLOC
>  17 .debug_ranges 000003b0  00000000  00000000  0009f840  2**0
>                   CONTENTS, READONLY, DEBUGGING
> 
> ***************************************************************************
> 

Are you sure that this is the program you tried to load?  In particular,
from the map above you can see that it will only load into locations
  0xc000..0xc03f, 0xc040..0x12667, 0x12668..0x12a53, 0x12a54..0x12cff
There's nothing in there in the area of 0x8054.

> 
> 
> 
> Gary Thomas <gary@mlbassoc.com> schrieb am 12.12.03 12:53:51:
> > 
> > On Fri, 2003-12-12 at 04:51, Ricardo Andrino wrote:
> > > Hello,
> > >  I have followed your instructions and the same error occurred.
> > 
> > Please send the output from:
> >   % arm-elf-objdump -h install/tests/hal/common/current/tests/basic
> > 
> > > 
> > > Thanks
> > > Gary Thomas <gary@mlbassoc.com> schrieb am 12.12.03 12:36:37:
> > > > 
> > > > 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
> > > > 
> > > 
> > > 
> > > ______________________________________________________________________________
> > > 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
> > 
> > 
> > -- 
> > 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


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



More information about the Ecos-discuss mailing list