1# Copyright 2023 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15import("//build_overrides/pigweed.gni") 16 17import("$dir_pw_build/target_types.gni") 18import("$dir_pw_docgen/docs.gni") 19import("ambiq.gni") 20 21pw_doc_group("docs") { 22 sources = [ "docs.rst" ] 23} 24 25# This file defines a GN source_set for an external installation of Ambiq SDK. 26# To use, checkout the Ambiq Apollo4 SDK source into a directory, then set 27# the build arg dir_pw_third_party_ambiq_SDK to point to that directory. The 28# Ambiq Apollo 4 SDK library will be available in GN 29# at "$dir_pw_third_party/apollo4". 30if (dir_pw_third_party_ambiq_SDK != "") { 31 config("apollo4p_sdk_defines") { 32 defines = [ 33 "AM_PART_APOLLO4P=1", 34 "apollo4p_evb=1", 35 "gcc=1", 36 "AM_PACKAGE_BGA=1", 37 ] 38 visibility = [ ":*" ] 39 } 40 41 config("apollo4b_sdk_defines") { 42 defines = [ 43 "AM_PART_APOLLO4B=1", 44 "apollo4b_evb=1", 45 "gcc=1", 46 "AM_PACKAGE_BGA=1", 47 ] 48 visibility = [ ":*" ] 49 } 50 51 config("disable_warnings") { 52 cflags = [ 53 "-Wno-sign-compare", 54 "-Wno-unused-parameter", 55 "-Wno-cast-qual", 56 "-Wno-shadow", 57 "-Wno-implicit-fallthrough", 58 "-Wno-maybe-uninitialized", 59 ] 60 cflags_c = [ "-Wno-old-style-declaration" ] 61 visibility = [ ":*" ] 62 } 63 64 config("apollo4_include_dirs") { 65 include_dirs = [ 66 "$dir_pw_third_party_ambiq_SDK/devices", 67 "$dir_pw_third_party_ambiq_SDK/utils", 68 "$dir_pw_third_party_ambiq_SDK/CMSIS/ARM/Include", 69 "$dir_pw_third_party_ambiq_SDK/CMSIS/AmbiqMicro/Include", 70 ] 71 } 72 73 config("apollo4p_include_dirs") { 74 include_dirs = [ 75 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu", 76 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal", 77 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p", 78 "$dir_pw_third_party_ambiq_SDK/boards/apollo4p_evb/bsp", 79 ] 80 } 81 82 config("apollo4b_include_dirs") { 83 include_dirs = [ 84 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu", 85 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal", 86 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b", 87 "$dir_pw_third_party_ambiq_SDK/boards/apollo4b_evb/bsp", 88 ] 89 } 90 91 pw_source_set("apollo4p") { 92 remove_configs = [ "$dir_pw_build:extra_strict_warnings" ] 93 94 public_configs = [ 95 ":disable_warnings", 96 ":apollo4_include_dirs", 97 ":apollo4p_include_dirs", 98 ":apollo4p_sdk_defines", 99 ] 100 101 sources = [ 102 "$dir_pw_third_party_ambiq_SDK/boards/apollo4p_evb/bsp/am_bsp.c", 103 "$dir_pw_third_party_ambiq_SDK/boards/apollo4p_evb/bsp/am_bsp_pins.c", 104 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_access.c", 105 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_adc.c", 106 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_audadc.c", 107 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_dcu.c", 108 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_global.c", 109 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_gpio.c", 110 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_i2s.c", 111 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_otp.c", 112 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_pdm.c", 113 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_pin.c", 114 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_pwrctrl.c", 115 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_queue.c", 116 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_security.c", 117 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_stimer.c", 118 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_timer.c", 119 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_usb.c", 120 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_wdt.c", 121 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_bootrom_helper.c", 122 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_cachectrl.c", 123 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_card.c", 124 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_card_host.c", 125 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_clkgen.c", 126 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_cmdq.c", 127 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_dsi.c", 128 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_fault.c", 129 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_interrupt.c", 130 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_iom.c", 131 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_ios.c", 132 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_itm.c", 133 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_itm.h", 134 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_mcuctrl.c", 135 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_mpu.c", 136 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_mram.c", 137 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_mspi.c", 138 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_reset.c", 139 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_rtc.c", 140 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_sdhc.c", 141 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_secure_ota.c", 142 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_sysctrl.c", 143 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_systick.c", 144 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_tpiu.c", 145 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_uart.c", 146 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_utils.c", 147 ] 148 } 149 150 pw_source_set("apollo4b") { 151 remove_configs = [ "$dir_pw_build:extra_strict_warnings" ] 152 153 public_configs = [ 154 ":disable_warnings", 155 ":apollo4_include_dirs", 156 ":apollo4b_include_dirs", 157 ":apollo4b_sdk_defines", 158 ] 159 160 sources = [ 161 "$dir_pw_third_party_ambiq_SDK/boards/apollo4b_evb/bsp/am_bsp.c", 162 "$dir_pw_third_party_ambiq_SDK/boards/apollo4b_evb/bsp/am_bsp_pins.c", 163 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_access.c", 164 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_adc.c", 165 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_audadc.c", 166 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_dcu.c", 167 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_global.c", 168 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_gpio.c", 169 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_i2s.c", 170 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_otp.c", 171 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_pdm.c", 172 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_pin.c", 173 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_pwrctrl.c", 174 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_queue.c", 175 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_security.c", 176 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_stimer.c", 177 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_timer.c", 178 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_usb.c", 179 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_wdt.c", 180 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_bootrom_helper.c", 181 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_cachectrl.c", 182 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_card.c", 183 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_card_host.c", 184 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_clkgen.c", 185 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_cmdq.c", 186 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_dsi.c", 187 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_fault.c", 188 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_interrupt.c", 189 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_iom.c", 190 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_ios.c", 191 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_itm.c", 192 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_itm.h", 193 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_mcuctrl.c", 194 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_mpu.c", 195 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_mram.c", 196 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_mspi.c", 197 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_reset.c", 198 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_rtc.c", 199 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_sdhc.c", 200 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_secure_ota.c", 201 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_sysctrl.c", 202 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_systick.c", 203 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_tpiu.c", 204 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_uart.c", 205 "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_utils.c", 206 ] 207 } 208 209 pw_source_set("sdk") { 210 if (pw_third_party_ambiq_PRODUCT == "apollo4p") { 211 public_deps = [ ":apollo4p" ] 212 } else if (pw_third_party_ambiq_PRODUCT == "apollo4b") { 213 public_deps = [ ":apollo4b" ] 214 } 215 } 216} 217