This is the mail archive of the ecos-discuss@sourceware.org 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: Using Redboot to load standalone application


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


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