ARMCM55.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /**************************************************************************//**
  2. * @file ARMCM55.h
  3. * @brief CMSIS Core Peripheral Access Layer Header File for
  4. * ARMCM55 Device Series (configured for ARMCM55 with double precision FPU,
  5. * DSP extension, MVE, TrustZone)
  6. * @version V1.0.1
  7. * @date 01. May 2023
  8. ******************************************************************************/
  9. /*
  10. * Copyright (c) 2020 Arm Limited. All rights reserved.
  11. *
  12. * SPDX-License-Identifier: Apache-2.0
  13. *
  14. * Licensed under the Apache License, Version 2.0 (the License); you may
  15. * not use this file except in compliance with the License.
  16. * You may obtain a copy of the License at
  17. *
  18. * www.apache.org/licenses/LICENSE-2.0
  19. *
  20. * Unless required by applicable law or agreed to in writing, software
  21. * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  22. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  23. * See the License for the specific language governing permissions and
  24. * limitations under the License.
  25. */
  26. #ifndef ARMCM55_H
  27. #define ARMCM55_H
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31. /* ------------------------- Interrupt Number Definition ------------------------ */
  32. typedef enum IRQn
  33. {
  34. /* ------------------- Processor Exceptions Numbers ----------------------------- */
  35. NonMaskableInt_IRQn = -14, /* 2 Non Maskable Interrupt */
  36. HardFault_IRQn = -13, /* 3 HardFault Interrupt */
  37. MemoryManagement_IRQn = -12, /* 4 Memory Management Interrupt */
  38. BusFault_IRQn = -11, /* 5 Bus Fault Interrupt */
  39. UsageFault_IRQn = -10, /* 6 Usage Fault Interrupt */
  40. SecureFault_IRQn = -9, /* 7 Secure Fault Interrupt */
  41. SVCall_IRQn = -5, /* 11 SVC Interrupt */
  42. DebugMonitor_IRQn = -4, /* 12 Debug Monitor Interrupt */
  43. PendSV_IRQn = -2, /* 14 Pend SV Interrupt */
  44. SysTick_IRQn = -1, /* 15 System Tick Interrupt */
  45. /* ------------------- Processor Interrupt Numbers ------------------------------ */
  46. Interrupt0_IRQn = 0,
  47. Interrupt1_IRQn = 1,
  48. Interrupt2_IRQn = 2,
  49. Interrupt3_IRQn = 3,
  50. Interrupt4_IRQn = 4,
  51. Interrupt5_IRQn = 5,
  52. Interrupt6_IRQn = 6,
  53. Interrupt7_IRQn = 7,
  54. Interrupt8_IRQn = 8,
  55. Interrupt9_IRQn = 9,
  56. /* Interrupts 10 .. 479 are left out */
  57. Interrupt480_IRQn = 480
  58. } IRQn_Type;
  59. /* ================================================================================ */
  60. /* ================ Processor and Core Peripheral Section ================ */
  61. /* ================================================================================ */
  62. /* ------- Start of section using anonymous unions and disabling warnings ------- */
  63. #if defined (__CC_ARM)
  64. #pragma push
  65. #pragma anon_unions
  66. #elif defined (__ICCARM__)
  67. #pragma language=extended
  68. #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
  69. #pragma clang diagnostic push
  70. #pragma clang diagnostic ignored "-Wc11-extensions"
  71. #pragma clang diagnostic ignored "-Wreserved-id-macro"
  72. #elif defined (__GNUC__)
  73. /* anonymous unions are enabled by default */
  74. #elif defined (__TMS470__)
  75. /* anonymous unions are enabled by default */
  76. #elif defined (__TASKING__)
  77. #pragma warning 586
  78. #elif defined (__CSMC__)
  79. /* anonymous unions are enabled by default */
  80. #else
  81. #warning Not supported compiler type
  82. #endif
  83. /* -------- Configuration of Core Peripherals ----------------------------------- */
  84. #define __CM55_REV 0x0001U /* Core revision r0p1 */
  85. #define __NVIC_PRIO_BITS 3U /* Number of Bits used for Priority Levels */
  86. #define __Vendor_SysTickConfig 0U /* Set to 1 if different SysTick Config is used */
  87. #define __VTOR_PRESENT 1U /* VTOR present */
  88. #define __MPU_PRESENT 1U /* MPU present */
  89. #define __FPU_PRESENT 1U /* FPU present */
  90. #define __FPU_DP 1U /* double precision FPU */
  91. #define __DSP_PRESENT 1U /* DSP extension present */
  92. #define __SAUREGION_PRESENT 1U /* SAU regions present */
  93. #define __PMU_PRESENT 1U /* PMU present */
  94. #define __PMU_NUM_EVENTCNT 8U /* PMU Event Counters */
  95. #define __ICACHE_PRESENT 1U /* Instruction Cache present */
  96. #define __DCACHE_PRESENT 1U /* Data Cache present */
  97. #include "core_cm55.h" /* Processor and core peripherals */
  98. #include "system_ARMCM55.h" /* System Header */
  99. /* -------- End of section using anonymous unions and disabling warnings -------- */
  100. #if defined (__CC_ARM)
  101. #pragma pop
  102. #elif defined (__ICCARM__)
  103. /* leave anonymous unions enabled */
  104. #elif (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
  105. #pragma clang diagnostic pop
  106. #elif defined (__GNUC__)
  107. /* anonymous unions are enabled by default */
  108. #elif defined (__TMS470__)
  109. /* anonymous unions are enabled by default */
  110. #elif defined (__TASKING__)
  111. #pragma warning restore
  112. #elif defined (__CSMC__)
  113. /* anonymous unions are enabled by default */
  114. #else
  115. #warning Not supported compiler type
  116. #endif
  117. #ifdef __cplusplus
  118. }
  119. #endif
  120. #endif /* ARMCM55_H */