]> begriffs open source - cmsis-freertos/blob - Demo/ColdFire_MCF52221_CodeWarrior/sources/startcf.h
Update cmsis_os2.c
[cmsis-freertos] / Demo / ColdFire_MCF52221_CodeWarrior / sources / startcf.h
1 /******************************************************************************
2   FILE    : startcf.h
3   PURPOSE : startup code for ColdFire
4   LANGUAGE: C
5
6
7   Notes:
8         1) Default entry point is _startup. 
9            . disable interrupts
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...)
19         5) Jump to main 
20
21 */
22 /********************************************************************************/
23
24 #ifndef STARTCF_H
25 #define STARTCF_H
26
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #include "support_common.h"
33
34 extern unsigned long far __SP_INIT[];
35 extern unsigned long far __SP_AFTER_RESET[];
36
37
38 #ifndef MEMORY_INIT
39 /* If MEMORY_INIT is set then it performs
40    minimal memory initialization (to preset SP to __SP_AFTER_RESET, etc...)
41 */
42 #define MEMORY_INIT
43 #endif
44                                                          
45
46 void _startup(void);
47
48 #ifndef SUPPORT_ROM_TO_RAM
49   /*
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
53    * __DATA_END symbols.
54    *
55    * Set to 0 for more aggressive dead stripping ...
56    */
57 #define SUPPORT_ROM_TO_RAM 1
58 #endif
59
60 /* format of the ROM table info entry ... */
61 typedef struct RomInfo {
62         void            *Source;
63         void            *Target;
64         unsigned long    Size;
65 } RomInfo;
66
67 /* imported data */
68 extern far RomInfo _S_romp[];           /* linker defined symbol */
69
70 #ifdef __cplusplus
71 }
72 #endif
73
74 #endif