1 //*****************************************************************************
2 //
3 //! @file am_mcu_apollo.h
4 //!
5 //! @brief Top Include for Apollo3 class devices.
6 //!
7 //! This file provides all the includes necessary for an apollo device.
8 //!
9 //! @addtogroup hal Hardware Abstraction Layer (HAL)
10 //
11 //! @defgroup apollo3_hal apollo3
12 //! @ingroup hal
13 //! @{
14 //
15 //*****************************************************************************
16 
17 //*****************************************************************************
18 //
19 // Copyright (c) 2023, Ambiq Micro, Inc.
20 // All rights reserved.
21 //
22 // Redistribution and use in source and binary forms, with or without
23 // modification, are permitted provided that the following conditions are met:
24 //
25 // 1. Redistributions of source code must retain the above copyright notice,
26 // this list of conditions and the following disclaimer.
27 //
28 // 2. Redistributions in binary form must reproduce the above copyright
29 // notice, this list of conditions and the following disclaimer in the
30 // documentation and/or other materials provided with the distribution.
31 //
32 // 3. Neither the name of the copyright holder nor the names of its
33 // contributors may be used to endorse or promote products derived from this
34 // software without specific prior written permission.
35 //
36 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
37 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
39 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
40 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
41 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
42 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
43 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
44 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
46 // POSSIBILITY OF SUCH DAMAGE.
47 //
48 // This is part of revision release_sdk_3_1_1-10cda4b5e0 of the AmbiqSuite Development Package.
49 //
50 //*****************************************************************************
51 
52 #ifndef AM_MCU_APOLLO_H
53 #define AM_MCU_APOLLO_H
54 
55 #ifdef __cplusplus
56 extern "C"
57 {
58 #endif
59 
60 //*****************************************************************************
61 //
62 // AM_PART_APOLLO3_API indicates that this device uses the Apollo3 API.
63 //
64 //*****************************************************************************
65 #define AM_PART_APOLLO3_API     1
66 
67 //*****************************************************************************
68 //
69 // Define AM_CMSIS_REGS to indicate that CMSIS registers are supported.
70 //
71 //*****************************************************************************
72 #define AM_CMSIS_REGS           1
73 
74 //*****************************************************************************
75 //
76 // C99
77 //
78 //*****************************************************************************
79 #include <stdarg.h>
80 #include <stdbool.h>
81 #include <stddef.h>
82 #include <stdint.h>
83 #if AM_CMSIS_REGS
84 #include "apollo3.h"
85 #else // AM_CMSIS_REGS
86 #ifdef __IAR_SYSTEMS_ICC__
87 #include "intrinsics.h"     // __CLZ() and other intrinsics
88 #endif // AM_CMSIS_REGS
89 #endif
90 
91 //*****************************************************************************
92 //
93 // Global HAL
94 //
95 //*****************************************************************************
96 //
97 // Define this macro to disable and remove parameter validation in functions
98 // throughout the HAL.
99 //
100 //#define AM_HAL_DISABLE_API_VALIDATION
101 
102 //
103 // Define the following macro to disable assert messaging.
104 // Defining this macro will result in smaller, more efficient HAL code, but
105 // will eliminate debug messaging.
106 //
107 //#define AM_HAL_DEBUG_NO_ASSERT
108 
109 //*****************************************************************************
110 //
111 // Registers
112 //
113 //*****************************************************************************
114 #include "regs/am_reg_base_addresses.h"
115 #include "regs/am_reg_macros.h"
116 #include "regs/am_reg.h"
117 #include "regs/am_reg_m4.h"
118 #include "regs/am_reg_jedec.h"
119 #include "regs/am_mcu_apollo3_info0.h"
120 
121 //*****************************************************************************
122 //
123 // HAL
124 //
125 //*****************************************************************************
126 #include "hal/am_hal_status.h"
127 #include "hal/am_hal_sysctrl.h"
128 #include "hal/am_hal_adc.h"
129 #include "hal/am_hal_ble.h"
130 #include "hal/am_hal_ble_patch.h"
131 #include "hal/am_hal_burst.h"
132 #include "hal/am_hal_cachectrl.h"
133 #include "hal/am_hal_clkgen.h"
134 #include "hal/am_hal_cmdq.h"
135 #include "hal/am_hal_ctimer.h"
136 #include "hal/am_hal_entropy.h"
137 #include "hal/am_hal_debug.h"
138 #include "hal/am_hal_flash.h"
139 #include "hal/am_hal_global.h"
140 #include "hal/am_hal_gpio.h"
141 #include "hal/am_hal_interrupt.h"
142 #include "hal/am_hal_iom.h"
143 #include "hal/am_hal_ios.h"
144 #include "hal/am_hal_itm.h"
145 #include "hal/am_hal_mcuctrl.h"
146 #include "hal/am_hal_mspi.h"
147 #include "hal/am_hal_pdm.h"
148 #include "hal/am_hal_pin.h"
149 #include "hal/am_hal_pwrctrl.h"
150 #include "hal/am_hal_pwrctrl_internal.h"
151 #include "hal/am_hal_queue.h"
152 #include "hal/am_hal_reset.h"
153 #include "hal/am_hal_rtc.h"
154 #include "hal/am_hal_scard.h"
155 #include "hal/am_hal_secure_ota.h"
156 #include "hal/am_hal_stimer.h"
157 #include "hal/am_hal_security.h"
158 #include "hal/am_hal_systick.h"
159 #include "hal/am_hal_tpiu.h"
160 #include "hal/am_hal_uart.h"
161 #include "hal/am_hal_wdt.h"
162 
163 #ifdef __cplusplus
164 }
165 #endif
166 
167 #endif // AM_MCU_APOLLO_H
168 
169 //*****************************************************************************
170 //
171 // End Doxygen group.
172 //! @}
173 //
174 //*****************************************************************************
175