[ECOS] Using Redboot to load standalone application

Gary Thomas gary@mlbassoc.com
Wed Sep 27 01:39:00 GMT 2006


Brandon Eames wrote:
> Hi All,
> 
> I'm pretty much a newbie when it comes to RedBoot.  I have a commercial
> Arm9-based embedded board which runs RedBoot and Linux.  I'm trying to
> use Redboot to load a non-linux, stand-alone (i.e. no OS) application.
> I've compiled a gnu toolchain targeting the Arm9 processor (arm-elf
> target, gcc 4.01, binutils 2.17, newlib 1.14.0) and have built a small
> test program using the compiler.  I load the test program onto a compact
> flash card, boot the board to RedBoot, and load the test program into
> RAM (RedBoot>load -m disk hda1:TestProgram.out).  I'm not quite sure at
> this point whether I should use go or exec.  Unfortunately, neither
> work.
> When I type go, it displays the following text:
> $T050f:08812100;0d:eccffd01;#1d

Use GDB to interpret this data - from it you can get a PC (location),
register contents, traceback, etc.

> 
> After reading some of the archives, I guess this is possibly being
> generated by on-board debugging code?
> 
> If I load the program and type exec, the board just hangs.
> 
> If I understand things correctly, the go command is used to execute an
> ecos application.  The exec command is used to execute non-ecos
> applications such as linux kernels.  Apparently the MMU is turned off
> when running exec (I don't know if this is how all configurations of
> RedBoot work, or just the config for my board).
> 
> Any suggestions on what I may be doing wrong?  I'm pretty sure that my
> test app is writing to the serial port properly, as I've run basically
> the same code under the embedded linux kernel for the board and it
> executes as expected.

Exec is only for running a Linux kernel - it does lots of magic things
to keep Linux happy.

You should use 'go', but be aware that your application will be started
with interrupts enabled and it will be 100% responsible for everything
that the machine does.

The fact that your program works under Linux is pretty much irrelevant
once you start it using 'go'.

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