1 /*
2  * Copyright (c) 2021 Arm Limited. All rights reserved.
3  *
4  * Licensed under the Apache License Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing software
11  * distributed under the License is distributed on an "AS IS" BASIS
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef __AN547_H__
18 #define __AN547_H__
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 /* ======================  Start of section using anonymous unions  ============== */
25 #if   defined (__CC_ARM)
26   #pragma push
27   #pragma anon_unions
28 #elif defined (__ICCARM__)
29   #pragma language=extended
30 #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
31   #pragma clang diagnostic push
32   #pragma clang diagnostic ignored "-Wc11-extensions"
33   #pragma clang diagnostic ignored "-Wreserved-id-macro"
34 #elif defined (__GNUC__)
35   /* anonymous unions are enabled by default */
36 #elif defined (__TMS470__)
37   /* anonymous unions are enabled by default */
38 #elif defined (__TASKING__)
39   #pragma warning 586
40 #elif defined (__CSMC__)
41   /* anonymous unions are enabled by default */
42 #else
43   #warning Not supported compiler type
44 #endif
45 
46 
47 /* ========  Configuration of Core Peripherals  ================================== */
48 #define __CM55_REV                0x0001U   /* Core revision r0p1 */
49 #define __SAUREGION_PRESENT       1U        /* SAU regions present */
50 #define __MPU_PRESENT             1U        /* MPU present */
51 #define __VTOR_PRESENT            1U        /* VTOR present */
52 #define __NVIC_PRIO_BITS          3U        /* Number of Bits used for Priority Levels */
53 #define __Vendor_SysTickConfig    0U        /* Set to 1 if different SysTick Config is used */
54 #define __FPU_PRESENT             1U        /* FPU present */
55 #define __FPU_DP                  1U        /* double precision FPU */
56 #define __DSP_PRESENT             1U        /* DSP extension present */
57 #define __PMU_PRESENT             1U        /* PMU present */
58 #define __PMU_NUM_EVENTCNT        8U        /* Number of PMU event counters */
59 #define __ICACHE_PRESENT          1U        /* Instruction Cache present */
60 #define __DCACHE_PRESENT          1U        /* Data Cache present */
61 
62 #include "platform_irq.h"
63 #include "core_cm55.h"                 /* Processor and core peripherals */
64 #include "platform_base_address.h"
65 #include "platform_regs.h"
66 #include "platform_pins.h"
67 #include "system_core_init.h"
68 
69 /* =====================  End of section using anonymous unions  ================ */
70 #if   defined (__CC_ARM)
71   #pragma pop
72 #elif defined (__ICCARM__)
73   /* leave anonymous unions enabled */
74 #elif (__ARMCC_VERSION >= 6010050)
75   #pragma clang diagnostic pop
76 #elif defined (__GNUC__)
77   /* anonymous unions are enabled by default */
78 #elif defined (__TMS470__)
79   /* anonymous unions are enabled by default */
80 #elif defined (__TASKING__)
81   #pragma warning restore
82 #elif defined (__CSMC__)
83   /* anonymous unions are enabled by default */
84 #else
85   #warning Not supported compiler type
86 #endif
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 
92 #endif /* __AN547_H__ */
93