[ECOS] Use of ifdefs a hinderance for portability.

Robert Klinkhammer klink@mediaone.net
Mon Dec 14 03:43:00 GMT 1998

Having had significant experience in porting and 
supporting a commercial multiprocessor real-time operating system to a number of 
processor architectures, (as well as numerous SBC and devices), I am concerned 
about the amount of "#ifdefs" in the startup and platform code.  
(The HAL)
As developers port to numerous BSPs and 
processors, the use of #ifdefs will become unwieldy and complicated.  As I 
recall, one of the first iterations that we made was very similar to eCos 
HAL.  Our lives became a whole lot easier as we moved toward link-time 
configuration.  It requires a little more work to define the interfaces, 
but it is worth it.
For example, a possible 
solution for the reset and initialization of a processor and platform could 
    minimal processor 
        (ResetPlatform is linked in as a separate model and when finished, 
jumps back to PlatformResetFinished).
    Initialization continues and establishes a C-Runtime 
    with the following 
        hardware devices in a 
reset state.
interrupts disabled
caches invalidated and disabled.
Call Generic C startup and Initialization Routine.
        (This will further call 
"standard" BSP specific functions)
This way, an eCos 
configuration would be based on linking rather than conditional 
compilation.  Note that the purpose of the ResetPlatform "function" is 
to initialize the hardware to a known "reset" state, not to do a 
complete platform initialization.  Similar changes could also be made 
=========================================== Robert 
Klinkhammer Principal Software Engineer
klink@medaone.net http://people.ne.mediaone.net/klink

More information about the Ecos-discuss mailing list