/****************************************************************************** FILE : startcf.h PURPOSE : startup code for ColdFire LANGUAGE: C Notes: 1) Default entry point is _startup. . disable interrupts . the SP is set to __SP_AFTER_RESET . SP must be initialized to valid memory in case the memory it points to is not valid using MEMORY_INIT macro 2) __initialize_hardware is called. Here you can initialize memory and some peripherics at this point global variables are not initialized yet 3) After __initialize_hardware memory is setup; initialize SP to _SP_INIT and perform needed initialisations for the language (clear memory, data rom copy). 4) void __initialize_system(void); is called to allow additional hardware initialization (UART, GPIOs, etc...) 5) Jump to main */ /********************************************************************************/ #ifndef STARTCF_H #define STARTCF_H #ifdef __cplusplus extern "C" { #endif #include "support_common.h" extern unsigned long far __SP_INIT[]; extern unsigned long far __SP_AFTER_RESET[]; #ifndef MEMORY_INIT /* If MEMORY_INIT is set then it performs minimal memory initialization (to preset SP to __SP_AFTER_RESET, etc...) */ #define MEMORY_INIT #endif void _startup(void); #ifndef SUPPORT_ROM_TO_RAM /* * If SUPPORT_ROM_TO_RAM is set, _S_romp is used to define the copy to be performed. * If it is not set, there's a single block to copy, performed directly without * using the __S_romp structure, based on __DATA_RAM, __DATA_ROM and * __DATA_END symbols. * * Set to 0 for more aggressive dead stripping ... */ #define SUPPORT_ROM_TO_RAM 1 #endif /* format of the ROM table info entry ... */ typedef struct RomInfo { void *Source; void *Target; unsigned long Size; } RomInfo; /* imported data */ extern far RomInfo _S_romp[]; /* linker defined symbol */ #ifdef __cplusplus } #endif #endif