Merge pull request #14042 from hugueskamba/hk_cmake_ambiq_micro_support

CMake: Add support for all Ambiq Micro Mbed targets
pull/14067/head
Martin Kojtal 2020-12-17 15:07:43 +00:00 committed by GitHub
commit 24501dffd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 257 additions and 12 deletions

View File

@ -2,16 +2,17 @@
# SPDX-License-Identifier: Apache-2.0
target_include_directories(mbed-ble
PUBLIC
INTERFACE
.
)
target_sources(mbed-ble
PRIVATE
INTERFACE
AP3CordioHCIDriver.cpp
AP3CordioHCITransportDriver.cpp
)
target_link_libraries(mbed-ble
mbed-core
INTERFACE
mbed-core
)

View File

@ -511,6 +511,7 @@ HciDrvRadioBoot(bool bColdBoot)
CRITICAL_PRINT("INTEN: %d\n", BLEIF->INTEN_b.BLECSSTAT);
CRITICAL_PRINT("INTENREG: %d\n", BLEIF->INTEN);
NVIC_SetVector(BLE_IRQn, HciDrvIntService);
NVIC_EnableIRQ(BLE_IRQn);
//

View File

@ -1,7 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if("Analog_Devices" IN_LIST MBED_TARGET_LABELS)
if("Ambiq_Micro" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_Ambiq_Micro)
elseif("Analog_Devices" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_Analog_Devices)
elseif("ARM_FM" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_ARM_FM)

View File

@ -0,0 +1,26 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if("Apollo3" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_Apollo3)
endif()
target_include_directories(mbed-core
INTERFACE
sdk/devices
sdk/utils
)
target_sources(mbed-core
INTERFACE
sdk/devices/am_devices_button.c
sdk/devices/am_devices_led.c
sdk/utils/am_util_ble.c
sdk/utils/am_util_debug.c
sdk/utils/am_util_delay.c
sdk/utils/am_util_id.c
sdk/utils/am_util_stdio.c
sdk/utils/am_util_string.c
sdk/utils/am_util_time.c
)

View File

@ -0,0 +1,206 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if("hm01b0" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
COMPONENT_hm01b0/hm01b0
)
target_sources(mbed-core
INTERFACE
COMPONENT_hm01b0/hm01b0/HM01B0.c
)
endif()
if("lis2dh12" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
COMPONENT_lis2dh12/lis2dh12
)
target_sources(mbed-core
INTERFACE
COMPONENT_lis2dh12/lis2dh12/lis2dh12_platform_apollo3.c
COMPONENT_lis2dh12/lis2dh12/lis2dh12_reg.c
)
endif()
if("SFE_ARTEMIS" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS
TARGET_SFE_ARTEMIS/bsp
)
target_sources(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS/bsp/am_bsp.c
TARGET_SFE_ARTEMIS/bsp/am_bsp_pins.c
)
elseif("SFE_ARTEMIS_ATP" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_ATP
TARGET_SFE_ARTEMIS_ATP/bsp
)
target_sources(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_ATP/bsp/am_bsp.c
TARGET_SFE_ARTEMIS_ATP/bsp/am_bsp_pins.c
)
elseif("SFE_ARTEMIS_DK" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_DK
TARGET_SFE_ARTEMIS_DK/bsp
)
target_sources(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_DK/bsp/am_bsp.c
TARGET_SFE_ARTEMIS_DK/bsp/am_bsp_pins.c
)
elseif("SFE_ARTEMIS_MODULE" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_MODULE
TARGET_SFE_ARTEMIS_MODULE/bsp
)
target_sources(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_MODULE/bsp/am_bsp.c
TARGET_SFE_ARTEMIS_MODULE/bsp/am_bsp_pins.c
)
elseif("SFE_ARTEMIS_NANO" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_NANO
TARGET_SFE_ARTEMIS_NANO/bsp
)
target_sources(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_NANO/bsp/am_bsp.c
TARGET_SFE_ARTEMIS_NANO/bsp/am_bsp_pins.c
)
elseif("SFE_ARTEMIS_THING_PLUS" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_THING_PLUS
TARGET_SFE_ARTEMIS_THING_PLUS/bsp
)
target_sources(mbed-core
INTERFACE
TARGET_SFE_ARTEMIS_THING_PLUS/bsp/am_bsp.c
TARGET_SFE_ARTEMIS_THING_PLUS/bsp/am_bsp_pins.c
)
elseif("SFE_EDGE" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SFE_EDGE
TARGET_SFE_EDGE/bsp
)
target_sources(mbed-core
INTERFACE
TARGET_SFE_EDGE/bsp/am_bsp.c
TARGET_SFE_EDGE/bsp/am_bsp_pins.c
)
elseif("SFE_EDGE2" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SFE_EDGE2
TARGET_SFE_EDGE2/bsp
)
target_sources(mbed-core
INTERFACE
TARGET_SFE_EDGE2/bsp/am_bsp.c
TARGET_SFE_EDGE2/bsp/am_bsp_pins.c
)
endif()
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE TOOLCHAIN_ARM_STD/AMA3B1KK.sct)
set(STARTUP_FILE TOOLCHAIN_ARM_STD/startup_keil.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE TOOLCHAIN_GCC_ARM/AMA3B1KK.ld)
set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_gcc.c)
endif()
set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-core
INTERFACE
device
sdk/CMSIS/AmbiqMicro/Include
sdk/mcu
sdk/mcu/apollo3
sdk/mcu/apollo3/hal
sdk/mcu/apollo3/regs
)
target_sources(mbed-core
INTERFACE
device/PeripheralPinConfigs.c
device/PeripheralPins.c
device/flash_api.c
device/gpio_api.c
device/gpio_irq_api.c
device/i2c_api.c
device/iom_api.c
device/isr.c
device/lp_ticker.c
device/pinmap.c
device/serial_api.c
device/sleep.c
device/spi_api.c
device/us_ticker.c
sdk/CMSIS/AmbiqMicro/Source/system_apollo3.c
sdk/mcu/apollo3/hal/am_hal_adc.c
sdk/mcu/apollo3/hal/am_hal_ble.c
sdk/mcu/apollo3/hal/am_hal_ble_patch.c
sdk/mcu/apollo3/hal/am_hal_ble_patch_b0.c
sdk/mcu/apollo3/hal/am_hal_burst.c
sdk/mcu/apollo3/hal/am_hal_cachectrl.c
sdk/mcu/apollo3/hal/am_hal_clkgen.c
sdk/mcu/apollo3/hal/am_hal_cmdq.c
sdk/mcu/apollo3/hal/am_hal_ctimer.c
sdk/mcu/apollo3/hal/am_hal_debug.c
sdk/mcu/apollo3/hal/am_hal_flash.c
sdk/mcu/apollo3/hal/am_hal_global.c
sdk/mcu/apollo3/hal/am_hal_gpio.c
sdk/mcu/apollo3/hal/am_hal_interrupt.c
sdk/mcu/apollo3/hal/am_hal_iom.c
sdk/mcu/apollo3/hal/am_hal_ios.c
sdk/mcu/apollo3/hal/am_hal_itm.c
sdk/mcu/apollo3/hal/am_hal_mcuctrl.c
sdk/mcu/apollo3/hal/am_hal_mspi.c
sdk/mcu/apollo3/hal/am_hal_pdm.c
sdk/mcu/apollo3/hal/am_hal_pwrctrl.c
sdk/mcu/apollo3/hal/am_hal_queue.c
sdk/mcu/apollo3/hal/am_hal_reset.c
sdk/mcu/apollo3/hal/am_hal_rtc.c
sdk/mcu/apollo3/hal/am_hal_scard.c
sdk/mcu/apollo3/hal/am_hal_secure_ota.c
sdk/mcu/apollo3/hal/am_hal_security.c
sdk/mcu/apollo3/hal/am_hal_stimer.c
sdk/mcu/apollo3/hal/am_hal_sysctrl.c
sdk/mcu/apollo3/hal/am_hal_systick.c
sdk/mcu/apollo3/hal/am_hal_tpiu.c
sdk/mcu/apollo3/hal/am_hal_uart.c
sdk/mcu/apollo3/hal/am_hal_wdt.c
${STARTUP_FILE}
)
target_link_libraries(mbed-core
INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/sdk/CMSIS/ARM/Lib/ARM/libarm_cortexM4lf_math.a
)

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4
;
; Copyright (c) 2019-2020 SparkFun Electronics
@ -23,6 +23,14 @@
; SOFTWARE.
;
#if !defined(MBED_CONF_TARGET_BOOT_STACK_SIZE)
/* This value is normally defined by the tools to 0x1000 for bare metal and 0x400 for RTOS */
#if defined(MBED_BOOT_STACK_SIZE)
#define MBED_CONF_TARGET_BOOT_STACK_SIZE MBED_BOOT_STACK_SIZE
#else
#define MBED_CONF_TARGET_BOOT_STACK_SIZE 0x400
#endif
#endif
#define MBED_APP_START 0x0000C000
#define MBED_APP_SIZE 0x000F4000
@ -32,8 +40,8 @@
#define MBED_RAM0_SIZE 0x100
#define MBED_RAM1_START (MBED_RAM0_START + MBED_RAM0_SIZE)
#define MBED_RAM1_SIZE (MBED_RAM_SIZE - (MBED_RAM0_SIZE))
#define Stack_Size MBED_BOOT_STACK_SIZE
#define RAM_FIXED_SIZE (MBED_BOOT_STACK_SIZE+MBED_RAM0_SIZE)
#define Stack_Size MBED_CONF_TARGET_BOOT_STACK_SIZE
#define RAM_FIXED_SIZE (MBED_CONF_TARGET_BOOT_STACK_SIZE+MBED_RAM0_SIZE)
LR_IROM1 MBED_APP_START MBED_APP_SIZE {

View File

@ -77,11 +77,11 @@ extern void am_iomaster2_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_iomaster3_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_iomaster4_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_iomaster5_isr(void) __attribute((weak, alias("am_default_isr")));
extern void HciDrvIntService(void); //__attribute((weak, alias("am_default_isr")));
extern void am_gpio_isr(void); //__attribute((weak, alias("am_default_isr")));
extern void am_ctimer_isr(void); //__attribute((weak, alias("am_default_isr")));
extern void am_uart_isr(void); //__attribute((weak, alias("am_default_isr")));
extern void am_uart1_isr(void); //__attribute((weak, alias("am_default_isr")));
extern void HciDrvIntService(void) __attribute((weak, alias("am_default_isr")));
extern void am_gpio_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_ctimer_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_uart_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_uart1_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_scard_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_adc_isr(void) __attribute((weak, alias("am_default_isr")));
extern void am_pdm0_isr(void) __attribute((weak, alias("am_default_isr")));

View File

@ -20,6 +20,7 @@ Only a limited set of targets is supported at the moment.
The following targets are supported:
- NRF52840_DK
- Ambiq Micro targets
- Analog Devices targets
- ARM FM targets
- Cypress targets