aboutsummaryrefslogtreecommitdiff
path: root/applications/message_handler_openamp/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'applications/message_handler_openamp/CMakeLists.txt')
-rw-r--r--applications/message_handler_openamp/CMakeLists.txt76
1 files changed, 76 insertions, 0 deletions
diff --git a/applications/message_handler_openamp/CMakeLists.txt b/applications/message_handler_openamp/CMakeLists.txt
new file mode 100644
index 0000000..f2624c3
--- /dev/null
+++ b/applications/message_handler_openamp/CMakeLists.txt
@@ -0,0 +1,76 @@
+#
+# SPDX-FileCopyrightText: Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+#
+# 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
+#
+# 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.
+#
+
+if(NOT TARGET freertos_kernel)
+ message("Skipping message handler openamp")
+ return()
+endif()
+
+#############################################################################
+# Configuration
+#############################################################################
+
+set(MESSAGE_HANDLER_MODEL_0 "" CACHE STRING "Path to built in model 0")
+set(MESSAGE_HANDLER_MODEL_1 "" CACHE STRING "Path to built in model 1")
+set(MESSAGE_HANDLER_MODEL_2 "" CACHE STRING "Path to built in model 2")
+set(MESSAGE_HANDLER_MODEL_3 "" CACHE STRING "Path to built in model 3")
+
+set(MESSAGE_HANDLER_ARENA_SIZE 2000000 CACHE STRING "Total size of all message handler tensor arenas")
+
+#############################################################################
+# TFLM arena
+#############################################################################
+
+# Split total tensor arena equally for each NPU
+if(TARGET ethosu_core_driver AND ETHOSU_TARGET_NPU_COUNT GREATER 0)
+ set(NUM_ARENAS ${ETHOSU_TARGET_NPU_COUNT})
+else()
+ set(NUM_ARENAS 1)
+endif()
+
+math(EXPR TENSOR_ARENA_SIZE "${MESSAGE_HANDLER_ARENA_SIZE} / ${NUM_ARENAS}")
+
+#############################################################################
+# Message handler application
+#############################################################################
+
+ethosu_add_executable(message_handler_openamp
+ SOURCES
+ main.cpp
+ core_driver_mutex.cpp
+ freertos_allocator.cpp
+ inference_runner.cpp
+ message_handler.cpp
+ remoteproc.cpp
+ LIBRARIES
+ $<$<TARGET_EXISTS:ethosu_core_driver>:ethosu_core_driver>
+ ethosu_log
+ ethosu_mailbox
+ freertos_kernel
+ inference_process
+ openamp-freertos)
+
+target_include_directories(message_handler_openamp PRIVATE
+ ${LINUX_DRIVER_STACK_PATH}/kernel)
+
+target_compile_definitions(message_handler_openamp PRIVATE
+ TENSOR_ARENA_SIZE=${TENSOR_ARENA_SIZE}
+ $<$<BOOL:${MESSAGE_HANDLER_MODEL_0}>:MODEL_0=${MESSAGE_HANDLER_MODEL_0}>
+ $<$<BOOL:${MESSAGE_HANDLER_MODEL_1}>:MODEL_1=${MESSAGE_HANDLER_MODEL_1}>
+ $<$<BOOL:${MESSAGE_HANDLER_MODEL_2}>:MODEL_2=${MESSAGE_HANDLER_MODEL_2}>
+ $<$<BOOL:${MESSAGE_HANDLER_MODEL_3}>:MODEL_3=${MESSAGE_HANDLER_MODEL_3}>)