Test: Add integration of the eRPC system
- PSA Client API IDL file
- Client and server init and API wrappers
- Example client application
Signed-off-by: Kevin Peng <kevin.peng@arm.com>
Signed-off-by: Jamie Fox <jamie.fox@arm.com>
Signed-off-by: Summer Qin <summer.qin@arm.com>
Change-Id: If6180fd3e596c9daabd31262fb10ae0a1583bc9b
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 19ccca7..449cbc5 100755
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -1,5 +1,5 @@
#-------------------------------------------------------------------------------
-# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
+# Copyright (c) 2020-2023, Arm Limited. All rights reserved.
# Copyright (c) 2022-2023 Cypress Semiconductor Corporation (an Infineon company)
# or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
#
@@ -250,16 +250,27 @@
############################# Test integration #################################
+if (CONFIG_TFM_ERPC_TEST_FRAMEWORK)
+ set(CONFIG_ENABLE_NS_UART_TX_RX_CONTROL ON CACHE BOOL "Whether to enable UART TX RX")
+ set(ERPC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../erpc)
+ add_subdirectory(${ERPC_DIR}/server ${CMAKE_CURRENT_BINARY_DIR}/erpc/server)
+endif()
+
add_library(tfm_test_app STATIC EXCLUDE_FROM_ALL)
target_sources(tfm_test_app
PRIVATE
- test_app.c
+ $<$<NOT:$<BOOL:${CONFIG_TFM_ERPC_TEST_FRAMEWORK}>>:test_app.c>
+ $<$<BOOL:${CONFIG_TFM_ERPC_TEST_FRAMEWORK}>:erpc_app.c>
+ $<$<BOOL:${CONFIG_TFM_ERPC_TEST_FRAMEWORK}>:${ERPC_REPO_PATH}/erpc_c/setup/erpc_setup_uart_cmsis.cpp>
+ $<$<BOOL:${CONFIG_TFM_ERPC_TEST_FRAMEWORK}>:${ERPC_REPO_PATH}/erpc_c/transports/erpc_uart_cmsis_transport.cpp>
)
target_include_directories(tfm_test_app
PUBLIC
.
+ $<$<BOOL:${CONFIG_TFM_ERPC_TEST_FRAMEWORK}>:${ERPC_DIR}/server>
+ $<$<BOOL:${CONFIG_TFM_ERPC_TEST_FRAMEWORK}>:${ERPC_REPO_PATH}/erpc_c/transports>
)
target_link_libraries(tfm_test_app
@@ -268,6 +279,7 @@
$<$<BOOL:${TEST_PSA_API}>:val_nspe>
$<$<BOOL:${TEST_PSA_API}>:pal_nspe>
$<$<BOOL:${TEST_PSA_API}>:test_combine>
+ $<$<BOOL:${CONFIG_TFM_ERPC_TEST_FRAMEWORK}>:erpc_server>
tfm_api_ns
tfm_log
)
diff --git a/app/erpc_app.c b/app/erpc_app.c
new file mode 100644
index 0000000..af87f94
--- /dev/null
+++ b/app/erpc_app.c
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2017-2023, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include "test_app.h"
+#include "tfm_log.h"
+#include "erpc_server_start.h"
+#include "target_cfg.h"
+
+#include "Driver_USART.h"
+#ifdef ERPC_UART
+extern ARM_DRIVER_USART ERPC_UART;
+#else
+#error "ERPC_UART is not provided!"
+#endif
+
+__attribute__((noreturn))
+void test_app(void *argument)
+{
+ UNUSED_VARIABLE(argument);
+
+ erpc_transport_t transport;
+
+ transport = erpc_transport_cmsis_uart_init((void *)&ERPC_UART);
+ if (!transport) {
+ LOG_MSG("eRPC transport init failed!\r\n");
+ }
+
+ erpc_server_start(transport);
+
+ for (;;) {
+ }
+}