LPCOpen Platform for LPC112X microcontrollers  112X
LPCOpen Platform for the NXP LPC112X family of Microcontrollers
cmsis.h
Go to the documentation of this file.
1 /*
2  * @brief Basic CMSIS include file for LPC112x
3  *
4  * @note
5  * Copyright(C) NXP Semiconductors, 2013
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 __CMSIS_H_
33 #define __CMSIS_H_
34 
35 #include "lpc_types.h"
36 #include "sys_config.h"
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
48 #if defined(__ARMCC_VERSION)
49 // Kill warning "#pragma push with no matching #pragma pop"
50  #pragma diag_suppress 2525
51  #pragma push
52  #pragma anon_unions
53 #elif defined(__CWCC__)
54  #pragma push
55  #pragma cpp_extensions on
56 #elif defined(__GNUC__)
57 /* anonymous unions are enabled by default */
58 #elif defined(__IAR_SYSTEMS_ICC__)
59 // #pragma push // FIXME not usable for IAR
60  #pragma language=extended
61 #else
62  #error Not supported compiler type
63 #endif
64 
65 /*
66  * ==========================================================================
67  * ---------- Interrupt Number Definition -----------------------------------
68  * ==========================================================================
69  */
70 
75 typedef enum LPC1125_IRQn {
78  SVCall_IRQn = -5,
79  PendSV_IRQn = -2,
80  SysTick_IRQn = -1,
92  PIO0_10_IRQn = 10,
93  PIO0_11_IRQn = 11,
94  PIO1_0_IRQn = 12,
95  ADC_B_IRQn = 13,
96  SSP1_IRQn = 14,
97  I2C_IRQn = 15,
103  SSP0_IRQn = 20,
104  UART0_IRQn = 21,
105  UART1_IRQn = 22,
106  UART2_IRQn = 23,
107  ADC_A_IRQn = 24,
108  WDT_IRQn = 25,
109  BOD_IRQn = 26,
111  PIO3_IRQn = 28,
112  PIO2_IRQn = 29,
113  PIO1_IRQn = 30,
114  PIO0_IRQn = 31,
116 
121 /*
122  * ==========================================================================
123  * ----------- Processor and Core Peripheral Section ------------------------
124  * ==========================================================================
125  */
126 
131 /* Configuration of the Cortex-M0 Processor and Core Peripherals */
132 #define __MPU_PRESENT 0
133 #define __NVIC_PRIO_BITS 2
134 #define __Vendor_SysTickConfig 0
140 typedef LPC1125_IRQn_Type IRQn_Type;
141 
142 /* Cortex-M0 processor and core peripherals */
143 #include "core_cm0.h"
144 
149 #ifdef __cplusplus
150 }
151 #endif
152 
153 #endif /* __CMSIS_1125_H_ */