1 /*
2 * Copyright (c) 2020 - 2025 Renesas Electronics Corporation and/or its affiliates
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6 
7 /* Ensure Renesas MCU variation definitions are included to ensure MCU
8  * specific register variations are handled correctly. */
9 #ifndef BSP_FEATURE_H
10  #error "INTERNAL ERROR: bsp_feature.h must be included before renesas.h."
11 #endif
12 
13 /** @addtogroup Renesas
14  * @{
15  */
16 
17 /** @addtogroup RA
18  * @{
19  */
20 
21 #ifndef RA_H
22  #define RA_H
23 
24  #ifdef __cplusplus
25 extern "C" {
26  #endif
27 
28 /** @addtogroup Configuration_of_CMSIS
29  * @{
30  */
31 
32 /* =========================================================================================================================== */
33 /* ================                                Interrupt Number Definition                                ================ */
34 /* =========================================================================================================================== */
35 /* IRQn_Type is provided in bsp_exceptions.h. Vectors generated by the FSP Configuration tool are in vector_data.h */
36 
37 /** @} */ /* End of group Configuration_of_CMSIS */
38 
39 /* =========================================================================================================================== */
40 /* ================                           Processor and Core Peripheral Section                           ================ */
41 /* =========================================================================================================================== */
42 
43  #if BSP_MCU_GROUP_RA0E1
44   #include "R7FA0E107.h"
45  #elif BSP_MCU_GROUP_RA2A1
46   #include "R7FA2A1AB.h"
47  #elif BSP_MCU_GROUP_RA2A2
48   #include "R7FA2A2AD.h"
49  #elif BSP_MCU_GROUP_RA2E1
50   #include "R7FA2E1A9.h"
51  #elif BSP_MCU_GROUP_RA2E2
52   #include "R7FA2E2A7.h"
53  #elif BSP_MCU_GROUP_RA2E3
54   #include "R7FA2E307.h"
55  #elif BSP_MCU_GROUP_RA2L1
56   #include "R7FA2L1AB.h"
57  #elif BSP_MCU_GROUP_RA4E1
58   #include "R7FA4E10D.h"
59  #elif BSP_MCU_GROUP_RA4E2
60   #include "R7FA4E2B9.h"
61  #elif BSP_MCU_GROUP_RA4M1
62   #include "R7FA4M1AB.h"
63  #elif BSP_MCU_GROUP_RA4M2
64   #include "R7FA4M2AD.h"
65  #elif BSP_MCU_GROUP_RA4M3
66   #include "R7FA4M3AF.h"
67  #elif BSP_MCU_GROUP_RA4T1
68   #include "R7FA4T1BB.h"
69  #elif BSP_MCU_GROUP_RA4W1
70   #include "R7FA4W1AD.h"
71  #elif BSP_MCU_GROUP_RA4L1
72   #include "R7FA4L1BD.h"
73  #elif BSP_MCU_GROUP_RA6E1
74   #include "R7FA6E10F.h"
75  #elif BSP_MCU_GROUP_RA6E2
76   #include "R7FA6E2BB.h"
77  #elif BSP_MCU_GROUP_RA6M1
78   #include "R7FA6M1AD.h"
79  #elif BSP_MCU_GROUP_RA6M2
80   #include "R7FA6M2AF.h"
81  #elif BSP_MCU_GROUP_RA6M3
82   #include "R7FA6M3AH.h"
83  #elif BSP_MCU_GROUP_RA6M4
84   #include "R7FA6M4AF.h"
85  #elif BSP_MCU_GROUP_RA6M5
86   #include "R7FA6M5BH.h"
87  #elif BSP_MCU_GROUP_RA6T1
88   #include "R7FA6T1AD.h"
89  #elif BSP_MCU_GROUP_RA6T2
90   #include "R7FA6T2BD.h"
91  #elif BSP_MCU_GROUP_RA6T3
92   #include "R7FA6T3BB.h"
93  #elif BSP_MCU_GROUP_RA8M1
94   #include "R7FA8M1AH.h"
95  #elif BSP_MCU_GROUP_RA8D1
96   #include "R7FA8D1BH.h"
97  #elif BSP_MCU_GROUP_RA8T1
98   #include "R7FA8T1AH.h"
99  #else
100   #if __has_include("renesas_internal.h")
101    #include "renesas_internal.h"
102   #else
103    #warning "Unsupported MCU"
104   #endif
105  #endif
106 
107 /* Workaround for LLVM. __ARM_ARCH_8_1M_MAIN__ is defined for CM85 parts. But CMSIS_5 does not support this */
108  #if defined(__llvm__) && !defined(__CLANG_TIDY__) && defined(__ARM_ARCH_8_1M_MAIN__)
109   #undef __ARM_ARCH_8_1M_MAIN__
110   #define __ARM_ARCH_8M_MAIN__    1
111  #endif
112  #include "cmsis_compiler.h"
113 
114 /* Workaround for compilers that are not defining __ARM_ARCH_8_1M_MAIN__ for CM85 parts. Search CM85_WORKAROUND for related code changes */
115  #if BSP_CFG_MCU_PART_SERIES == 8
116   #undef __ARM_ARCH_8M_MAIN__
117   #define __ARM_ARCH_8_1M_MAIN__    1
118  #endif
119 
120  #if   __ARM_ARCH_7EM__
121   #define RENESAS_CORTEX_M4
122  #elif __ARM_ARCH_6M__
123   #define RENESAS_CORTEX_M0PLUS
124  #elif __ARM_ARCH_8M_BASE__
125   #define RENESAS_CORTEX_M23
126  #elif __ARM_ARCH_8M_MAIN__
127   #define RENESAS_CORTEX_M33
128  #elif __ARM_ARCH_8_1M_MAIN__
129   #define RENESAS_CORTEX_M85
130  #else
131   #warning Unsupported Architecture
132  #endif
133 
134  #ifdef __cplusplus
135 }
136  #endif
137 
138 #endif                                 /* RA_H */
139 
140 /** @} */ /* End of group RA */
141 
142 /** @} */ /* End of group Renesas */
143