aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJonny Svärd <jonny.svaerd@arm.com>2023-12-18 17:19:15 +0100
committerJonny Svärd <jonny.svaerd@arm.com>2023-12-19 12:54:45 +0100
commita2732ecd9cb5f5ad76b34a01b4c9b03297c845b8 (patch)
treeb8bb840b5b4bedaa5196c12ebd3933c5359e646b /CMakeLists.txt
parent0189cd2b334b2d88302d13d6003c50a642db0bb5 (diff)
downloadethos-u-core-driver-a2732ecd9cb5f5ad76b34a01b4c9b03297c845b8.tar.gz
Support timeout for interrupt semaphore24.02-rc124.02
Introduce ETHOSU_INFERENCE_TIMEOUT CMake variable to set an arbitrary timeout value that will be sent as argument to ethosu_semaphore_take() for the interrupt semaphore. Adding the ability to have a timeout for an inference. (Defaults to no timeout/wait forever.) Implement a placeholder mutex for the baremetal example and add error checks for mutex_create() call. Change-Id: Ia74391620340a27c23dc3d15f9ba742c674c8bfa Signed-off-by: Jonny Svärd <jonny.svaerd@arm.com>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt10
1 files changed, 9 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bb9f22d..350ac40 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,6 +32,7 @@ set(LOG_NAMES err warning info debug)
set(ETHOSU_LOG_ENABLE ON CACHE BOOL "Toggle driver logs on/off (Defaults to ON)")
set(ETHOSU_LOG_SEVERITY "warning" CACHE STRING "Driver log severity level ${LOG_NAMES} (Defaults to 'warning')")
set(ETHOSU_TARGET_NPU_CONFIG "ethos-u55-128" CACHE STRING "Default NPU configuration")
+set(ETHOSU_INFERENCE_TIMEOUT "" CACHE STRING "Inference timeout (unit is implementation defined)")
set_property(CACHE ETHOSU_LOG_SEVERITY PROPERTY STRINGS ${LOG_NAMES})
#
@@ -75,7 +76,13 @@ else()
message(FATAL_ERROR "Invalid NPU configuration")
endif()
-
+if(NOT "${ETHOSU_INFERENCE_TIMEOUT}" STREQUAL "")
+ target_compile_definitions(ethosu_core_driver PRIVATE
+ ETHOSU_SEMAPHORE_WAIT_INFERENCE=${ETHOSU_INFERENCE_TIMEOUT})
+ set(ETHOSU_INFERENCE_TIMEOUT_TEXT ${ETHOSU_INFERENCE_TIMEOUT})
+else()
+ set(ETHOSU_INFERENCE_TIMEOUT_TEXT "Default (no timeout)")
+endif()
# Set the log level for the target
target_compile_definitions(ethosu_core_driver PRIVATE
ETHOSU_LOG_SEVERITY=${LOG_SEVERITY}
@@ -100,4 +107,5 @@ message(STATUS "CMAKE_SYSTEM_PROCESSOR : ${CMAKE_SYSTEM_PROCESSO
message(STATUS "CMSIS_PATH : ${CMSIS_PATH}")
message(STATUS "ETHOSU_LOG_ENABLE : ${ETHOSU_LOG_ENABLE}")
message(STATUS "ETHOSU_LOG_SEVERITY : ${ETHOSU_LOG_SEVERITY}")
+message(STATUS "ETHOSU_INFERENCE_TIMEOUT : ${ETHOSU_INFERENCE_TIMEOUT_TEXT}")
message(STATUS "*******************************************************")