LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 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 #undef EXAMPLE_USB_DEVICE
43 #undef EXAMPLE_USB_HOST
44 #undef 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 0x400
59 #define HEAP_SIZE 0x400
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 #define FAT12_DISK_IMAGE 0x20002000
125 
126 #ifdef CORE_M4
127 /* Delay and LED to be blinked by M4 Core */
128 #define BLINKY_DEFAULT_DELAY 1000
129 #define BLINK_LED 1
130 #endif /* CORE_M4 */
131 
132 #ifdef CORE_M0
133 /* Delay and LED to be blinked by M4 Core */
134 #define BLINK_LED 0
135 #define BLINKY_DEFAULT_DELAY 500
136 #endif /* CORE_M0 */
137 
138 /* Base address of various flashes */
139 #define SPIFI_BASE_ADDR 0x14000000
140 #define XFLASH_BASE_ADDR 0x1C000000
141 #define IFLASH_BASE_ADDR 0x1A000000
142 
143 /* Include Common header here */
144 #include "dualcore_common.h"
145 
146 #endif /* ifndef __LPC43XX_DUALCORE_CONFIG_H_ */