From 9596c1beea9a9c01b5409dd37c76dfa07b6fa75d Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Tue, 22 Dec 2020 10:28:27 -0800 Subject: [PATCH 1/7] CMake: Add platform greentea test with CMake --- .../TESTS/mbed_functional/callback/CMakeLists.txt | 13 +++++++++++++ .../mbed_functional/callback_big/CMakeLists.txt | 13 +++++++++++++ .../mbed_functional/callback_small/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_micro/attributes/CMakeLists.txt | 15 +++++++++++++++ .../mbed_micro/call_before_main/CMakeLists.txt | 13 +++++++++++++ .../tests/TESTS/mbed_micro/cpp/CMakeLists.txt | 13 +++++++++++++ .../tests/TESTS/mbed_micro/div/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_micro/static_assert/CMakeLists.txt | 15 +++++++++++++++ .../mbed_platform/CircularBuffer/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_platform/FileHandle/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_platform/SharedPtr/CMakeLists.txt | 13 +++++++++++++ .../mbed_platform/SingletonPtr/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_platform/Stream/CMakeLists.txt | 13 +++++++++++++ .../mbed_platform/Transaction/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_platform/atomic/CMakeLists.txt | 13 +++++++++++++ .../mbed_platform/crash_reporting/CMakeLists.txt | 13 +++++++++++++ .../mbed_platform/critical_section/CMakeLists.txt | 13 +++++++++++++ .../mbed_platform/error_handling/CMakeLists.txt | 13 +++++++++++++ .../minimal-printf/compliance/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_platform/stats_cpu/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_platform/stats_heap/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_platform/stats_sys/CMakeLists.txt | 13 +++++++++++++ .../mbed_platform/stats_thread/CMakeLists.txt | 13 +++++++++++++ .../mbed_platform/system_reset/CMakeLists.txt | 13 +++++++++++++ .../TESTS/mbed_platform/wait_ns/CMakeLists.txt | 13 +++++++++++++ 25 files changed, 329 insertions(+) create mode 100644 platform/tests/TESTS/mbed_functional/callback/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_functional/callback_big/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_functional/callback_small/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_micro/attributes/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_micro/call_before_main/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_micro/cpp/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_micro/div/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_micro/static_assert/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/CircularBuffer/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/FileHandle/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/SharedPtr/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/SingletonPtr/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/Stream/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/Transaction/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/atomic/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/crash_reporting/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/critical_section/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/error_handling/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/minimal-printf/compliance/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/stats_heap/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/stats_sys/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/system_reset/CMakeLists.txt create mode 100644 platform/tests/TESTS/mbed_platform/wait_ns/CMakeLists.txt diff --git a/platform/tests/TESTS/mbed_functional/callback/CMakeLists.txt b/platform/tests/TESTS/mbed_functional/callback/CMakeLists.txt new file mode 100644 index 00000000000..a73ae51215a --- /dev/null +++ b/platform/tests/TESTS/mbed_functional/callback/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-functional-callback) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_functional/callback_big/CMakeLists.txt b/platform/tests/TESTS/mbed_functional/callback_big/CMakeLists.txt new file mode 100644 index 00000000000..5963f51f4b6 --- /dev/null +++ b/platform/tests/TESTS/mbed_functional/callback_big/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-functional-callback-big) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_functional/callback_small/CMakeLists.txt b/platform/tests/TESTS/mbed_functional/callback_small/CMakeLists.txt new file mode 100644 index 00000000000..54adf70846b --- /dev/null +++ b/platform/tests/TESTS/mbed_functional/callback_small/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-functional-callback-small) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_micro/attributes/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/attributes/CMakeLists.txt new file mode 100644 index 00000000000..5a9ec666f88 --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/attributes/CMakeLists.txt @@ -0,0 +1,15 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-attributes) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +list(APPEND TEST_SOURCE_LIST weak.c attributes.c) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET} TEST_SOURCES ${TEST_SOURCE_LIST}) diff --git a/platform/tests/TESTS/mbed_micro/call_before_main/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/call_before_main/CMakeLists.txt new file mode 100644 index 00000000000..7a1e30b31c4 --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/call_before_main/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-call-before-main) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_micro/cpp/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/cpp/CMakeLists.txt new file mode 100644 index 00000000000..f3635a3429d --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/cpp/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-cpp) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_micro/div/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/div/CMakeLists.txt new file mode 100644 index 00000000000..0add5bc0669 --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/div/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-div) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_micro/static_assert/CMakeLists.txt b/platform/tests/TESTS/mbed_micro/static_assert/CMakeLists.txt new file mode 100644 index 00000000000..7da08b8c292 --- /dev/null +++ b/platform/tests/TESTS/mbed_micro/static_assert/CMakeLists.txt @@ -0,0 +1,15 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-mbed-micro-static-assert) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +list(APPEND TEST_SOURCE_LIST test_c.c test_cpp.cpp) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET} TEST_SOURCES ${TEST_SOURCE_LIST}) diff --git a/platform/tests/TESTS/mbed_platform/CircularBuffer/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/CircularBuffer/CMakeLists.txt new file mode 100644 index 00000000000..297273f0de8 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/CircularBuffer/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-circular-buffer) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/FileHandle/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/FileHandle/CMakeLists.txt new file mode 100644 index 00000000000..f5ab21b6305 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/FileHandle/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-filehandle) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/SharedPtr/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/SharedPtr/CMakeLists.txt new file mode 100644 index 00000000000..39ba0319f63 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/SharedPtr/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-sharedptr) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/SingletonPtr/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/SingletonPtr/CMakeLists.txt new file mode 100644 index 00000000000..9a20d6d43ea --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/SingletonPtr/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-singletonptr) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/Stream/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/Stream/CMakeLists.txt new file mode 100644 index 00000000000..0fde0adf564 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/Stream/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stream) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/Transaction/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/Transaction/CMakeLists.txt new file mode 100644 index 00000000000..f78777cfb74 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/Transaction/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-transaction) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/atomic/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/atomic/CMakeLists.txt new file mode 100644 index 00000000000..8020cfba88e --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/atomic/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-atomic) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/crash_reporting/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/crash_reporting/CMakeLists.txt new file mode 100644 index 00000000000..3a1e96fd42b --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/crash_reporting/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-crash-reporting) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/critical_section/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/critical_section/CMakeLists.txt new file mode 100644 index 00000000000..2da02fb5fbc --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/critical_section/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-critical-section) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/error_handling/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/error_handling/CMakeLists.txt new file mode 100644 index 00000000000..8d6317cdeb4 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/error_handling/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-error-handling) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/minimal-printf/compliance/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/minimal-printf/compliance/CMakeLists.txt new file mode 100644 index 00000000000..a21f584418b --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/minimal-printf/compliance/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-minimal-printf-compliance) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET} TEST_SOURCES mbed_printf.c) diff --git a/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt new file mode 100644 index 00000000000..058476a342a --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/stats_cpu/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stats-cpu) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/stats_heap/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_heap/CMakeLists.txt new file mode 100644 index 00000000000..45606084c5f --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/stats_heap/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stats-heap) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/stats_sys/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_sys/CMakeLists.txt new file mode 100644 index 00000000000..670b5714d97 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/stats_sys/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stats-sys) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt new file mode 100644 index 00000000000..6d066d32425 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/stats_thread/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-stats-thread) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/system_reset/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/system_reset/CMakeLists.txt new file mode 100644 index 00000000000..815364a63ef --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/system_reset/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-system-reset) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) diff --git a/platform/tests/TESTS/mbed_platform/wait_ns/CMakeLists.txt b/platform/tests/TESTS/mbed_platform/wait_ns/CMakeLists.txt new file mode 100644 index 00000000000..d4969d09539 --- /dev/null +++ b/platform/tests/TESTS/mbed_platform/wait_ns/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.19.0 FATAL_ERROR) + +set(MBED_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../.. CACHE INTERNAL "") +set(TEST_TARGET mbed-platform-wait-ns) + +include(${MBED_PATH}/tools/cmake/mbed_greentea.cmake) + +project(${TEST_TARGET}) + +mbed_greentea_cmake_macro(TEST_NAME ${TEST_TARGET}) From bcbd243b1bd6c78fd255a211ec07c46e859f2e6c Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Tue, 22 Dec 2020 10:29:10 -0800 Subject: [PATCH 2/7] Create Greentea CMake Macro --- tools/cmake/mbed_greentea.cmake | 65 +++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 tools/cmake/mbed_greentea.cmake diff --git a/tools/cmake/mbed_greentea.cmake b/tools/cmake/mbed_greentea.cmake new file mode 100644 index 00000000000..19337e0eed3 --- /dev/null +++ b/tools/cmake/mbed_greentea.cmake @@ -0,0 +1,65 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0# the macro + +set(MBED_CONFIG_PATH ${CMAKE_CURRENT_SOURCE_DIR}/.mbedbuild CACHE INTERNAL "") + +include(${MBED_PATH}/tools/cmake/app.cmake) + +# CMake Macro for generalizing CMake configuration across the greentea test suite with configurable parameters +# Macro args: +# TEST_NAME - Test suite name +# TEST_INCLUDE_DIRS - Test suite include directories for the test +# TEST_SOURCES - Test suite sources +# TEST_REQUIRED_LIBS - Test suite required libraries +# +# calling the macro: +# mbed_greentea_cmake_macro(TEST_NAME mbed-platform-system-reset TEST_INCLUDE_DIRS mbed_store TEST_SOURCES foo.cpp bar.cpp TEST_REQUIRED_LIBS mbed-kvstore mbed-xyz) + +macro(mbed_greentea_cmake_macro) + set(options) + set(singleValueArgs TEST_NAME) + set(multipleValueArgs TEST_INCLUDE_DIRS TEST_SOURCES TEST_REQUIRED_LIBS) + cmake_parse_arguments(MBED_GREENTEA "${options}" "${singleValueArgs}" + "${multipleValueArgs}" ${ARGN} ) + +set(TEST_NAME ${MBED_GREENTEA_TEST_NAME}) + +add_subdirectory(${MBED_PATH} build) + +add_executable(${TEST_NAME}) + +mbed_configure_app_target(${TEST_NAME}) + +mbed_set_mbed_target_linker_script(${TEST_NAME}) + +target_include_directories(${TEST_NAME} + PRIVATE + . + ${MBED_GREENTEA_TEST_INCLUDE_DIRS} +) + +target_sources(${TEST_NAME} + PRIVATE + main.cpp + ${MBED_GREENTEA_TEST_SOURCES} +) + +if(MBED_BAREMETAL_GREENTEA_TEST) + list(APPEND MBED_GREENTEA_TEST_REQUIRED_LIBS mbed-baremetal mbed-greentea) +else() + list(APPEND MBED_GREENTEA_TEST_REQUIRED_LIBS mbed-os mbed-greentea) +endif() + +target_link_libraries(${TEST_NAME} + PRIVATE + ${MBED_GREENTEA_TEST_REQUIRED_LIBS} +) + +mbed_set_post_build(${TEST_NAME}) + +option(VERBOSE_BUILD "Have a verbose build process") +if(VERBOSE_BUILD) + set(CMAKE_VERBOSE_MAKEFILE ON) +endif() + +endmacro() From 634d3be5f0678ab422452976ea401af1124ebf07 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj Date: Wed, 23 Dec 2020 02:58:32 -0800 Subject: [PATCH 3/7] Incorporating the review comments --- tools/cmake/README.md | 17 ++++++ tools/cmake/mbed_greentea.cmake | 95 +++++++++++++++++++-------------- 2 files changed, 71 insertions(+), 41 deletions(-) diff --git a/tools/cmake/README.md b/tools/cmake/README.md index dba3c26bb8c..cc72ae6f73f 100644 --- a/tools/cmake/README.md +++ b/tools/cmake/README.md @@ -76,3 +76,20 @@ If you're running CMake directly, you may need to pass it in yourself as follows ``` cmake -S -B -DCMAKE_BUILD_TYPE=debug ``` + +## How to build a greentea test + +Install prerequisites suggested in the previous section and follow the below steps to build: +* Generate .mbed_build configuration for DISCO_L475VG_IOT01A target from blinky example and copied into the test_suite directory. +* Change directory into the test suite directory +* run below command to build full profile green tea + + ``` + touch mbed-os.lib;mkdir build;cd build;cmake .. -GNinja;cmake --build . + ``` +* run below command to build baremetal profile green tea + ``` + touch mbed-os.lib;mkdir build;cd build;cmake .. -GNinja -DMBED_BAREMETAL_GREENTEA_TEST=ON;cmake --build . + ``` + +Note: This steps will get evolve once mbedtools have a proper way of invoking greentea test using mbedtools command diff --git a/tools/cmake/mbed_greentea.cmake b/tools/cmake/mbed_greentea.cmake index 19337e0eed3..71533fc8aec 100644 --- a/tools/cmake/mbed_greentea.cmake +++ b/tools/cmake/mbed_greentea.cmake @@ -1,5 +1,5 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0# the macro +# SPDX-License-Identifier: Apache-2.0 set(MBED_CONFIG_PATH ${CMAKE_CURRENT_SOURCE_DIR}/.mbedbuild CACHE INTERNAL "") @@ -13,53 +13,66 @@ include(${MBED_PATH}/tools/cmake/app.cmake) # TEST_REQUIRED_LIBS - Test suite required libraries # # calling the macro: -# mbed_greentea_cmake_macro(TEST_NAME mbed-platform-system-reset TEST_INCLUDE_DIRS mbed_store TEST_SOURCES foo.cpp bar.cpp TEST_REQUIRED_LIBS mbed-kvstore mbed-xyz) +# mbed_greentea_cmake_macro( +# TEST_NAME mbed-platform-system-reset +# TEST_INCLUDE_DIRS mbed_store +# TEST_SOURCES foo.cpp bar.cpp +# TEST_REQUIRED_LIBS mbed-kvstore mbed-xyz +# ) macro(mbed_greentea_cmake_macro) set(options) set(singleValueArgs TEST_NAME) - set(multipleValueArgs TEST_INCLUDE_DIRS TEST_SOURCES TEST_REQUIRED_LIBS) - cmake_parse_arguments(MBED_GREENTEA "${options}" "${singleValueArgs}" - "${multipleValueArgs}" ${ARGN} ) - -set(TEST_NAME ${MBED_GREENTEA_TEST_NAME}) - -add_subdirectory(${MBED_PATH} build) - -add_executable(${TEST_NAME}) - -mbed_configure_app_target(${TEST_NAME}) - -mbed_set_mbed_target_linker_script(${TEST_NAME}) - -target_include_directories(${TEST_NAME} - PRIVATE - . - ${MBED_GREENTEA_TEST_INCLUDE_DIRS} -) - -target_sources(${TEST_NAME} - PRIVATE - main.cpp - ${MBED_GREENTEA_TEST_SOURCES} -) - -if(MBED_BAREMETAL_GREENTEA_TEST) - list(APPEND MBED_GREENTEA_TEST_REQUIRED_LIBS mbed-baremetal mbed-greentea) -else() + set(multipleValueArgs + TEST_INCLUDE_DIRS + TEST_SOURCES + TEST_REQUIRED_LIBS + ) + cmake_parse_arguments(MBED_GREENTEA + "${options}" + "${singleValueArgs}" + "${multipleValueArgs}" + ${ARGN} + ) + + set(TEST_NAME ${MBED_GREENTEA_TEST_NAME}) + + add_subdirectory(${MBED_PATH} build) + + add_executable(${TEST_NAME}) + + mbed_configure_app_target(${TEST_NAME}) + + mbed_set_mbed_target_linker_script(${TEST_NAME}) + + target_include_directories(${TEST_NAME} + PRIVATE + . + ${MBED_GREENTEA_TEST_INCLUDE_DIRS} + ) + + target_sources(${TEST_NAME} + PRIVATE + main.cpp + ${MBED_GREENTEA_TEST_SOURCES} + ) + + if(MBED_BAREMETAL_GREENTEA_TEST) + list(APPEND MBED_GREENTEA_TEST_REQUIRED_LIBS mbed-baremetal mbed-greentea) + else() list(APPEND MBED_GREENTEA_TEST_REQUIRED_LIBS mbed-os mbed-greentea) -endif() + endif() -target_link_libraries(${TEST_NAME} - PRIVATE - ${MBED_GREENTEA_TEST_REQUIRED_LIBS} -) + target_link_libraries(${TEST_NAME} + PRIVATE + ${MBED_GREENTEA_TEST_REQUIRED_LIBS} + ) -mbed_set_post_build(${TEST_NAME}) + mbed_set_post_build(${TEST_NAME}) -option(VERBOSE_BUILD "Have a verbose build process") -if(VERBOSE_BUILD) - set(CMAKE_VERBOSE_MAKEFILE ON) -endif() + option(VERBOSE_BUILD "Have a verbose build process") + if(VERBOSE_BUILD) + set(CMAKE_VERBOSE_MAKEFILE ON) + endif() endmacro() From eb9bb7bf3318e42313f45f14f6837e330e1cf530 Mon Sep 17 00:00:00 2001 From: Rajkumar Kanagaraj <45570536+rajkan01@users.noreply.github.com> Date: Wed, 23 Dec 2020 08:29:22 -0800 Subject: [PATCH 4/7] Apply suggestions from code review Co-authored-by: Hugues Kamba <41612201+hugueskamba@users.noreply.github.com> --- tools/cmake/README.md | 18 +++++++++++------- tools/cmake/mbed_greentea.cmake | 18 +++++++++--------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/tools/cmake/README.md b/tools/cmake/README.md index cc72ae6f73f..e027944b456 100644 --- a/tools/cmake/README.md +++ b/tools/cmake/README.md @@ -80,16 +80,20 @@ cmake -S -B -DCMAKE_BUILD_TYPE=debug ## How to build a greentea test Install prerequisites suggested in the previous section and follow the below steps to build: -* Generate .mbed_build configuration for DISCO_L475VG_IOT01A target from blinky example and copied into the test_suite directory. -* Change directory into the test suite directory -* run below command to build full profile green tea +* Generate the `.mbedbuild/` configuration directory for the Mbed target you want to run the test on using [mbed-os-example-blinky](https://github.com/ARMmbed/mbed-os-example-blinky) +``` +$ mbedtools configure -t -m +``` +* Copy `.mbedbuild/` into the test suite directory. +* Set your current directory to the test suite directory +* Run the following command to build the test binary with the full profile ``` - touch mbed-os.lib;mkdir build;cd build;cmake .. -GNinja;cmake --build . + touch mbed-os.lib && mkdir cmake_build && cd cmake_build && cmake .. -G Ninja && cmake --build . ``` -* run below command to build baremetal profile green tea +* Run the following command to build the test binary with the baremetal profile ``` - touch mbed-os.lib;mkdir build;cd build;cmake .. -GNinja -DMBED_BAREMETAL_GREENTEA_TEST=ON;cmake --build . + touch mbed-os.lib && mkdir cmake_build && cd cmake_build && cmake .. -G Ninja -DMBED_BAREMETAL_GREENTEA_TEST=ON && cmake --build . ``` -Note: This steps will get evolve once mbedtools have a proper way of invoking greentea test using mbedtools command +Note: These steps will change when `mbedtools` implements a sub-command to invoke Greentea tests diff --git a/tools/cmake/mbed_greentea.cmake b/tools/cmake/mbed_greentea.cmake index 71533fc8aec..a477196e33a 100644 --- a/tools/cmake/mbed_greentea.cmake +++ b/tools/cmake/mbed_greentea.cmake @@ -23,16 +23,16 @@ include(${MBED_PATH}/tools/cmake/app.cmake) macro(mbed_greentea_cmake_macro) set(options) set(singleValueArgs TEST_NAME) - set(multipleValueArgs - TEST_INCLUDE_DIRS - TEST_SOURCES - TEST_REQUIRED_LIBS + set(multipleValueArgs + TEST_INCLUDE_DIRS + TEST_SOURCES + TEST_REQUIRED_LIBS ) - cmake_parse_arguments(MBED_GREENTEA - "${options}" - "${singleValueArgs}" - "${multipleValueArgs}" - ${ARGN} + cmake_parse_arguments(MBED_GREENTEA + "${options}" + "${singleValueArgs}" + "${multipleValueArgs}" + ${ARGN} ) set(TEST_NAME ${MBED_GREENTEA_TEST_NAME}) From b9e7f88cb1d7fa2f2603adea96fb8ca56718a343 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Wed, 28 Oct 2020 14:51:48 +0100 Subject: [PATCH 5/7] CYW43XXX: make transport layer generic --- .../CyH4TransportDriver.cpp | 64 +++++++++---------- .../COMPONENT_CYW43XXX/CyH4TransportDriver.h | 6 +- 2 files changed, 32 insertions(+), 38 deletions(-) diff --git a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp index 8b9639dac89..e5e67ea5bd2 100644 --- a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp +++ b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp @@ -20,7 +20,6 @@ #include "CyH4TransportDriver.h" #include "mbed_power_mgmt.h" #include "drivers/InterruptIn.h" -#include "cybsp_types.h" #include "Callback.h" #include "rtos/ThisThread.h" #include @@ -31,9 +30,9 @@ namespace cypress_ble { using namespace std::chrono_literals; + CyH4TransportDriver::CyH4TransportDriver(PinName tx, PinName rx, PinName cts, PinName rts, PinName bt_power_name, int baud, PinName bt_host_wake_name, PinName bt_device_wake_name, uint8_t host_wake_irq, uint8_t dev_wake_irq) : - cts(cts), rts(rts), - tx(tx), rx(rx), + uart(tx, rx), cts(cts), rts(rts), bt_host_wake_name(bt_host_wake_name), bt_device_wake_name(bt_device_wake_name), bt_power(bt_power_name, PIN_OUTPUT, PullNone, 0), @@ -47,8 +46,8 @@ CyH4TransportDriver::CyH4TransportDriver(PinName tx, PinName rx, PinName cts, Pi bt_host_wake_active = false; } -CyH4TransportDriver::CyH4TransportDriver(PinName tx, PinName rx, PinName cts, PinName rts, PinName bt_power_name, int baud) : - cts(cts), +CyH4TransportDriver::CyH4TransportDriver(PinName tx, PinName rx, PinName cts, PinName rts, PinName bt_power_name, int baud) : + uart(tx, rx), cts(cts), rts(rts), tx(tx), rx(rx), bt_host_wake_name(NC), @@ -107,16 +106,15 @@ void CyH4TransportDriver::bt_host_wake_fall_irq_handler(void) } } -static void on_controller_irq(void *callback_arg, cyhal_uart_event_t event) +void CyH4TransportDriver::on_controller_irq() { - (void)(event); - cyhal_uart_t *uart_obj = (cyhal_uart_t *)callback_arg; sleep_manager_lock_deep_sleep(); - while (cyhal_uart_readable(uart_obj)) { + while (uart.readable()) { uint8_t char_received; - cyhal_uart_getc(uart_obj, &char_received, 0); - CyH4TransportDriver::on_data_received(&char_received, 1); + if (uart.read(&char_received, 1)) { + CordioHCITransportDriver::on_data_received(&char_received, 1); + } } sleep_manager_unlock_deep_sleep(); @@ -129,14 +127,22 @@ void CyH4TransportDriver::initialize() bt_power = 0; rtos::ThisThread::sleep_for(1ms); - cyhal_uart_init(&uart, tx, rx, NULL, NULL); + uart.format( + /* bits */ 8, + /* parity */ mbed::SerialBase::None, + /* stop bit */ 1 + ); - const cyhal_uart_cfg_t uart_cfg = { .data_bits = 8, .stop_bits = 1, .parity = CYHAL_UART_PARITY_NONE, .rx_buffer = NULL, .rx_buffer_size = 0 }; - cyhal_uart_configure(&uart, &uart_cfg); - cyhal_uart_set_flow_control(&uart, cts, rts); - cyhal_uart_clear(&uart); - cyhal_uart_register_callback(&uart, &on_controller_irq, &uart); - cyhal_uart_enable_event(&uart, CYHAL_UART_IRQ_RX_NOT_EMPTY, CYHAL_ISR_PRIORITY_DEFAULT, true); + uart.set_flow_control( + /* flow */ mbed::SerialBase::RTSCTS, + /* rts */ rts, + /* cts */ cts + ); + + uart.attach( + mbed::callback(this, &CyH4TransportDriver::on_controller_irq), + mbed::SerialBase::RxIrq + ); bt_power = 1; @@ -160,17 +166,6 @@ void CyH4TransportDriver::initialize() void CyH4TransportDriver::terminate() { - cyhal_uart_event_t enable_irq_event = (cyhal_uart_event_t)(CYHAL_UART_IRQ_RX_DONE - | CYHAL_UART_IRQ_TX_DONE - | CYHAL_UART_IRQ_RX_NOT_EMPTY - ); - - cyhal_uart_enable_event(&uart, - enable_irq_event, - CYHAL_ISR_PRIORITY_DEFAULT, - false - ); - if(bt_host_wake.is_connected()) { #if (defined(MBED_TICKLESS) && DEVICE_SLEEP && DEVICE_LPTICKER) @@ -182,7 +177,7 @@ void CyH4TransportDriver::terminate() bt_power = 0; //BT_POWER is an output, should not be freed only set inactive - cyhal_uart_free(&uart); + uart.close(); } uint16_t CyH4TransportDriver::write(uint8_t type, uint16_t len, uint8_t *pData) @@ -194,11 +189,11 @@ uint16_t CyH4TransportDriver::write(uint8_t type, uint16_t len, uint8_t *pData) while (i < len + 1) { uint8_t to_write = i == 0 ? type : pData[i - 1]; - while (cyhal_uart_writable(&uart) == 0); - cyhal_uart_putc(&uart, to_write); + while (uart.writeable() == 0); + uart.write(&to_write, 1); ++i; } - while(cyhal_uart_is_tx_active(&uart)); + while (uart.writeable() == 0); deassert_bt_dev_wake(); sleep_manager_unlock_deep_sleep(); @@ -234,8 +229,7 @@ void CyH4TransportDriver::deassert_bt_dev_wake() void CyH4TransportDriver::update_uart_baud_rate(int baud) { - uint32_t ignore; - cyhal_uart_set_baud(&uart, (uint32_t)baud, &ignore); + uart.baud((uint32_t)baud); } bool CyH4TransportDriver::get_enabled_powersave() diff --git a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.h b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.h index bac796b2eff..df9b085f129 100644 --- a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.h +++ b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.h @@ -24,7 +24,7 @@ #include "ble/driver/CordioHCITransportDriver.h" #include "drivers/DigitalInOut.h" #include "drivers/InterruptIn.h" -#include "cyhal_uart.h" +#include "drivers/UnbufferedSerial.h" namespace ble { namespace vendor { @@ -81,6 +81,7 @@ class CyH4TransportDriver : public CordioHCITransportDriver { private: void assert_bt_dev_wake(); void deassert_bt_dev_wake(); + void on_controller_irq(); // Use HAL serial because Cypress UART is buffered. // The PUTC function does not actually blocks until data is fully transmitted, @@ -89,8 +90,7 @@ class CyH4TransportDriver : public CordioHCITransportDriver { // However UART APIs does not prevent the BT radio from going to sleep. // Use the HAL APIs to prevent the radio from going to sleep until UART transmition is complete. // Mbed layer has no API that distinguish between data in HW buffer v.s. data already transmitted. - - cyhal_uart_t uart; + mbed::UnbufferedSerial uart; PinName cts; PinName rts; PinName tx; From 75ffa1eb21ab974b19591cfc3acc87be6a63ca53 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Thu, 29 Oct 2020 13:30:40 +0100 Subject: [PATCH 6/7] BLE: CYW43XXX: set default baud rate on init() --- .../ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp index e5e67ea5bd2..53d07dd80b2 100644 --- a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp +++ b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/CyH4TransportDriver.cpp @@ -127,6 +127,8 @@ void CyH4TransportDriver::initialize() bt_power = 0; rtos::ThisThread::sleep_for(1ms); + uart.baud(DEF_BT_BAUD_RATE); + uart.format( /* bits */ 8, /* parity */ mbed::SerialBase::None, From 80d287337a30841fb0166cec1d3627323e304856 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Wed, 28 Oct 2020 15:01:53 +0100 Subject: [PATCH 7/7] PortentaH7: add BLE support --- .../TARGET_PORTENTA_H7/cy_bt_cordio_cfg.cpp | 105 ++++++++++++++++++ targets/targets.json | 9 +- 2 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/TARGET_PORTENTA_H7/cy_bt_cordio_cfg.cpp diff --git a/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/TARGET_PORTENTA_H7/cy_bt_cordio_cfg.cpp b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/TARGET_PORTENTA_H7/cy_bt_cordio_cfg.cpp new file mode 100644 index 00000000000..2d668fed9ce --- /dev/null +++ b/connectivity/drivers/ble/FEATURE_BLE/COMPONENT_CYW43XXX/TARGET_PORTENTA_H7/cy_bt_cordio_cfg.cpp @@ -0,0 +1,105 @@ +/******************************************************************************* +* \file cy_bt_cordio_cfg.cpp +* \version 1.0 +* +* +* Low Power Assist BT Pin configuration implementation. +* +******************************************************************************** +* \copyright +* Copyright 2019 Cypress Semiconductor Corporation +* SPDX-License-Identifier: Apache-2.0 +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +#include +#include "ble/driver/CordioHCIDriver.h" +#include "hci_api.h" +#include "hci_cmd.h" +#include "hci_core.h" +#include "bstream.h" +#include "assert.h" +#include +#include "hci_mbed_os_adaptation.h" +#include "CyH4TransportDriver.h" + +#define cyhal_gpio_to_rtos(x) (x) +#define CYCFG_BT_LP_ENABLED (1) +#define CYCFG_BT_HOST_WAKE_IRQ_EVENT WAKE_EVENT_ACTIVE_LOW +#define CYCFG_BT_DEV_WAKE_POLARITY WAKE_EVENT_ACTIVE_LOW + +/******************************************************************************* +* Function Name: ble_cordio_get_h4_transport_driver +******************************************************************************** +* +* Strong implementation of function which calls CyH4TransportDriver constructor and return it +* +* \param none +* +* \return +* Returns the transport driver object +*******************************************************************************/ +ble::vendor::cypress_ble::CyH4TransportDriver& ble_cordio_get_h4_transport_driver() +{ +#if (defined(MBED_TICKLESS) && DEVICE_SLEEP && DEVICE_LPTICKER) + +#if (defined(CYCFG_BT_LP_ENABLED)) + if (CYCFG_BT_LP_ENABLED) { + static ble::vendor::cypress_ble::CyH4TransportDriver s_transport_driver( + /* TX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_TX), + /* RX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RX), + /* cts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_CTS), + /* rts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RTS), + /* power */ cyhal_gpio_to_rtos(CYBSP_BT_POWER), + DEF_BT_BAUD_RATE, + cyhal_gpio_to_rtos(CYBSP_BT_HOST_WAKE), + cyhal_gpio_to_rtos(CYBSP_BT_DEVICE_WAKE), + CYCFG_BT_HOST_WAKE_IRQ_EVENT, + CYCFG_BT_DEV_WAKE_POLARITY + ); + return s_transport_driver; + } else { /* CYCFG_BT_LP_ENABLED */ + static ble::vendor::cypress_ble::CyH4TransportDriver s_transport_driver( + /* TX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_TX), + /* RX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RX), + /* cts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_CTS), + /* rts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RTS), + /* power */ cyhal_gpio_to_rtos(CYBSP_BT_POWER), + DEF_BT_BAUD_RATE); + return s_transport_driver; + } +#else /* (defined(CYCFG_BT_LP_ENABLED)) */ + static ble::vendor::cypress_ble::CyH4TransportDriver s_transport_driver( + /* TX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_TX), + /* RX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RX), + /* cts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_CTS), + /* rts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RTS), + /* power */ cyhal_gpio_to_rtos(CYBSP_BT_POWER), + DEF_BT_BAUD_RATE), + cyhal_gpio_to_rtos(CYBSP_BT_HOST_WAKE), cyhal_gpio_to_rtos(CYBSP_BT_DEVICE_WAKE) + ); + return s_transport_driver; +#endif /* (defined(CYCFG_BT_LP_ENABLED)) */ + +#else /* (defined(MBED_TICKLESS) && DEVICE_SLEEP && DEVICE_LPTICKER) */ + static ble::vendor::cypress_ble::CyH4TransportDriver s_transport_driver( + /* TX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_TX), + /* RX */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RX), + /* cts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_CTS), + /* rts */ cyhal_gpio_to_rtos(CYBSP_BT_UART_RTS), + /* power */ cyhal_gpio_to_rtos(CYBSP_BT_POWER), + DEF_BT_BAUD_RATE); + return s_transport_driver; +#endif /* (defined(MBED_TICKLESS) && DEVICE_SLEEP && DEVICE_LPTICKER) */ +} diff --git a/targets/targets.json b/targets/targets.json index 5ed017fe56b..5e832b80231 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -3021,7 +3021,14 @@ ], "detect_code": ["0813"], "components_add": [ - "QSPIF" + "QSPIF", + "CYW43XXX" + ], + "extra_labels_add": [ + "CORDIO" + ], + "features": [ + "BLE" ], "device_has_add": [ "USBDEVICE",