Add message_handler application

This is an example application for communication with Ethos-U kernel driver

Change-Id: I1d602682cbfdf26a2b082a56ee6c38e93a49ab8d
diff --git a/applications/message_handler/CMakeLists.txt b/applications/message_handler/CMakeLists.txt
new file mode 100644
index 0000000..0cb95cc
--- /dev/null
+++ b/applications/message_handler/CMakeLists.txt
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2020-2021 Arm Limited. All rights reserved.
+#
+# 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("Not building ethosu_message_dispatcher, required freertos not built.")
+    return()
+endif()
+
+set(MESSAGE_HANDLER_ARENA_SIZE 2000000 CACHE STRING "Size of message handler tensor arena")
+
+ethosu_add_executable(message_handler
+    SOURCES
+        main.cpp
+        message_handler.cpp
+        message_queue.cpp
+    LIBRARIES
+        cmsis_device
+        $<$<TARGET_EXISTS:ethosu_core_driver>:ethosu_core_driver>
+        ethosu_mailbox
+        freertos_kernel
+        inference_process)
+
+target_include_directories(message_handler PRIVATE
+    ${LINUX_DRIVER_STACK_PATH}/kernel)
+
+target_compile_definitions(message_handler PRIVATE
+    TENSOR_ARENA_SIZE=${MESSAGE_HANDLER_ARENA_SIZE})