1 /******************************************************************************
3 PURPOSE : startup code for ColdFire
8 1) Default entry point is _startup.
10 . the SP is set to __SP_AFTER_RESET
11 . SP must be initialized to valid memory
12 in case the memory it points to is not valid using MEMORY_INIT macro
13 2) __initialize_hardware is called. Here you can initialize memory and some peripherics
14 at this point global variables are not initialized yet
15 3) After __initialize_hardware memory is setup; initialize SP to _SP_INIT and perform
16 needed initialisations for the language (clear memory, data rom copy).
17 4) void __initialize_system(void); is called
18 to allow additional hardware initialization (UART, GPIOs, etc...)
22 /********************************************************************************/
32 #include "support_common.h"
34 extern unsigned long far __SP_INIT[];
35 extern unsigned long far __SP_AFTER_RESET[];
39 /* If MEMORY_INIT is set then it performs
40 minimal memory initialization (to preset SP to __SP_AFTER_RESET, etc...)
48 #ifndef SUPPORT_ROM_TO_RAM
50 * If SUPPORT_ROM_TO_RAM is set, _S_romp is used to define the copy to be performed.
51 * If it is not set, there's a single block to copy, performed directly without
52 * using the __S_romp structure, based on __DATA_RAM, __DATA_ROM and
55 * Set to 0 for more aggressive dead stripping ...
57 #define SUPPORT_ROM_TO_RAM 1
60 /* format of the ROM table info entry ... */
61 typedef struct RomInfo {
68 extern far RomInfo _S_romp[]; /* linker defined symbol */