The cyg_package_start() allows individual packages to do their initialization before the main user program is invoked.
Two of the packages shipped with this release of eCos have code in the default cyg_package_start(): the µITRON and the ISO standard C library compatibility packages (see Chapter 6 and Part IV in eCosTM Reference Manual).
The infrastructure package has configuration options CYGSEM_START_UITRON_COMPATIBILITY and CYGSEM_START_ISO_C_COMPATIBILITY which control specialized initialization.
You can override the default cyg_package_start() routine by providing your own function by the same name with the following prototype:
void cyg_package_start
(void);but you should be careful to initialize the default packages (if you are using them). An example user-supplied function might look like:
void cyg_package_start(void) { #ifdef CYGSEM_START_UITRON_COMPATABILITY cyg_uitron_start(); /* keep the µITRON initialization */ #endif my_package_start(); /* make sure I initialize my package */ } |
Note: If you are supplying your own definition of this function from a C++ file, make sure it has “C” linkage.