summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKshitij Sisodia <kshitij.sisodia@arm.com>2023-03-17 10:40:45 +0000
committerKshitij Sisodia <kshitij.sisodia@arm.com>2023-03-17 11:22:53 +0000
commit1bd434e1d618b6222968202531e36a922c7c44f7 (patch)
tree267e14ad03d0f61a9cfb7055c12ceb56fa65f9cc
parent26bc923b15be6d1a1788f5afb26241b6fb89a718 (diff)
downloadml-embedded-evaluation-kit-1bd434e1d618b6222968202531e36a922c7c44f7.tar.gz
MLECO-3842, MLECO-3801, MLECO-3899: Minor improvements
Some minor improvements in this patch: * Added notes on troubleshooting WSL2 build issues. * Fixed a stray guard for MPS3_PLATFORM from noise reduction use-case. * The default build script `build_default.py` will now return an error code to the calling process if it fails. Change-Id: I4557a402646fdf903b2cb043bf68d5d0b0d12972 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
-rwxr-xr-xbuild_default.py12
-rw-r--r--docs/documentation.md1
-rw-r--r--docs/sections/troubleshooting.md24
-rw-r--r--source/use_case/noise_reduction/src/MainLoop.cc7
4 files changed, 38 insertions, 6 deletions
diff --git a/build_default.py b/build_default.py
index e35aa1c..1badb02 100755
--- a/build_default.py
+++ b/build_default.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
+# SPDX-FileCopyrightText: Copyright 2021-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");
@@ -130,6 +130,11 @@ def run(
cmake_command, shell=True, stdout=logpipe, stderr=subprocess.STDOUT
)
+ if state.returncode != 0:
+ logging.error("Failed to configure the project.")
+ logpipe.close()
+ sys.exit(state.returncode)
+
make_command = f"{cmake_path} --build {build_dir} -j{make_jobs}"
if make_verbose:
make_command += "--verbose"
@@ -138,6 +143,11 @@ def run(
make_command, shell=True, stdout=logpipe, stderr=subprocess.STDOUT
)
+ if state.returncode != 0:
+ logging.error("Failed to build project.")
+ logpipe.close()
+ sys.exit(state.returncode)
+
logpipe.close()
diff --git a/docs/documentation.md b/docs/documentation.md
index 6302c68..6e016e6 100644
--- a/docs/documentation.md
+++ b/docs/documentation.md
@@ -23,6 +23,7 @@
- Arm® and Corstone™ are registered trademarks or trademarks of Arm® Limited (or its subsidiaries) in the US and/or
elsewhere.
- Arm®, Keil® and µVision® are registered trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
+- Microsoft® and Windows® are proprietary registered trademarks of Microsoft and its group of companies.
- TensorFlow™, the TensorFlow logo, and any related marks are trademarks of Google Inc.
## Prerequisites
diff --git a/docs/sections/troubleshooting.md b/docs/sections/troubleshooting.md
index 0b6f4f9..b29b30a 100644
--- a/docs/sections/troubleshooting.md
+++ b/docs/sections/troubleshooting.md
@@ -10,6 +10,7 @@
- [How to update Python3 package to 3.7 version](./troubleshooting.md#how-to-update-python3-package-to-newer-version)
- [Error trying to build on Arm Virtual Hardware](./troubleshooting.md#error-trying-to-build-on-arm-virtual-hardware)
- [Internal Compiler Error](./troubleshooting.md#internal-compiler-error)
+ - [Build issues with WSL2](./troubleshooting.md#build-issues-with-wsl2)
## Inference results are incorrect for my custom files
@@ -268,9 +269,28 @@ Please include the complete backtrace with any bug report.
See <https://bugs.linaro.org/> for instructions.
```
-This is expected to be fixed in the next release of the toolchain. We recommend using the previous version 11.3.Rel1
-(from August 2022).
+It has been worked around by a CMSIS-NN patch from Dec 23, 2023. Make sure you are on a later commit of CMSIS-NN.
See
- [GCC patches: PR107987](https://gcc.gnu.org/pipermail/gcc-patches/2022-December/607963.html)
- [CMSIS-NN issue 13](https://github.com/ARM-software/CMSIS-NN/issues/13)
+- [Workaround for GNU Toolchain 12.x bug ](https://github.com/ARM-software/CMSIS-NN/commit/245089501eef18e8b638865c5afd6cdf2d03386f)
+
+## Build issues with WSL2
+
+Builds using Windows® Subsystem For Linux (WSL2) can run into issues if their
+environment's PATH variable has paths containing unescaped space characters.
+The error might look like:
+
+```
+****Building TensorFlow Lite Micro library… /bin/sh: 1: Syntax error: “(” unexpected
+ make[2]: *** [CMakeFiles/tensorflow_build.dir/build.make:71: CMakeFiles/tensorflow_build] Error 2
+ make[1]: *** [CMakeFiles/Makefile2:537: CMakeFiles/tensorflow_build.dir/all] Error 2
+ make[1]: *** Waiting for unfinished jobs…
+```
+
+The error here was caused by `C:/Program Files (x86)/` being part of the PATH.
+To resolve this issue, remove any paths with spaces. Alternatively, if these
+paths are required, escape them using `\` or enclose them with quotes.
+
+Another example of a similar issue: [Discourse issue 171: Build error in makefile](https://discuss.mlplatform.org/t/build-error-in-makefile/171).
diff --git a/source/use_case/noise_reduction/src/MainLoop.cc b/source/use_case/noise_reduction/src/MainLoop.cc
index ae160be..3eef94c 100644
--- a/source/use_case/noise_reduction/src/MainLoop.cc
+++ b/source/use_case/noise_reduction/src/MainLoop.cc
@@ -1,5 +1,5 @@
/*
- * SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ * SPDX-FileCopyrightText: Copyright 2021-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");
@@ -92,7 +92,7 @@ void main_loop()
caseContext.Set<arm::app::RNNoiseModel&>("model", model);
SetAppCtxClipIdx(caseContext, 0);
-#if defined(MEM_DUMP_BASE_ADDR) && defined(MPS3_PLATFORM)
+#if defined(MEM_DUMP_BASE_ADDR)
/* For this use case, for valid targets, we dump contents
* of the output tensor to a certain location in memory to
* allow offline tools to pick this data up. */
@@ -102,7 +102,8 @@ void main_loop()
caseContext.Set<size_t>("MEM_DUMP_LEN", memDumpMaxLen);
caseContext.Set<uint8_t*>("MEM_DUMP_BASE_ADDR", memDumpBaseAddr);
caseContext.Set<size_t*>("MEM_DUMP_BYTE_WRITTEN", &memDumpBytesWritten);
-#endif /* defined(MEM_DUMP_BASE_ADDR) && defined(MPS3_PLATFORM) */
+#endif /* defined(MEM_DUMP_BASE_ADDR) */
+
/* Loop. */
do {
int menuOption = MENU_OPT_RUN_INF_NEXT;