On Mon, 2006-03-20 at 06:10 -0700, Gary Thomas wrote: > On Mon, 2006-03-20 at 13:01 +0000, David Fernandez wrote: > > On Mon, 2006-03-20 at 05:38 -0700, Gary Thomas wrote: > > > On Mon, 2006-03-20 at 12:02 +0000, David Fernandez wrote: > > > > Hi there, > > > > > > > > I'm trying to compile applications to run in the redboot > > > > environment; > > > > but I couldn't find any good way in the eCos distribution. > > > > > > > > Following the eCos documentation in chapter 13 it seems that the > > > > Makefile there tries to link the entire redboot again with for example, > > > > hello.c (and there is a problem with -finit-priority that the redboot > > > > makefiles leave in ECOS_GLOBAL_CFLAGS in > > > > <INSTALL_DIR>/include/pkgconf/ecos.mak). > > > > > > > > Should I write my own linker script & makefile, or is there > > > > anything in > > > > eCos sources to achieve that? > > > > > > > > I've been looking to be able to use the C library in the > > > > applications > > > > too... but, as redboot does not provide a dynamic linker I was wondering > > > > if could it be relatively straightforward to modify language/c/... to > > > > get virtual vectors for all or some of the libc functions and modify the > > > > exec command to relocate elf objects. > > > > > > You're looking at this the wrong way - RedBoot provides a bootstrap > > > environment, suitable for downloading (and otherwise managing) *user* > > > applications. It is a special eCos program, using it's own template, > > > etc. > > > > > > User applications on the other hand, are built separately. This > > > often includes the basic C libraries, etc, based on the template > > > chosen. Once this application is built, it can be downloaded and > > > run _using_ RedBoot. > > > > > > Look at some simple examples: > > > http://www.mlbassoc.com/examples > > > > > > > Ok, I'll ask it this other way: Does eCos sources include just a C > > library with stdio working through the redboot HAL, and with heap > > support?, How do I get it built?, Can I link an application easily with > > that library into an elf file that I can load and execute from redboot? > > > > Did you even read the page(s) I pointed at? The answer to this question > is there :-)
Sorry for that, internet is a bit restricted in our company. > > > My intention is to modify redboot to get something more enhanced but > > without having multithreaded kernel. > > What other functionality do you want in RedBoot? If you're thinking you > need to make such changes just to have that functionality in user > applications, that's not the way eCos programs are built. For the most > part, eCos applications are self contained - all libraries, etc, are > linked directly into the application itself. It's only for a small > set of functions (e.g. diagnostic serial I/O) that RedBoot is used > via the virtual vector interface and even that can be easily disabled. > I see what you mean, at least for some of the examples in eCos. Lets say that I'm trying to replace or add some binary parts in my application without having to recompile and include a the common application code and/or a c library in each binary. I'm not sure at the moment if there could be a better approach to that just modifying a bit the linker script to have several code sections with the same virtual address and then extract these sections into separate files using some (unknown to me at the moment) especial option of some binutils tool, or just put a c library in the main application with virtual vectors linking to it and having a especial load option in the CLI that allows me to load and link a part of the application with those virtual vectors that provide the c library functions... I'm using redboot as the "main application" because it has most of the functionality that i need. If you know of something in the eCos build system or sources that could make that easy I'll appreciate it. Thank you anyway for your help... (I'll take a look at your web as soon as I get a chance...Promised :~) -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
