MAX32672 Peripheral Driver API
Peripheral Driver API for the MAX32672
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
nvic_table.h
1
6/******************************************************************************
7 *
8 * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
9 * Analog Devices, Inc.),
10 * Copyright (C) 2023-2024 Analog Devices, Inc.
11 *
12 * Licensed under the Apache License, Version 2.0 (the "License");
13 * you may not use this file except in compliance with the License.
14 * You may obtain a copy of the License at
15 *
16 * http://www.apache.org/licenses/LICENSE-2.0
17 *
18 * Unless required by applicable law or agreed to in writing, software
19 * distributed under the License is distributed on an "AS IS" BASIS,
20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 * See the License for the specific language governing permissions and
22 * limitations under the License.
23 *
24 ******************************************************************************/
25
26#ifndef LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_NVIC_TABLE_H_
27#define LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_NVIC_TABLE_H_
28
29#include "max32672.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
43void MXC_NVIC_SetVector(IRQn_Type irqn, void (*irq_callback)(void));
44
45#if defined(__GNUC__)
46#if __CM4_CMSIS_VERSION_MAIN == 0x03
47// NVIC_SetVector was custom-implemented in the PeriphDrivers library for
48// CMSIS version 3. Newer versions of CMSIS provide an implementation of
49// NVIC_SetVector with different functionality, so the Maxim implementation
50// has been moved to MXC_NVIC_SetVector (above).
51
52// The MSDK will move to CMSIS version 5 in the future.
53
54// For CMSIS version 3, use MXC_NVIC_SetVector instead.
55// For CMSIS version 5, you have the choice of using either. However, only
56// MXC_NVIC_SetVector will work with legacy code.
57inline __attribute__((
58 deprecated("Use MXC_NVIC_SetVector instead. See nvic_table.h for more details."))) void
59NVIC_SetVector(IRQn_Type irqn, void (*irq_callback)(void))
60{
61 MXC_NVIC_SetVector(irqn, irq_callback);
62}
63#endif
64#endif
65
70void NVIC_SetRAM(void);
71
80uint32_t MXC_NVIC_GetVector(IRQn_Type IRQn);
81
82#if defined(__GNUC__)
83#if __CM4_CMSIS_VERSION_MAIN == 0x03
84// NVIC_GetVector was custom-implemented in the PeriphDrivers library for
85// CMSIS version 3. Newer versions of CMSIS provide an implementation of
86// NVIC_GetVector with different functionality, so the Maxim implementation
87// has been moved to MXC_NVIC_GetVector (above).
88
89// The MSDK will move to CMSIS version 5 in the future.
90
91// For CMSIS version 3, use MXC_NVIC_SetVector instead.
92// For CMSIS version 5, you have the choice of using either. However, only
93// MXC_NVIC_GetVector will work with legacy code.
94inline __attribute__((
95 deprecated("Use MXC_NVIC_GetVector instead. See nvic_table.h for more details."))) void
96NVIC_GetVector(IRQn_Type irqn)
97{
98 MXC_NVIC_GetVector(irqn);
99}
100#endif
101#endif
102
103#ifdef __cplusplus
104}
105#endif
106
107#endif // LIBRARIES_PERIPHDRIVERS_INCLUDE_MAX32672_NVIC_TABLE_H_