RTEMS with post-boot code.
Joel Sherrill
joel at oarcorp.com
Wed Oct 29 13:16:09 UTC 1997
> In DOS systems (and for that matter, Unix kernels) this is not quite how it
> works. There is a jump table, but its location (TableBaseAddress) is not known
> to the program (nor should it be: fixed addresses for software structures
> are a very bad idea). Instead, the OS routine is called by using a TRAP or
> INT instruction (the (in)famous "INT 21" in DOS), with the index into the
> table and the function arguments passed in registers or in a buffer somewhere.
The file rtems.s in every cpu port directory is intended to support this
type of system although I do not know that anyone has used it on any port
in recent memory.
> I'm just not quite sure what you are trying to acheive--smaller program
> executables? Avoiding linking against large libraries? To really achieve these
> you would have to treat not only the RTEMS functions but most of the C library
> in this way, otherwise your programs will not get much smaller. This would
> be a lot of work, and would slow down execution speed.
I think something easy could be done using the "ld" option I mentioned
earlier. I looked at this option a while back and decided it could be
made to do this although I have not had a need to investigate it further.
--joel
More information about the users
mailing list