| LPCOpen Platform v1.03 LPCOpen Platform for NXP LPC Microcontrollers

- Main Page
- Modules
- Data Structures
- Files
- Related Pages

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
lpc43xx_dualcore_config.h
Go to the documentation of this file.
1 /*
2 * @brief LPC43xx dual-core example configuration file
3 *
4 * @note
5 * Copyright(C) NXP Semiconductors, 2012
6 * All rights reserved.
7 *
8 * @par
9 * Software that is described herein is for illustrative purposes only
10 * which provides customers with programming information regarding the
11 * LPC products. This software is supplied "AS IS" without any warranties of
12 * any kind, and NXP Semiconductors and its licensor disclaim any and
13 * all warranties, express or implied, including all implied warranties of
14 * merchantability, fitness for a particular purpose and non-infringement of
15 * intellectual property rights. NXP Semiconductors assumes no responsibility
16 * or liability for the use of the software, conveys no license or rights under any
17 * patent, copyright, mask work right, or any other intellectual property rights in
18 * or to any products. NXP Semiconductors reserves the right to make changes
19 * in the software without notification. NXP Semiconductors also makes no
20 * representation or warranty that such application will be suitable for the
21 * specified use without further testing or modification.
22 *
23 * @par
24 * Permission to use, copy, modify, and distribute this software and its
25 * documentation is hereby granted, under NXP Semiconductors' and its
26 * licensor's relevant copyrights in the software, without fee, provided that it
27 * is used in conjunction with NXP Semiconductors microcontrollers. This
28 * copyright, permission, and disclaimer notice must appear in all copies of
29 * this code.
30 */
31
32 #ifndef __LPC43XX_DUALCORE_CONFIG_H_
33 #define __LPC43XX_DUALCORE_CONFIG_H_
34
35 #include "board.h"
36
37 /*
38 * Users can enable any of the following macros so that the examples will be
39 * built with that functionality.
40 */
41 #define EXAMPLE_BLINKY
42 #define EXAMPLE_USB_DEVICE
43 #undef EXAMPLE_USB_HOST
44 #define EXAMPLE_LWIP
45 #undef EXAMPLE_EMWIN
46
47 /*
48 * Users can define any one of the following macros to use the appropriate OS.
49 * For standalone executables both the macros should be disabled.
50 */
51 #undef OS_FREE_RTOS
52 #undef OS_UCOS_III
53
54 /*
55 * The Stack sizes are currently used by Code Red LPCXpresso tool chain
56 * only. In future, this will be used by Keil & IAR tool chains also
57 */
58 #define STACK_SIZE 0x1000
59 #define HEAP_SIZE 0x4000
60
61 /*
62 * The following defines are used by the M4 image to locate the M0 image, and
63 * one of the below macro must be defined based on your linker definition file.
64 * If the linker file is made to generate image in SPIFI area then define
65 * TARGET_SPIFI macro (so that M4 image will locate the corresponding M0 in the
66 * SPIFI region). If none of them r defined the following defaults will be used
67 * For LPC4330 NGX XPLORER BOARD: TARGET_SPIFI
68 * For LPC4357 KEIL MCB BOARD: TARGET_IFLASH
69 * For LPC4350 HITEX EVALUATION BOARD: TARGET_SPIFI
70 */
71 #undef TARGET_SPIFI /* SPIFI Flash */
72 #undef TARGET_IFLASH /* Internal Flash */
73 #undef TARGET_XFLASH /* External NOR Flash */
74
75 /* Priority of various tasks in dual-core examples */
76 /* LWIP thread priority should always be greater than the
77 * MAC priority ie., greater than TASK_PRIO_ETHERNET
78 */
79 #ifdef OS_FREE_RTOS
80 /* higher the number higher the priority */
81 #define TASK_PRIO_LCD (tskIDLE_PRIORITY + 0UL)
82 #define TASK_PRIO_TOUCHSCREEN (tskIDLE_PRIORITY + 1UL)
83 #define TASK_PRIO_BLINKY_EVENT (tskIDLE_PRIORITY + 1UL)
84 #define TASK_PRIO_ETHERNET (tskIDLE_PRIORITY + 2UL)
85 #define TASK_PRIO_IPC_DISPATCH (tskIDLE_PRIORITY + 3UL)
86 #define TASK_PRIO_USBDEVICE (tskIDLE_PRIORITY + 4UL)
87 #define TASK_PRIO_LWIP_THREAD (tskIDLE_PRIORITY + 5UL)
88
89 #elif defined(OS_UCOS_III)
90 /* lower the number higher the priority */
91 #define TASK_PRIO_BLINKY_EVENT 14
92 #define TASK_PRIO_LCD 14
93 #define TASK_PRIO_TOUCHSCREEN 13
94 #define TASK_PRIO_ETHERNET 13
95 #define TASK_PRIO_IPC_DISPATCH 12
96 #define TASK_PRIO_USBDEVICE 11
97 #define TASK_PRIO_LWIP_THREAD 10
98 #endif
99
100 /* Priority of various IRQs used in dual-core examples */
101 /* lower the number higher the priority */
102 #define IRQ_PRIO_IPC 7
103 #define IRQ_PRIO_ETHERNET 6
104 #define IRQ_PRIO_USBDEV 5
105
106 /* Minimum stack size for UCOS-III Tasks */
107 #define UCOS_MIN_STACK_SZ 128
108
109 /*
110 * Offset of M0 image from the starting of M4 image
111 * Usually the size allocated for M0 image in scatter
112 * file/ Linker Definition file / Memory configuration
113 * in the IDE.
114 * ####Don't change this value unless you are sure about what you are doing ####
115 */
116 #define M0_IMAGE_OFFSET 0x40000
117
118 /*
119 * Absolute addresses used by both cores.
120 * ####Don't change these values unless you are sure about what you are doing ####
121 */
122 #define SHARED_MEM_M0 0x20000000
123 #define SHARED_MEM_M4 0x20000020
124
125 /* Size & location of RAM DISK used by FAT Filesystem */
126 #define RAMDISK_LOCATION 0x20002000
127 #define RAMDISK_SIZE 0x2000
128
129 #ifdef CORE_M4
130 /* Delay and LED to be blinked by M4 Core */
131 #define BLINKY_DEFAULT_DELAY 1000
132 #define BLINK_LED 1
133 #endif /* CORE_M4 */
134
135 #ifdef CORE_M0
136 /* Delay and LED to be blinked by M4 Core */
137 #define BLINK_LED 0
138 #define BLINKY_DEFAULT_DELAY 500
139 #endif /* CORE_M0 */
140
141 /* Base address of various flashes */
142 #define SPIFI_BASE_ADDR 0x14000000
143 #define XFLASH_BASE_ADDR 0x1C000000
144 #define IFLASH_BASE_ADDR 0x1A000000
145
146 /* Include Common header here */
147 #include "dualcore_common.h"
148
149 #endif /* ifndef __LPC43XX_DUALCORE_CONFIG_H_ */