Commit 60d5af97 by Tobias Langer

Added configuration option for hard realtime

The cmake configuration option HARD_REALTIME was added. This sets or
unsets the compile time variable EMBB_HARD_REALTIME.
parent 784baa28
...@@ -85,6 +85,7 @@ option(INSTALL_DOCS "Specify whether Doxygen docs should be installed" ON) ...@@ -85,6 +85,7 @@ option(INSTALL_DOCS "Specify whether Doxygen docs should be installed" ON)
option(WARNINGS_ARE_ERRORS "Specify whether warnings should be treated as errors" OFF) option(WARNINGS_ARE_ERRORS "Specify whether warnings should be treated as errors" OFF)
option(USE_AUTOMATIC_INITIALIZATION "Specify whether the MTAPI C++ interface, algorithms and dataflow should automatically intialize the MTAPI node if no explicit initialization is present" ON) option(USE_AUTOMATIC_INITIALIZATION "Specify whether the MTAPI C++ interface, algorithms and dataflow should automatically intialize the MTAPI node if no explicit initialization is present" ON)
option(BUILD_OPENCL_PLUGIN "Specify whether the MTAPI OpenCL plugin should be built" OFF) option(BUILD_OPENCL_PLUGIN "Specify whether the MTAPI OpenCL plugin should be built" OFF)
option(HARD_REALTIME "Specify whether hard real-time scheduling should be activated" ON)
## LOCAL INSTALLATION OF SUBPROJECT BINARIES ## LOCAL INSTALLATION OF SUBPROJECT BINARIES
# #
...@@ -149,6 +150,10 @@ if(CUDA_FOUND) ...@@ -149,6 +150,10 @@ if(CUDA_FOUND)
list(APPEND EXPECTED_EMBB_TEST_EXECUTABLES "embb_mtapi_cuda_c_test") list(APPEND EXPECTED_EMBB_TEST_EXECUTABLES "embb_mtapi_cuda_c_test")
endif() endif()
# Adding hard real-time support with slightly different scheduling
if(HARD_REALTIME STREQUAL ON)
set(EMBB_HARD_REALTIME 1)
endif()
## Copy test execution script to local binaries folder ## Copy test execution script to local binaries folder
......
...@@ -53,6 +53,12 @@ ...@@ -53,6 +53,12 @@
*/ */
#cmakedefine EMBB_PLATFORM_HAS_GLIB_CPU #cmakedefine EMBB_PLATFORM_HAS_GLIB_CPU
/**
* If defined, instead of the MTAPI round-robin work-stealing scheduling with
* local queues per priority, global edf is used for scheduling in order to
* guarantee hard real-time bounds.
*/
#cmakedefine EMBB_HARD_REALTIME
#define EMBB_BASE_VERSION_MAJOR ${EMBB_BASE_VERSION_MAJOR} #define EMBB_BASE_VERSION_MAJOR ${EMBB_BASE_VERSION_MAJOR}
#define EMBB_BASE_VERSION_MINOR ${EMBB_BASE_VERSION_MINOR} #define EMBB_BASE_VERSION_MINOR ${EMBB_BASE_VERSION_MINOR}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment