CMake: add support for Nordic targets

pull/14045/head
Harrison Mutai 2020-12-15 11:26:31 +00:00
parent 643233ed16
commit 7cb2407446
12 changed files with 120 additions and 77 deletions

View File

@ -5,9 +5,7 @@ if("NRF52" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_NRF52)
endif()
if("SDK_11" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_SDK_11)
elseif("SDK_15_0" IN_LIST MBED_TARGET_LABELS)
if("SDK_15_0" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_SDK_15_0)
endif()

View File

@ -1,7 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if("MCU_NRF52840" IN_LIST MBED_TARGET_LABELS)
if("MCU_NRF52832" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_MCU_NRF52832)
elseif("MCU_NRF52840" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_MCU_NRF52840)
endif()

View File

@ -0,0 +1,41 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if("NRF52_DK" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_NRF52_DK
)
elseif("SDT52832B" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_SDT52832B
)
endif()
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE device/TOOLCHAIN_ARM_STD/nRF52832.sct)
set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_nrf52832.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/NRF52832.ld)
set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_NRF52832.S)
endif()
set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-core
INTERFACE
.
config
device
)
target_sources(mbed-core
INTERFACE
PeripheralPins.c
device/cmsis_nvic.c
device/system_nrf52.c
${STARTUP_FILE}
)

View File

@ -1,4 +1,4 @@
#! armcc -E
#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4
/* Default to no softdevice */
#if !defined(MBED_APP_START)

View File

@ -1,20 +1,56 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if("NRF52840_DK" IN_LIST MBED_TARGET_LABELS)
add_subdirectory(TARGET_NRF52840_DK)
if ("ARDUINO_NANO33BLE" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_ARDUINO_NANO33BLE
)
elseif("EP_AGORA" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_EP_AGORA
)
target_sources(mbed-core
INTERFACE
TARGET_EP_AGORA/ONBOARD_TELIT_ME910.cpp
)
elseif("EP_ATLAS" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_EP_ATLAS
)
elseif("NRF52840_DK" IN_LIST MBED_TARGET_LABELS)
target_include_directories(mbed-core
INTERFACE
TARGET_NRF52840_DK
)
endif()
if(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(LINKER_FILE device/TOOLCHAIN_ARM_STD/nRF52840.sct)
set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_nrf52840.S)
elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/NRF52840.ld)
set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_NRF52840.S)
endif()
set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE})
target_include_directories(mbed-core
INTERFACE
.
./config
config
device
)
target_sources(mbed-core
INTERFACE
PeripheralPins.c
USBPhy_Nordic.cpp
)
add_subdirectory(device)
device/cmsis_nvic.c
device/system_nrf52840.c
${STARTUP_FILE}
)

View File

@ -1,7 +0,0 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
target_include_directories(mbed-core
INTERFACE
.
)

View File

@ -1,27 +0,0 @@
# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM")
set(STARTUP_FILE TOOLCHAIN_GCC_ARM/startup_NRF52840.S)
set(LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/TOOLCHAIN_GCC_ARM/NRF52840.ld)
elseif(${MBED_TOOLCHAIN} STREQUAL "ARM")
set(STARTUP_FILE TOOLCHAIN_ARM_STD/startup_nrf52840.S)
set(LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/TOOLCHAIN_ARM_STD/nRF52840.sct)
elseif(${MBED_TOOLCHAIN} STREQUAL "IAR")
set(STARTUP_FILE TOOLCHAIN_IAR/startup_NRF52840_IAR.S)
set(LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/TOOLCHAIN_IAR/nRF52840.icf)
endif()
set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${LINKER_FILE})
target_include_directories(mbed-core
INTERFACE
.
)
target_sources(mbed-core
INTERFACE
${STARTUP_FILE}
cmsis_nvic.c
system_nrf52840.c
)

View File

@ -4,9 +4,9 @@
target_include_directories(mbed-core
INTERFACE
./libraries
./libraries/fstorage
./nrf_soc_nosd/
libraries
libraries/fstorage
nrf_soc_nosd
)
target_sources(mbed-core

View File

@ -4,22 +4,22 @@
target_include_directories(mbed-core
INTERFACE
./libraries
./libraries/atomic
./libraries/atomic_fifo
./libraries/balloc
./libraries/delay
./libraries/experimental_log
./libraries/experimental_log/src
./libraries/experimental_memobj
./libraries/experimental_section_vars
./libraries/fds
./libraries/fstorage
./libraries/queue
./libraries/spi_mngr
./libraries/strerror
./libraries/twi_mngr
./libraries/util
libraries
libraries/atomic
libraries/atomic_fifo
libraries/balloc
libraries/delay
libraries/experimental_log
libraries/experimental_log/src
libraries/experimental_memobj
libraries/experimental_section_vars
libraries/fds
libraries/fstorage
libraries/queue
libraries/spi_mngr
libraries/strerror
libraries/twi_mngr
libraries/util
)
target_sources(mbed-core

View File

@ -4,9 +4,9 @@
target_include_directories(mbed-core
INTERFACE
.
./nrfx
./nrfx/legacy
./nrfx/legacy/ble_flash
nrfx
nrfx/legacy
nrfx/legacy/ble_flash
)
target_sources(mbed-core

View File

@ -4,16 +4,16 @@
target_include_directories(mbed-core
INTERFACE
.
./nrfx
./nrfx/drivers
./nrfx/drivers/include
./nrfx/drivers/src
./nrfx/drivers/src/prs
./nrfx/hal
./nrfx/mdk
./nrfx/soc
./softdevice
./softdevice/common
nrfx
nrfx/drivers
nrfx/drivers/include
nrfx/drivers/src
nrfx/drivers/src/prs
nrfx/hal
nrfx/mdk
nrfx/soc
softdevice
softdevice/common
)
target_sources(mbed-core

View File

@ -19,7 +19,6 @@ The full profile with the selected printf and C libraries.
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
@ -27,6 +26,7 @@ The following targets are supported:
- Freescale targets
- GigaDevice targets
- MAXIM targets
- Nordic targets
- NXP targets
- Renesas targets
- Samsung targets