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: Re: question of __RedBoot_IDLE_TAB__?


Grant Edwards wrote:
On 2008-01-31, Andrew Lunn <andrew@lunn.ch> wrote:
On Thu, Jan 31, 2008 at 12:16:50AM -0800, Billking wrote:
hello everybody:
I port redboot to a board based ARM7TDMI architecture,but I found pretty
confused about this classs struct "__RedBoot_IDLE_TAB__",because it have not
been initialised.But when running redboot it pricesely pointer to
net_io_test,how does redboot do it.
any explanation apprieciate!
Its magic!

Darned near.


Well, its just not common C. It uses the GNU linker and some GNU
extensions in gcc.

Take a look at:

hal/common/current/include/hal_tables.h

It's just plain brilliant. I've used that scheme on several other (non-eCos) projects, and it _very_ neatly solves the problem of keeping modules isolated while allowing an easy way for the modules to provide various "entry points" for the main system to use without the main system actually having to be aware at compile time of what modules are going to be present at run time.


Thanks (my idea, inspired by the Linux kernel).


The sad part is that for this to work, the module(s) have to
be available to the linker (hence libextras.a) which sort of
criples the ability of the selective linking process.


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