You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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