aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rp2040/cmsis_include
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rp2040/cmsis_include')
-rw-r--r--lib/rp2040/cmsis_include/RP2040.h109
-rw-r--r--lib/rp2040/cmsis_include/system_RP2040.h65
2 files changed, 174 insertions, 0 deletions
diff --git a/lib/rp2040/cmsis_include/RP2040.h b/lib/rp2040/cmsis_include/RP2040.h
new file mode 100644
index 00000000..a29b9e09
--- /dev/null
+++ b/lib/rp2040/cmsis_include/RP2040.h
@@ -0,0 +1,109 @@
+/*************************************************************************//**
+ * @file RP2040.h
+ * @brief CMSIS-Core(M) Device Peripheral Access Layer Header File for
+ * Device RP2040
+ * @version V1.0.0
+ * @date 5. May 2021
+ *****************************************************************************/
+/*
+ * Copyright (c) 2009-2021 Arm Limited. All rights reserved.
+ * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _CMSIS_RP2040_H_
+#define _CMSIS_RP2040_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* =========================================================================================================================== */
+/* ================ Interrupt Number Definition ================ */
+/* =========================================================================================================================== */
+
+typedef enum
+{
+ /* ======================================= ARM Cortex-M0+ Specific Interrupt Numbers ======================================= */
+ Reset_IRQn = -15, /*!< -15 Reset Vector, invoked on Power up and warm reset */
+ NonMaskableInt_IRQn = -14, /*!< -14 Non maskable Interrupt, cannot be stopped or preempted */
+ HardFault_IRQn = -13, /*!< -13 Hard Fault, all classes of Fault */
+ SVCall_IRQn = -5, /*!< -5 System Service Call via SVC instruction */
+ PendSV_IRQn = -2, /*!< -2 Pendable request for system service */
+ SysTick_IRQn = -1, /*!< -1 System Tick Timer */
+ /* =========================================== RP2040 Specific Interrupt Numbers =========================================== */
+ TIMER_IRQ_0_IRQn = 0, /*!< 0 TIMER_IRQ_0 */
+ TIMER_IRQ_1_IRQn = 1, /*!< 1 TIMER_IRQ_1 */
+ TIMER_IRQ_2_IRQn = 2, /*!< 2 TIMER_IRQ_2 */
+ TIMER_IRQ_3_IRQn = 3, /*!< 3 TIMER_IRQ_3 */
+ PWM_IRQ_WRAP_IRQn = 4, /*!< 4 PWM_IRQ_WRAP */
+ USBCTRL_IRQ_IRQn = 5, /*!< 5 USBCTRL_IRQ */
+ XIP_IRQ_IRQn = 6, /*!< 6 XIP_IRQ */
+ PIO0_IRQ_0_IRQn = 7, /*!< 7 PIO0_IRQ_0 */
+ PIO0_IRQ_1_IRQn = 8, /*!< 8 PIO0_IRQ_1 */
+ PIO1_IRQ_0_IRQn = 9, /*!< 9 PIO1_IRQ_0 */
+ PIO1_IRQ_1_IRQn = 10, /*!< 10 PIO1_IRQ_1 */
+ DMA_IRQ_0_IRQn = 11, /*!< 11 DMA_IRQ_0 */
+ DMA_IRQ_1_IRQn = 12, /*!< 12 DMA_IRQ_1 */
+ IO_IRQ_BANK0_IRQn = 13, /*!< 13 IO_IRQ_BANK0 */
+ IO_IRQ_QSPI_IRQn = 14, /*!< 14 IO_IRQ_QSPI */
+ SIO_IRQ_PROC0_IRQn = 15, /*!< 15 SIO_IRQ_PROC0 */
+ SIO_IRQ_PROC1_IRQn = 16, /*!< 16 SIO_IRQ_PROC1 */
+ CLOCKS_IRQ_IRQn = 17, /*!< 17 CLOCKS_IRQ */
+ SPI0_IRQ_IRQn = 18, /*!< 18 SPI0_IRQ */
+ SPI1_IRQ_IRQn = 19, /*!< 19 SPI1_IRQ */
+ UART0_IRQ_IRQn = 20, /*!< 20 UART0_IRQ */
+ UART1_IRQ_IRQn = 21, /*!< 21 UART1_IRQ */
+ ADC_IRQ_FIFO_IRQn = 22, /*!< 22 ADC_IRQ_FIFO */
+ I2C0_IRQ_IRQn = 23, /*!< 23 I2C0_IRQ */
+ I2C1_IRQ_IRQn = 24, /*!< 24 I2C1_IRQ */
+ RTC_IRQ_IRQn = 25 /*!< 25 RTC_IRQ */
+} IRQn_Type;
+
+/* =========================================================================================================================== */
+/* ================ Processor and Core Peripheral Section ================ */
+/* =========================================================================================================================== */
+
+/* ========================== Configuration of the ARM Cortex-M0+ Processor and Core Peripherals =========================== */
+#define __CM0PLUS_REV 0x0001U /*!< CM0PLUS Core Revision */
+#define __NVIC_PRIO_BITS 2 /*!< Number of Bits used for Priority Levels */
+#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
+#define __VTOR_PRESENT 1 /*!< Set to 1 if CPU supports Vector Table Offset Register */
+#define __MPU_PRESENT 1 /*!< MPU present */
+#define __FPU_PRESENT 0 /*!< FPU present */
+
+/** @} */ /* End of group Configuration_of_CMSIS */
+
+#include "core_cm0plus.h" /*!< ARM Cortex-M0+ processor and core peripherals */
+#include "system_RP2040.h" /*!< RP2040 System */
+
+#ifndef __IM /*!< Fallback for older CMSIS versions */
+#define __IM __I
+#endif
+#ifndef __OM /*!< Fallback for older CMSIS versions */
+#define __OM __O
+#endif
+#ifndef __IOM /*!< Fallback for older CMSIS versions */
+#define __IOM __IO
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CMSIS_RP2040_H */
diff --git a/lib/rp2040/cmsis_include/system_RP2040.h b/lib/rp2040/cmsis_include/system_RP2040.h
new file mode 100644
index 00000000..30881ccc
--- /dev/null
+++ b/lib/rp2040/cmsis_include/system_RP2040.h
@@ -0,0 +1,65 @@
+/*************************************************************************//**
+ * @file system_RP2040.h
+ * @brief CMSIS-Core(M) Device Peripheral Access Layer Header File for
+ * Device RP2040
+ * @version V1.0.0
+ * @date 5. May 2021
+ *****************************************************************************/
+/*
+ * Copyright (c) 2009-2021 Arm Limited. All rights reserved.
+ * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _CMSIS_SYSTEM_RP2040_H
+#define _CMSIS_SYSTEM_RP2040_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ \brief Exception / Interrupt Handler Function Prototype
+*/
+typedef void(*VECTOR_TABLE_Type)(void);
+
+/**
+ \brief System Clock Frequency (Core Clock)
+*/
+extern uint32_t SystemCoreClock;
+
+/**
+ \brief Setup the microcontroller system.
+
+ Initialize the System and update the SystemCoreClock variable.
+ */
+extern void SystemInit (void);
+
+
+/**
+ \brief Update SystemCoreClock variable.
+
+ Updates the SystemCoreClock with current core Clock retrieved from cpu registers.
+ */
+extern void SystemCoreClockUpdate (void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CMSIS_SYSTEM_RP2040_H */