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: How to write a complicated bootloader?


On Sat, Jul 11, 2009 at 11:17:50AM +0200, Stanislav Meduna wrote:
> Hi,
> 
> I have a hardware with a complicated ethernet device that
> is not usable in a polled mode (or at least I don't have enough
> documentation to be able to use it in such a way). There
> is an OEM driver needing all kind of stuff (including eCos
> kernel) to run, that works fine in a regular application.
> 
> The hardware has a serial port, which is enough for debugging,
> but pain in the you know where for downloading our 2+ MB large
> binary over max. 115200 bps. In the field this serial port
> won't be available at all, so the only way to upgrade the device
> is via ethernet.
> 
> What I'd like to have is some kind of bootloader, that
> is able to
> - load the application via ethernet
> - manipulate the flash (application upgrade and at least
>   initialize the jffs, even better to access it filewise)
> - start the loaded application
> - support debugging the application at least over serial
>   line including the asynchronous ctrl-c support
>   (ethernet in a way of gdbserver would be nice, but
>   I imagine this can't be achieved in the eCos architecture
>   where the application and OS can't be really separated)

If your flash is big enough, which it probably is if you are using
jffs2, it might make sense to have two eCos applications, plus
redboot. One of your applications is your real applications. The other
is a "loader" application, which uses full eCos so you have access to
your ethernet via its poor driver. The loader application loads your
real application into RAM using tftp etc, and then writes it to flash.

> Is there any special magic in loading an application somewhere
> into memory and transfer control to it, while leaving the
> GDB stubs in the bootloader?

This should just work for any RAM applications, using the default
configuration. Basically, a ROM application, eg Redboot provides the
gdb stubs. A RAM application uses the stubs. 

    Andrew

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