]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/ARM7_STR71x_IAR/Library/include/71x_map.h
Add FreeRTOS-Plus directory.
[freertos] / FreeRTOS / Demo / ARM7_STR71x_IAR / Library / include / 71x_map.h
1 /******************** (C) COPYRIGHT 2003 STMicroelectronics ********************\r
2 * File Name          : 71x_map.h\r
3 * Author             : MCD Application Team\r
4 * Date First Issued  : 05/16/2003\r
5 * Description        : Peripherals memory mapping and registers structures\r
6 ********************************************************************************\r
7 * History:\r
8 *  30/11/2004 : V2.0\r
9 *  14/07/2004 : V1.3\r
10 *  01/01/2004 : V1.2\r
11 *******************************************************************************\r
12  THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH\r
13  CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.\r
14  AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT\r
15  OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT\r
16  OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION\r
17  CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18 *******************************************************************************/\r
19 \r
20 #ifndef __71x_map_H\r
21 #define __71x_map_H\r
22 \r
23 #ifndef EXT\r
24   #define EXT extern\r
25 #endif\r
26 \r
27 #include "71x_conf.h"\r
28 #include "71x_type.h"\r
29 \r
30 \r
31 /* IP registers structures */\r
32 \r
33 typedef volatile struct\r
34 {\r
35   vu16 DATA0;\r
36   vu16 EMPTY1[3];\r
37   vu16 DATA1;\r
38   vu16 EMPTY2[3];\r
39   vu16 DATA2;\r
40   vu16 EMPTY3[3];\r
41   vu16 DATA3;\r
42   vu16 EMPTY4[3];\r
43   vu16 CSR;\r
44   vu16 EMPTY5[7];\r
45   vu16 CPR;\r
46 } ADC12_TypeDef;\r
47 \r
48 typedef volatile struct\r
49 {\r
50   vu32 CKDIS;\r
51   vu32 SWRES;\r
52 } APB_TypeDef;\r
53 \r
54 typedef volatile struct\r
55 {\r
56   vu16 RXR;\r
57   vu16 EMPTY1;\r
58   vu16 TXR;\r
59   vu16 EMPTY2;\r
60   vu16 CSR1;\r
61   vu16 EMPTY3;\r
62   vu16 CSR2;\r
63   vu16 EMPTY4;\r
64   vu16 CLK;\r
65 } BSPI_TypeDef;\r
66 \r
67 typedef volatile struct\r
68 {\r
69   vu16 CRR;\r
70   vu16 EMPTY1;\r
71   vu16 CMR;\r
72   vu16 EMPTY2;\r
73   vu16 M1R;\r
74   vu16 EMPTY3;\r
75   vu16 M2R;\r
76   vu16 EMPTY4;\r
77   vu16 A1R;\r
78   vu16 EMPTY5;\r
79   vu16 A2R;\r
80   vu16 EMPTY6;\r
81   vu16 MCR;\r
82   vu16 EMPTY7;\r
83   vu16 DA1R;\r
84   vu16 EMPTY8;\r
85   vu16 DA2R;\r
86   vu16 EMPTY9;\r
87   vu16 DB1R;\r
88   vu16 EMPTY10;\r
89   vu16 DB2R;\r
90   vu16 EMPTY11[27];\r
91 } CAN_MsgObj_TypeDef;\r
92 \r
93 typedef volatile struct\r
94 {\r
95   vu16 CR;\r
96   vu16 EMPTY1;\r
97   vu16 SR;\r
98   vu16 EMPTY2;\r
99   vu16 ERR;\r
100   vu16 EMPTY3;\r
101   vu16 BTR;\r
102   vu16 EMPTY4;\r
103   vu16 IDR;\r
104   vu16 EMPTY5;\r
105   vu16 TESTR;\r
106   vu16 EMPTY6;\r
107   vu16 BRPR;\r
108   vu16 EMPTY7[3];\r
109   CAN_MsgObj_TypeDef sMsgObj[2];\r
110   vu16 EMPTY8[16];\r
111   vu16 TR1R;\r
112   vu16 EMPTY9;\r
113   vu16 TR2R;\r
114   vu16 EMPTY10[13];\r
115   vu16 ND1R;\r
116   vu16 EMPTY11;\r
117   vu16 ND2R;\r
118   vu16 EMPTY12[13];\r
119   vu16 IP1R;\r
120   vu16 EMPTY13;\r
121   vu16 IP2R;\r
122   vu16 EMPTY14[13];\r
123   vu16 MV1R;\r
124   vu16 EMPTY15;\r
125   vu16 MV2R;\r
126   vu16 EMPTY16;\r
127 } CAN_TypeDef;\r
128 \r
129 typedef volatile struct\r
130 {\r
131   vu32 ICR;\r
132   vu32 CICR;\r
133   vu32 CIPR;\r
134   vu32 EMPTY1[3];\r
135   vu32 IVR;\r
136   vu32 FIR;\r
137   vu32 IER;\r
138   vu32 EMPTY2[7];\r
139   vu32 IPR;\r
140   vu32 EMPTY3[7];\r
141   vu32 SIR[32];\r
142 } EIC_TypeDef;\r
143 \r
144 typedef volatile struct\r
145 {\r
146   vu16 BCON0;\r
147   vu16 EMPTY1;\r
148   vu16 BCON1;\r
149   vu16 EMPTY2;\r
150   vu16 BCON2;\r
151   vu16 EMPTY3;\r
152   vu16 BCON3;\r
153   vu16 EMPTY4;\r
154 } EMI_TypeDef;\r
155 \r
156 typedef volatile struct\r
157 {\r
158   vu32 CR0;\r
159   vu32 CR1;\r
160   vu32 DR0;\r
161   vu32 DR1;\r
162   vu32 AR;\r
163   vu32 ER;\r
164 } FLASHR_TypeDef;\r
165 \r
166 typedef volatile struct\r
167 {\r
168   vu32 NVWPAR;\r
169   vu32 EMPTY;\r
170   vu32 NVAPR0;\r
171   vu32 NVAPR1;\r
172 } FLASHPR_TypeDef;\r
173 \r
174 typedef volatile struct\r
175 {\r
176   vu16 PC0;\r
177   vu16 EMPTY1;\r
178   vu16 PC1;\r
179   vu16 EMPTY2;\r
180   vu16 PC2;\r
181   vu16 EMPTY3;\r
182   vu16 PD;\r
183   vu16 EMPTY4;\r
184 } GPIO_TypeDef;\r
185 \r
186 typedef volatile struct\r
187 {\r
188   vu8  CR;\r
189   vu8  EMPTY1[3];\r
190   vu8  SR1;\r
191   vu8  EMPTY2[3];\r
192   vu8  SR2;\r
193   vu8  EMPTY3[3];\r
194   vu8  CCR;\r
195   vu8  EMPTY4[3];\r
196   vu8  OAR1;\r
197   vu8  EMPTY5[3];\r
198   vu8  OAR2;\r
199   vu8  EMPTY6[3];\r
200   vu8  DR;\r
201   vu8  EMPTY7[3];\r
202   vu8  ECCR;\r
203 } I2C_TypeDef;\r
204 \r
205 typedef volatile struct\r
206 {\r
207   vu32 CCR;\r
208   vu32 EMPTY1;\r
209   vu32 CFR;\r
210   vu32 EMPTY2[3];\r
211   vu32 PLL1CR;\r
212   vu32 PER;\r
213   vu32 SMR;\r
214 } RCCU_TypeDef;\r
215 \r
216 typedef volatile struct\r
217 {\r
218   vu16 MDIVR;\r
219   vu16 EMPTY1;\r
220   vu16 PDIVR;\r
221   vu16 EMPTY2;\r
222   vu16 RSTR;\r
223   vu16 EMPTY3;\r
224   vu16 PLL2CR;\r
225   vu16 EMPTY4;\r
226   vu16 BOOTCR;\r
227   vu16 EMPTY5;\r
228   vu16 PWRCR;\r
229 } PCU_TypeDef;\r
230 \r
231 typedef volatile struct\r
232 {\r
233   vu16 CRH;\r
234   vu16 EMPTY1;\r
235   vu16 CRL;\r
236   vu16 EMPTY2;\r
237   vu16 PRLH;\r
238   vu16 EMPTY3;\r
239   vu16 PRLL;\r
240   vu16 EMPTY4;\r
241   vu16 DIVH;\r
242   vu16 EMPTY5;\r
243   vu16 DIVL;\r
244   vu16 EMPTY6;\r
245   vu16 CNTH;\r
246   vu16 EMPTY7;\r
247   vu16 CNTL;\r
248   vu16 EMPTY8;\r
249   vu16 ALRH;\r
250   vu16 EMPTY9;\r
251   vu16 ALRL;\r
252 } RTC_TypeDef;\r
253 \r
254 typedef volatile struct\r
255 {\r
256   vu16 ICAR;\r
257   vu16 EMPTY1;\r
258   vu16 ICBR;\r
259   vu16 EMPTY2;\r
260   vu16 OCAR;\r
261   vu16 EMPTY3;\r
262   vu16 OCBR;\r
263   vu16 EMPTY4;\r
264   vu16 CNTR;\r
265   vu16 EMPTY5;\r
266   vu16 CR1;\r
267   vu16 EMPTY6;\r
268   vu16 CR2;\r
269   vu16 EMPTY7;\r
270   vu16 SR;\r
271 } TIM_TypeDef;\r
272 \r
273 typedef volatile struct\r
274 {\r
275   vu16 BR;\r
276   vu16 EMPTY1;\r
277   vu16 TxBUFR;\r
278   vu16 EMPTY2;\r
279   vu16 RxBUFR;\r
280   vu16 EMPTY3;\r
281   vu16 CR;\r
282   vu16 EMPTY4;\r
283   vu16 IER;\r
284   vu16 EMPTY5;\r
285   vu16 SR;\r
286   vu16 EMPTY6;\r
287   vu16 GTR;\r
288   vu16 EMPTY7;\r
289   vu16 TOR;\r
290   vu16 EMPTY8;\r
291   vu16 TxRSTR;\r
292   vu16 EMPTY9;\r
293   vu16 RxRSTR;\r
294 } UART_TypeDef;\r
295 \r
296 typedef volatile struct\r
297 {\r
298   vu32 EP0R;\r
299   vu32 EP1R;\r
300   vu32 EP2R;\r
301   vu32 EP3R;\r
302   vu32 EP4R;\r
303   vu32 EP5R;\r
304   vu32 EP6R;\r
305   vu32 EP7R;\r
306   vu32 EP8R;\r
307   vu32 EP9R;\r
308   vu32 EP10R;\r
309   vu32 EP11R;\r
310   vu32 EP12R;\r
311   vu32 EP13R;\r
312   vu32 EP14R;\r
313   vu32 EP15R;\r
314   vu32 CNTR;\r
315   vu32 ISTR;\r
316   vu32 FNR;\r
317   vu32 DADDR;\r
318   vu32 BTABLE;\r
319 } USB_TypeDef;\r
320 \r
321 typedef volatile struct\r
322 {\r
323   vu16 CR;\r
324   vu16 EMPTY1;\r
325   vu16 PR;\r
326   vu16 EMPTY2;\r
327   vu16 VR;\r
328   vu16 EMPTY3;\r
329   vu16 CNT;\r
330   vu16 EMPTY4;\r
331   vu16 SR;\r
332   vu16 EMPTY5;\r
333   vu16 MR;\r
334   vu16 EMPTY6;\r
335   vu16 KR;\r
336 } WDG_TypeDef;\r
337 \r
338 typedef volatile struct\r
339 {\r
340   vu8  SR;\r
341   vu8  EMPTY1[7];\r
342   vu8  CTRL;\r
343   vu8  EMPTY2[3];\r
344   vu8  MRH;\r
345   vu8  EMPTY3[3];\r
346   vu8  MRL;\r
347   vu8  EMPTY4[3];\r
348   vu8  TRH;\r
349   vu8  EMPTY5[3];\r
350   vu8  TRL;\r
351   vu8  EMPTY6[3];\r
352   vu8  PRH;\r
353   vu8  EMPTY7[3];\r
354   vu8  PRL;\r
355 } XTI_TypeDef;\r
356 \r
357 \r
358 /* IRQ vectors */\r
359 typedef volatile struct\r
360 {\r
361   vu32 T0TIMI_IRQHandler;\r
362   vu32 FLASH_IRQHandler;\r
363   vu32 RCCU_IRQHandler;\r
364   vu32 RTC_IRQHandler;\r
365   vu32 WDG_IRQHandler;\r
366   vu32 XTI_IRQHandler;\r
367   vu32 USBHP_IRQHandler;\r
368   vu32 I2C0ITERR_IRQHandler;\r
369   vu32 I2C1ITERR_IRQHandler;\r
370   vu32 UART0_IRQHandler;\r
371   vu32 UART1_IRQHandler;\r
372   vu32 UART2_IRQHandler;\r
373   vu32 UART3_IRQHandler;\r
374   vu32 BSPI0_IRQHandler;\r
375   vu32 BSPI1_IRQHandler;\r
376   vu32 I2C0_IRQHandler;\r
377   vu32 I2C1_IRQHandler;\r
378   vu32 CAN_IRQHandler;\r
379   vu32 ADC12_IRQHandler;\r
380   vu32 T1TIMI_IRQHandler;\r
381   vu32 T2TIMI_IRQHandler;\r
382   vu32 T3TIMI_IRQHandler;\r
383   vu32 EMPTY1[3];\r
384   vu32 HDLC_IRQHandler;\r
385   vu32 USBLP_IRQHandler;\r
386   vu32 EMPTY2[2];\r
387   vu32 T0TOI_IRQHandler;\r
388   vu32 T0OC1_IRQHandler;\r
389   vu32 T0OC2_IRQHandler;\r
390 } IRQVectors_TypeDef;\r
391 \r
392 /*===================================================================*/\r
393 \r
394 /* Memory mapping */\r
395 \r
396 #define RAM_BASE        0x20000000\r
397 \r
398 #define FLASHR_BASE     0x40100000\r
399 #define FLASHPR_BASE    0x4010DFB0\r
400 \r
401 #define EXTMEM_BASE     0x60000000\r
402 #define RCCU_BASE       0xA0000000\r
403 #define PCU_BASE        0xA0000040\r
404 #define APB1_BASE       0xC0000000\r
405 #define APB2_BASE       0xE0000000\r
406 #define EIC_BASE        0xFFFFF800\r
407 \r
408 #define I2C0_BASE       (APB1_BASE + 0x1000)\r
409 #define I2C1_BASE       (APB1_BASE + 0x2000)\r
410 #define UART0_BASE      (APB1_BASE + 0x4000)\r
411 #define UART1_BASE      (APB1_BASE + 0x5000)\r
412 #define UART2_BASE      (APB1_BASE + 0x6000)\r
413 #define UART3_BASE      (APB1_BASE + 0x7000)\r
414 #define CAN_BASE        (APB1_BASE + 0x9000)\r
415 #define BSPI0_BASE      (APB1_BASE + 0xA000)\r
416 #define BSPI1_BASE      (APB1_BASE + 0xB000)\r
417 #define USB_BASE        (APB1_BASE + 0x8800)\r
418 \r
419 #define XTI_BASE        (APB2_BASE + 0x101C)\r
420 #define GPIO0_BASE      (APB2_BASE + 0x3000)\r
421 #define GPIO1_BASE      (APB2_BASE + 0x4000)\r
422 #define GPIO2_BASE      (APB2_BASE + 0x5000)\r
423 #define ADC12_BASE      (APB2_BASE + 0x7000)\r
424 #define TIM0_BASE       (APB2_BASE + 0x9000)\r
425 #define TIM1_BASE       (APB2_BASE + 0xA000)\r
426 #define TIM2_BASE       (APB2_BASE + 0xB000)\r
427 #define TIM3_BASE       (APB2_BASE + 0xC000)\r
428 #define RTC_BASE        (APB2_BASE + 0xD000)\r
429 #define WDG_BASE        (APB2_BASE + 0xE000)\r
430 \r
431 #define EMI_BASE        (EXTMEM_BASE + 0x0C000000)\r
432 \r
433 /*===================================================================*/\r
434 \r
435 /* IP data access */\r
436 \r
437 #ifndef DEBUG\r
438   #define ADC12 ((ADC12_TypeDef *)ADC12_BASE)\r
439 \r
440   #define APB1  ((APB_TypeDef *)APB1_BASE)\r
441   #define APB2  ((APB_TypeDef *)APB2_BASE+0x10)\r
442 \r
443   #define BSPI0 ((BSPI_TypeDef *)BSPI0_BASE)\r
444   #define BSPI1 ((BSPI_TypeDef *)BSPI1_BASE)\r
445 \r
446   #define CAN   ((CAN_TypeDef *)CAN_BASE)\r
447 \r
448   #define EIC   ((EIC_TypeDef *)EIC_BASE)\r
449 \r
450   #define EMI   ((EMI_TypeDef *)EMI_BASE)\r
451 \r
452   #define FLASHR  ((FLASHR_TypeDef *)FLASHR_BASE)\r
453   #define FLASHPR ((FLASHPR_TypeDef *)FLASHPR_BASE)\r
454 \r
455   #define GPIO0 ((GPIO_TypeDef *)GPIO0_BASE)\r
456   #define GPIO1 ((GPIO_TypeDef *)GPIO1_BASE)\r
457   #define GPIO2 ((GPIO_TypeDef *)GPIO2_BASE)\r
458 \r
459   #define I2C0  ((I2C_TypeDef *)I2C0_BASE)\r
460   #define I2C1  ((I2C_TypeDef *)I2C1_BASE)\r
461 \r
462   #define PCU   ((PCU_TypeDef *)PCU_BASE)\r
463 \r
464   #define RCCU  ((RCCU_TypeDef *)RCCU_BASE)\r
465 \r
466   #define RTC   ((RTC_TypeDef *)RTC_BASE)\r
467 \r
468   #define TIM0  ((TIM_TypeDef *)TIM0_BASE)\r
469   #define TIM1  ((TIM_TypeDef *)TIM1_BASE)\r
470   #define TIM2  ((TIM_TypeDef *)TIM2_BASE)\r
471   #define TIM3  ((TIM_TypeDef *)TIM3_BASE)\r
472 \r
473   #define UART0 ((UART_TypeDef *)UART0_BASE)\r
474   #define UART1 ((UART_TypeDef *)UART1_BASE)\r
475   #define UART2 ((UART_TypeDef *)UART2_BASE)\r
476   #define UART3 ((UART_TypeDef *)UART3_BASE)\r
477 \r
478   #define USB   ((USB_TypeDef *)USB_BASE)\r
479 \r
480   #define WDG   ((WDG_TypeDef *)WDG_BASE)\r
481 \r
482   #define XTI   ((XTI_TypeDef *)XTI_BASE)\r
483 \r
484   #define IRQVectors ((IRQVectors_TypeDef *)&T0TIMI_Addr)\r
485 \r
486 #else   /* DEBUG */\r
487 \r
488   #ifdef _ADC12\r
489   EXT ADC12_TypeDef *ADC12;\r
490   #endif\r
491 \r
492   #ifdef _APB\r
493   #ifdef _APB1\r
494   EXT APB_TypeDef *APB1;\r
495   #endif\r
496   #ifdef _APB2\r
497   EXT APB_TypeDef *APB2;\r
498   #endif\r
499   #endif\r
500 \r
501   #ifdef _BSPI\r
502   #ifdef _BSPI0\r
503   EXT BSPI_TypeDef *BSPI0;\r
504   #endif\r
505   #ifdef _BSPI1\r
506   EXT BSPI_TypeDef *BSPI1;\r
507   #endif\r
508   #endif\r
509 \r
510   #ifdef _CAN\r
511   EXT CAN_TypeDef *CAN;\r
512   #endif\r
513 \r
514   #ifdef _EIC\r
515   EXT EIC_TypeDef *EIC;\r
516   #endif\r
517 \r
518   #ifdef _EMI\r
519   EXT EMI_TypeDef *EMI;\r
520   #endif\r
521 \r
522   #ifdef _FLASH\r
523   EXT FLASHR_TypeDef *FLASHR;\r
524   EXT FLASHPR_TypeDef *FLASHPR;\r
525   #endif\r
526 \r
527   #ifdef _GPIO\r
528   #ifdef _GPIO0\r
529   EXT GPIO_TypeDef *GPIO0;\r
530   #endif\r
531   #ifdef _GPIO1\r
532   EXT GPIO_TypeDef *GPIO1;\r
533   #endif\r
534   #ifdef _GPIO2\r
535   EXT GPIO_TypeDef *GPIO2;\r
536   #endif\r
537   #endif\r
538 \r
539   #ifdef _I2C\r
540   #ifdef _I2C0\r
541   EXT I2C_TypeDef *I2C0;\r
542   #endif\r
543   #ifdef _I2C1\r
544   EXT I2C_TypeDef *I2C1;\r
545   #endif\r
546   #endif\r
547 \r
548   #ifdef _PCU\r
549   EXT PCU_TypeDef *PCU;\r
550   #endif\r
551 \r
552   #ifdef _RCCU\r
553   EXT RCCU_TypeDef *RCCU;\r
554   #endif\r
555 \r
556   #ifdef _RTC\r
557   EXT RTC_TypeDef *RTC;\r
558   #endif\r
559 \r
560   #ifdef _TIM\r
561   #ifdef _TIM0\r
562   EXT TIM_TypeDef *TIM0;\r
563   #endif\r
564   #ifdef _TIM1\r
565   EXT TIM_TypeDef *TIM1;\r
566   #endif\r
567   #ifdef _TIM2\r
568   EXT TIM_TypeDef *TIM2;\r
569   #endif\r
570   #ifdef _TIM3\r
571   EXT TIM_TypeDef *TIM3;\r
572   #endif\r
573   #endif\r
574 \r
575   #ifdef _UART\r
576   #ifdef _UART0\r
577   EXT UART_TypeDef *UART0;\r
578   #endif\r
579   #ifdef _UART1\r
580   EXT UART_TypeDef *UART1;\r
581   #endif\r
582   #ifdef _UART2\r
583   EXT UART_TypeDef *UART2;\r
584   #endif\r
585   #ifdef _UART3\r
586   EXT UART_TypeDef *UART3;\r
587   #endif\r
588   #endif\r
589 \r
590   #ifdef _USB\r
591   EXT USB_TypeDef *USB;\r
592   #endif\r
593 \r
594   #ifdef _WDG\r
595   EXT WDG_TypeDef *WDG;\r
596   #endif\r
597 \r
598   #ifdef _XTI\r
599   EXT XTI_TypeDef *XTI;\r
600   #endif\r
601 \r
602   #ifdef _IRQVectors\r
603   EXT IRQVectors_TypeDef *IRQVectors;\r
604   #endif\r
605 \r
606 #endif  /* DEBUG */\r
607 \r
608 #endif  /* __71x_map_H */\r
609 \r
610 /******************* (C) COPYRIGHT 2003 STMicroelectronics *****END OF FILE****/\r