MLECO-2348: Update dependencies to 21.08

* Update all dependancies to 21.08
* Refactoring to fit the new changes

Change-Id: Icc2ae3628ee6e8fbc0af2cd8f91e368c9ccae053
diff --git a/dependencies/cmsis b/dependencies/cmsis
index e9637de..c43379b 160000
--- a/dependencies/cmsis
+++ b/dependencies/cmsis
@@ -1 +1 @@
-Subproject commit e9637de2b4cfd99cd5c93893d88593262d8660c1
+Subproject commit c43379be65dec9d808b72b8efbe52cad762909be
diff --git a/dependencies/core-driver b/dependencies/core-driver
index d1ea036..6eab40b 160000
--- a/dependencies/core-driver
+++ b/dependencies/core-driver
@@ -1 +1 @@
-Subproject commit d1ea036bd870663d737db9bfbb25e2aa04a389e0
+Subproject commit 6eab40b2051882833dd446cd56ba7c17a5f7082c
diff --git a/dependencies/core-software b/dependencies/core-software
index 8b1d9de..3bd3423 160000
--- a/dependencies/core-software
+++ b/dependencies/core-software
@@ -1 +1 @@
-Subproject commit 8b1d9ded33ec59545897ff45019d05403dba7eee
+Subproject commit 3bd342372638b185d097308445747a1a668fce01
diff --git a/dependencies/tensorflow b/dependencies/tensorflow
index f510d38..4e091a4 160000
--- a/dependencies/tensorflow
+++ b/dependencies/tensorflow
@@ -1 +1 @@
-Subproject commit f510d38d0eaa3195ce3af66e3f32648740f08afb
+Subproject commit 4e091a46e935afcb27035e538044e37892d4a983
diff --git a/download_dependencies.py b/download_dependencies.py
index 7219203..dbdeffb 100755
--- a/download_dependencies.py
+++ b/download_dependencies.py
@@ -25,10 +25,10 @@
 from urllib.request import urlopen
 from zipfile import ZipFile
 
-tf = "https://github.com/tensorflow/tflite-micro/archive/f510d38d0eaa3195ce3af66e3f32648740f08afb.zip"
-cmsis = "https://github.com/ARM-software/CMSIS_5/archive/e9637de2b4cfd99cd5c93893d88593262d8660c1.zip"
-ethos_u_core_sw = "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-software.git/snapshot/ethos-u-core-software-8b1d9ded33ec59545897ff45019d05403dba7eee.tar.gz"
-ethos_u_core_driver = "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-driver.git/snapshot/ethos-u-core-driver-d1ea036bd870663d737db9bfbb25e2aa04a389e0.tar.gz"
+tf = "https://github.com/tensorflow/tflite-micro/archive/4e091a46e935afcb27035e538044e37892d4a983.zip"
+cmsis = "https://github.com/ARM-software/CMSIS_5/archive/c43379be65dec9d808b72b8efbe52cad762909be.zip"
+ethos_u_core_sw = "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-software.git/snapshot/ethos-u-core-software-21.08.tar.gz"
+ethos_u_core_driver = "https://git.mlplatform.org/ml/ethos-u/ethos-u-core-driver.git/snapshot/ethos-u-core-driver-21.08.tar.gz"
 
 
 def download(url_file: str, post_process=None):
diff --git a/scripts/make/cortex_m_ethos_eval_makefile.inc b/scripts/make/cortex_m_ethos_eval_makefile.inc
index 407bc85..27bb9d6 100644
--- a/scripts/make/cortex_m_ethos_eval_makefile.inc
+++ b/scripts/make/cortex_m_ethos_eval_makefile.inc
@@ -127,15 +127,6 @@
     $(error "TOOLCHAIN=$(TOOLCHAIN) is not supported.")
   endif
 
-# TODO(#47718): resolve warnings.
-CXX_OMIT_ERRORS = \
-  -Wno-implicit-fallthrough \
-  -Wno-unused-variable
-
-# TODO: Remove when Arm Ethos-U NPU driver is updated to version > 21.05
-CC_OMIT_ERRORS = \
-  ${CXX_OMIT_ERRORS} \
-  -Wno-int-conversion
 
   PLATFORM_FLAGS = \
     -DTF_LITE_MCU_DEBUG_LOG \
@@ -151,7 +142,7 @@
     $(TARGET_SPECIFIC_FLAGS)
 
   # Common + C/C++ flags
-  CXXFLAGS += $(PLATFORM_FLAGS) ${CXX_OMIT_ERRORS}
-  CCFLAGS += $(PLATFORM_FLAGS) ${CC_OMIT_ERRORS}
+  CXXFLAGS += $(PLATFORM_FLAGS)
+  CCFLAGS += $(PLATFORM_FLAGS)
 
 endif
diff --git a/source/application/hal/hal.c b/source/application/hal/hal.c
index 1515697..12bb7ef 100644
--- a/source/application/hal/hal.c
+++ b/source/application/hal/hal.c
@@ -28,7 +28,7 @@
 #include "timing_adapter.h"             /* Arm Ethos-U timing adapter driver header */
 #include "timing_adapter_settings.h"    /* Arm Ethos-U timing adapter settings */
 
-extern struct ethosu_driver ethosu_drv; /* Default Ethos-U device driver */
+struct ethosu_driver ethosu_drv; /* Default Ethos-U device driver */
 
 /**
  * @brief   Initialises the Arm Ethos-U NPU
@@ -245,22 +245,24 @@
     info("Ethos-U device initialised\n");
 
     /* Get Ethos-U version */
-    struct ethosu_version version;
-    if (0 != (err = ethosu_get_version(&ethosu_drv, &version))) {
-        printf_err("failed to fetch Ethos-U version info\n");
-        return err;
-    }
+    struct ethosu_driver_version driver_version;
+    struct ethosu_hw_info hw_info;
+    
+    ethosu_get_driver_version(&driver_version);
+    ethosu_get_hw_info(&ethosu_drv, &hw_info);
 
     info("Ethos-U version info:\n");
-    info("\tArch:       v%u.%u.%u\n", version.id.arch_major_rev,
-                                    version.id.arch_minor_rev,
-                                    version.id.arch_patch_rev);
-    info("\tDriver:     v%u.%u.%u\n", version.id.driver_major_rev,
-                                    version.id.driver_minor_rev,
-                                    version.id.driver_patch_rev);
-    info("\tMACs/cc:    %u\n", (1 << version.cfg.macs_per_cc));
-    info("\tCmd stream: v%u\n", version.cfg.cmd_stream_version);
-    info("\tSHRAM size: %u\n", version.cfg.shram_size);
+    info("\tArch:       v%"PRIu32".%"PRIu32".%"PRIu32"\n", 
+                                    hw_info.version.arch_major_rev,
+                                    hw_info.version.arch_minor_rev,
+                                    hw_info.version.arch_patch_rev);
+    info("\tDriver:     v%"PRIu8".%"PRIu8".%"PRIu8"\n", 
+                                    driver_version.major,
+                                    driver_version.minor,
+                                    driver_version.patch);
+    info("\tMACs/cc:    %"PRIu32"\n", (uint32_t)(1 << hw_info.cfg.macs_per_cc));
+    info("\tCmd stream: v%"PRIu32"\n", hw_info.cfg.cmd_stream_version);
+    info("\tSHRAM size: %"PRIu32"\n", hw_info.cfg.shram_size);
 
     return 0;
 }