]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_M4F_M0_LPC43xx_Keil/platform/platform_config.h
Add two Cortex-M4F demo applications.
[freertos] / Demo / CORTEX_M4F_M0_LPC43xx_Keil / platform / platform_config.h
1 #ifndef __PLATFORM_CONFIG_H \r
2 #define __PLATFORM_CONFIG_H\r
3 \r
4 #include "stdint.h"\r
5 \r
6 /****************************************************/\r
7 /* supported platforms list                                                     */\r
8 /* DO NOT CHANGE THESE DEFINITIONS                                      */\r
9 #define NXP_VALIDATION_BOARD    (1)\r
10 #define HITEX_A2_BOARD          (3)\r
11 /****************************************************/\r
12 \r
13 /****************************************************/\r
14 /* used for the configuration checks */\r
15 /* DO NOT CHANGE THESE DEFINITIONS                                      */\r
16 /****************************************************/\r
17 #define YES     (1)\r
18 #define NO      (2)\r
19 \r
20 /****************************************************/\r
21 /* USER CONFIGURATION SECTION                                           */\r
22 /****************************************************/\r
23 \r
24 /* choose the platform you want to build against        */\r
25 // #define PLATFORM NXP_VALIDATION_BOARD \r
26 #define PLATFORM HITEX_A2_BOARD\r
27 \r
28 /* these definitions are being taken from the build rule */\r
29 #ifdef EXT_FLASH\r
30 #define USE_EXT_FLASH   (YES)\r
31 #else \r
32 #define USE_EXT_FLASH   (NO)\r
33 #endif\r
34 \r
35 #ifdef EXT_STAT_MEM\r
36 #define USE_EXT_STATIC_MEM      (YES)\r
37 #else\r
38 #define USE_EXT_STATIC_MEM      (NO)\r
39 #endif\r
40 \r
41 #ifdef EXT_DYN_MEM\r
42 #define USE_EXT_DYNAMIC_MEM     (YES)\r
43 #else\r
44 #define USE_EXT_DYNAMIC_MEM     (NO)\r
45 #endif\r
46 \r
47 /* define if the M4 should download and start the M0 application        */\r
48 /* set to YES if M4 should initialize M0 application                            */\r
49 /* set to NO if the debugger is downloading the M0 image, used for  */\r
50 /* dual core debugging sessions */\r
51 #define INITIALIZE_M0_IMAGE     (NO)\r
52 \r
53 /* specify if need to prefill the M0 memory before download */\r
54 #define FILL_ROM_BEFORE_DOWNLOAD (NO)\r
55 #define FILL_RAM_BEFORE_DOWNLOAD (NO)\r
56 \r
57 /* define if the M4 provides a mailbox system to the M0 */\r
58 /* M0 ---> M4 */\r
59 #define USE_M4_MAILBOX                  (NO)\r
60 /* configure which priority the mailbox interrupt should have on the M4 side */\r
61 /* cmsis definition, priority from 0 to 7 */\r
62 #define M4_MAILBOX_PRIORITY             (0)\r
63 \r
64 /* define if the M0 provides a mailbox system to the M4 */\r
65 /* M4 ---> M0 */\r
66 #define USE_M0_MAILBOX                  (NO)\r
67 /* configure which priority the mailbox interrupt should have on the M0 side */\r
68 /* cmsis definition, priority from 0 to 3 */\r
69 #define M0_MAILBOX_PRIORITY     (0)\r
70 \r
71 \r
72 /* define if the system needs to exchange a parameter */\r
73 #define USE_MAILBOX_PARAMETER   (NO)\r
74 \r
75 /* define if the system needs to hook a callback, or just notify */\r
76 #define USE_MAILBOX_CALLBACK    (NO)\r
77 \r
78 \r
79 /* memory map for the application */\r
80 /* !!! needs to be consistent with the scatter file !!! */\r
81 #ifdef EXT_FLASH\r
82 \r
83 /************************************/\r
84 /* this is for the FLASH version        */\r
85 /************************************/\r
86 /*      0x1C000000      M4 ROM 4Mbytes          */\r
87 /*      0x1C3FFFFF                                              */\r
88 /*      0x10000000      M4 RAM 96K                      */\r
89 /*      0x10017FFF                                              */\r
90 #define M4_ROM_START    0x1C000000\r
91 #define M4_ROM_LEN              0x400000        /* 4 Mbytes */\r
92 \r
93 #define M4_RAM_START    0x10000000      /* 96 Kbytes */\r
94 #define M4_RAM_LEN              0x18000\r
95 \r
96 /*      0x10080000      M0 ROM 32K      */\r
97 /*      0x10087FFF                              */\r
98 /*      0x10088000      M0 RAM 8K       */\r
99 /*      0x10089FFF                              */\r
100 #define M0_ROM_START    0x10080000\r
101 #define M0_ROM_LEN              0x8000\r
102 \r
103 #define M0_RAM_START    0x10088000\r
104 #define M0_RAM_LEN              0x2000\r
105 \r
106 /*      0x20000000  M4 BUF 16K  */\r
107 /*      0x20003FFF                              */\r
108 /*      0x20004000      M0 BUF  16K     */\r
109 /*      0x20007FFF                              */\r
110 #define M4_BUF_START    0x20000000\r
111 #define M4_BUF_LEN              0x4000\r
112 \r
113 #define M0_BUF_START    0x20004000\r
114 #define M0_BUF_LEN              0x4000\r
115 \r
116 /*      0x20008000      M4 MBX 8K       */\r
117 /*      0x20009FFF                              */\r
118 /*      0x2000A000      M0 MBX 8K       */\r
119 /*      0x2000BFFF                              */\r
120 #define M4_MBX_START    0x20008000\r
121 #define M4_MBX_LEN              0x2000\r
122 \r
123 #define M0_MBX_START    0x2000A000\r
124 #define M0_MBX_LEN              0x2000\r
125 \r
126 #else \r
127 \r
128 /*******************************/\r
129 /* this is for the ram version */\r
130 /*******************************/\r
131 /*      0x10000000      M4 ROM 64K      */\r
132 /*      0x1000FFFF                              */\r
133 /*      0x10010000      M4 RAM 32K      */\r
134 /*      0x10017FFF                              */\r
135 #define M4_ROM_START    0x10000000\r
136 #define M4_ROM_LEN              0x10000\r
137 \r
138 #define M4_RAM_START    0x10010000\r
139 #define M4_RAM_LEN              0x8000\r
140 \r
141 /*      0x10080000      M0 ROM 32K      */\r
142 /*      0x10087FFF                              */\r
143 /*      0x10088000      M0 RAM 8K       */\r
144 /*      0x10089FFF                              */\r
145 #define M0_ROM_START    0x10080000\r
146 #define M0_ROM_LEN              0x8000\r
147 \r
148 #define M0_RAM_START    0x10088000\r
149 #define M0_RAM_LEN              0x2000\r
150 \r
151 /*      0x20000000  M4 BUF 16K  */\r
152 /*      0x20003FFF                              */\r
153 /*      0x20004000      M0 BUF  16K     */\r
154 /*      0x20007FFF                              */\r
155 #define M4_BUF_START    0x20000000\r
156 #define M4_BUF_LEN              0x4000\r
157 \r
158 #define M0_BUF_START    0x20004000\r
159 #define M0_BUF_LEN              0x4000\r
160 \r
161 /*      0x20008000      M4 MBX 8K       */\r
162 /*      0x20009FFF                              */\r
163 /*      0x2000A000      M0 MBX 8K       */\r
164 /*      0x2000BFFF                              */\r
165 #define M4_MBX_START    0x20008000\r
166 #define M4_MBX_LEN              0x2000\r
167 \r
168 #define M0_MBX_START    0x2000A000\r
169 #define M0_MBX_LEN              0x2000\r
170 \r
171 #endif /* ifdef EXT_FLASH */\r
172 \r
173 /****************************************************/\r
174 /* END OF USER CONFIGURATION                                            */\r
175 /* DO NOT EDIT BELOW THIS LINE                                          */\r
176 /****************************************************/\r
177 \r
178 #define M4_IPC_TABLE    M4_MBX_START\r
179 #define M0_IPC_TABLE    M0_MBX_START\r
180 \r
181 /* configure defines for local mailbox */\r
182 #if defined (CORE_M0) && (USE_M0_MAILBOX == YES)\r
183         #define PROVIDE_M0_LOCAL_MBX (1)\r
184 #endif\r
185 \r
186 #if defined (CORE_M4) && (USE_M4_MAILBOX == YES)\r
187         #define PROVIDE_M4_LOCAL_MBX  (1)\r
188 #endif\r
189 \r
190 #if defined PROVIDE_M0_LOCAL_MBX || PROVIDE_M4_LOCAL_MBX\r
191           #define LOCAL_MAILBOX_ENABLED (1)\r
192 #endif\r
193 \r
194 \r
195 #if defined (CORE_M0) && (USE_M4_MAILBOX == YES)\r
196         #define PROVIDE_M0_REMOTE_MBX (1)\r
197 #endif\r
198 \r
199 #if defined (CORE_M4) && (USE_M0_MAILBOX == YES)\r
200         #define PROVIDE_M4_REMOTE_MBX (1)\r
201 #endif\r
202 \r
203 #if defined PROVIDE_M0_REMOTE_MBX || PROVIDE_M4_REMOTE_MBX\r
204           #define REMOTE_MAILBOX_ENABLED (1)\r
205 #endif\r
206 \r
207 \r
208 #if(USE_MAILBOX_PARAMETER == YES)\r
209         #define MBX_PARAM_DEFAULT ,0x0\r
210 #else\r
211         #define MBX_PARAM_DEFAULT \r
212 #endif\r
213 \r
214 #define DUMMY_CALLBACK ,(mbxCallback_t) &dummyCallback\r
215 \r
216 #if (USE_MAILBOX_CALLBACK == YES)       \r
217         #define MBX_CALLBACK_DEFAULT DUMMY_CALLBACK\r
218 #else\r
219         #define MBX_CALLBACK_DEFAULT\r
220 #endif\r
221 \r
222 /****************************************************/\r
223 /* platform wise initialization functions                       */\r
224 /****************************************************/\r
225 void platformInit(void);\r
226 \r
227 \r
228 \r
229 #endif /* __PLATFORM_CONFIG_H */\r
230 \r