diff --git a/targets/CMakeLists.txt b/targets/CMakeLists.txt index 2c96157c19..ff9a5d9552 100644 --- a/targets/CMakeLists.txt +++ b/targets/CMakeLists.txt @@ -17,6 +17,8 @@ elseif("NUVOTON" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_NUVOTON) elseif("NXP" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_NXP) +elseif("Samsung" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_Samsung elseif("Silicon_Labs" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_Silicon_Labs) elseif("STM" IN_LIST MBED_TARGET_LABELS) diff --git a/targets/TARGET_Samsung/CMakeLists.txt b/targets/TARGET_Samsung/CMakeLists.txt new file mode 100644 index 0000000000..4a93bfe1dd --- /dev/null +++ b/targets/TARGET_Samsung/CMakeLists.txt @@ -0,0 +1,8 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if("SIDK_S1SBP6A" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_SIDK_S1SBP6A) +elseif("SIDK_S5JS100" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_SIDK_S5JS100) +endif() diff --git a/targets/TARGET_Samsung/TARGET_SIDK_S1SBP6A/CMakeLists.txt b/targets/TARGET_Samsung/TARGET_SIDK_S1SBP6A/CMakeLists.txt new file mode 100644 index 0000000000..d4cc5de3fb --- /dev/null +++ b/targets/TARGET_Samsung/TARGET_SIDK_S1SBP6A/CMakeLists.txt @@ -0,0 +1,44 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE device/TOOLCHAIN_ARM_STD/s1sbp6a.sct) + set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_s1sbp6a.S) +elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/s1sbp6a.ld) + set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_s1sbp6a.S) +endif() + +set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_include_directories(mbed-core + INTERFACE + . + device +) + +target_sources(mbed-core + INTERFACE + PeripheralPins.c + flash_api.c + gpio_api.c + gpio_irq_api.c + i2c_api.c + pinmap.c + rtc_api.c + serial_api.c + sleep_api.c + spi_api.c + us_ticker.c + watchdog_api.c + + device/s1sbp6a_cmu.c + device/s1sbp6a_gpio.c + device/s1sbp6a_i2c.c + device/s1sbp6a_pmu.c + device/s1sbp6a_rtc.c + device/s1sbp6a_wdog.c + device/system_s1sbp6a.c + + ${STARTUP_FILE} +) diff --git a/targets/TARGET_Samsung/TARGET_SIDK_S1SBP6A/device/TOOLCHAIN_ARM_STD/s1sbp6a.sct b/targets/TARGET_Samsung/TARGET_SIDK_S1SBP6A/device/TOOLCHAIN_ARM_STD/s1sbp6a.sct index 26641b4667..5288d9a2d2 100644 --- a/targets/TARGET_Samsung/TARGET_SIDK_S1SBP6A/device/TOOLCHAIN_ARM_STD/s1sbp6a.sct +++ b/targets/TARGET_Samsung/TARGET_SIDK_S1SBP6A/device/TOOLCHAIN_ARM_STD/s1sbp6a.sct @@ -1,4 +1,4 @@ -#! armcc -E +#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4 ;* Copyright (c) 2006-2019 ARM Limited ;* All rights reserved. ;* SPDX-License-Identifier: Apache-2.0 diff --git a/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/CMakeLists.txt b/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/CMakeLists.txt new file mode 100644 index 0000000000..3ff3fd9014 --- /dev/null +++ b/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/CMakeLists.txt @@ -0,0 +1,71 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE device/TOOLCHAIN_ARM_STD/sidk_s5js100.sct) + set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_sidk_s5js100.S) +elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/sidk_s5js100.ld) + set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_sidk_s5js100.S) +endif() + +set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_include_directories(mbed-core + INTERFACE + . + device + modem + security_subsystem + security_subsystem/drivers +) + +target_sources(mbed-core + INTERFACE +# TODO CMAKE: The files commented below trigger a dependency on other libraries +# they should be moved somewhere in the connectivity directory. + # dcxo_update.cpp + # mbed_main_init.cpp + # modem/modem_io_device.cpp + # modem/modem_link_device_shmem.cpp + # modem/s5js100_mbox_ipc.cpp + # modem/shmem_save.cpp + gpio_api.c + gpio_irq_api.c + i2c_api.c + + mbed_sdk_init.c + pinmap.c + rtc_api.c + s5js100_dcxo.cpp + s5js100_pmip.c + s5js100_pwr.c + s5js100_watchdog.c + security_subsystem + serial_api.c + serial_dummy_api.c + serial_pl011_api.c + serial_usi_api.c + sleep.c + spi_api.c + us_ticker.c + watchdog_api.c + + device/s5js100_pwrcal.c + device/s5js100_systemreset.c + device/sflash_api.cpp + device/system_core_s5js100.c + device/system_core_version.c + device/system_s5js100.c + + security_subsystem/api/trng_api.c + + security_subsystem/drivers/mb_cmd_hash.c + security_subsystem/drivers/mb_cmd_rng.c + security_subsystem/drivers/mb_cmd_system.c + security_subsystem/drivers/sss_driver_rng.c + security_subsystem/drivers/sss_driver_sha2.c + security_subsystem/drivers/sss_driver_util.c + + ${STARTUP_FILE} +) diff --git a/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/device/TOOLCHAIN_ARM_STD/sidk_s5js100.sct b/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/device/TOOLCHAIN_ARM_STD/sidk_s5js100.sct index 136a9cbb59..727ed332e9 100755 --- a/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/device/TOOLCHAIN_ARM_STD/sidk_s5js100.sct +++ b/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/device/TOOLCHAIN_ARM_STD/sidk_s5js100.sct @@ -1,4 +1,4 @@ -#! armcc -E +#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m7 ;/**************************************************************************** ; * ; * Copyright 2020 Samsung Electronics All Rights Reserved. diff --git a/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/device/system_core_s5js100.c b/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/device/system_core_s5js100.c index ecc3abe754..70b462926e 100644 --- a/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/device/system_core_s5js100.c +++ b/targets/TARGET_Samsung/TARGET_SIDK_S5JS100/device/system_core_s5js100.c @@ -129,7 +129,7 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) #define S5JS100_BOOTMEM_BASE 0x00000000 extern uint32_t __vector_table; extern uint32_t __Vectors_Size; -#elif defined (TOOLCHAIN_ARM_STD)/*__ARMCC_VERSION)*/ +#elif defined(__ARMCC_VERSION) #define S5JS100_BOOTMEM_BASE 0x00000000 extern uint32_t __Vectors; extern uint32_t __Vectors_Size; @@ -166,7 +166,7 @@ void SystemCoreConfig() //*dest++ = *src++; } -#elif defined (TOOLCHAIN_ARM_STD)/*__ARMCC_VERSION)*/ +#elif defined(__ARMCC_VERSION) src = (uint32_t *)&__Vectors; dest = (uint32_t *)S5JS100_BOOTMEM_BASE; diff --git a/tools/cmake/README.md b/tools/cmake/README.md index 5fc82fa2c9..a45367ad68 100644 --- a/tools/cmake/README.md +++ b/tools/cmake/README.md @@ -26,9 +26,10 @@ The following targets are supported: - GigaDevice targets - MAXIM targets - NXP targets +- Samsung targets - Silicon Labs targets - STM targets -- WICED +- WICED targets ### Supported toolchains