diff --git a/CMakeLists.txt b/CMakeLists.txt
index 704843e..5c4ba3d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -240,7 +240,7 @@
         if (NOT TARGET ${API_TO_USE}_api)
             add_subdirectory(
                 ${SRC_PATH}/application/api/use_case/${API_TO_USE}  # Source path
-                ${CMAKE_BINARY_DIR}/api/use_case/${API_TO_USE})  # Binary path
+                ${CMAKE_BINARY_DIR}/api/use_case/${API_TO_USE})     # Binary path
         endif()
 
         # Check if the target now exists
diff --git a/Readme.md b/Readme.md
index 1525829..0c8d019 100644
--- a/Readme.md
+++ b/Readme.md
@@ -24,6 +24,7 @@
   > and AVH, Arm® Corstone™-310 is available (for both Arm® Ethos™-U55 and Ethos™-U65 NPUs) only as AVH implementations.
 
 ## Inclusive language commitment
+
 This product conforms to Arm's inclusive language policy and, to the best of our knowledge,
 does not contain any non-inclusive language. If you find something that concerns you, email terms@arm.com.
 
@@ -105,7 +106,7 @@
 To run an ML application on the Cortex-M and Ethos-U NPU, please, follow these steps:
 
 1. Set up your environment by installing [the required prerequisites](./docs/sections/building.md#Build-prerequisites).
-> **NOTE**: A Docker image built from the `Dockerfile` provided will have all the required packages installed.
+   > **NOTE**: A Docker image built from the `Dockerfile` provided will have all the required packages installed.
 2. Generate an optimized neural network model for Ethos-U with a Vela compiler by following instructions [here](./docs/sections/building.md#Add-custom-model).
 3. [Configure the build system](./docs/sections/building.md#Build-process).
 4. [Compile the project](./docs/sections/building.md#Building-the-configured-project) with a `make` command.
diff --git a/docs/documentation.md b/docs/documentation.md
index 6e016e6..7d8fc4a 100644
--- a/docs/documentation.md
+++ b/docs/documentation.md
@@ -170,14 +170,14 @@
         contains a class for a generic KWS neural network model and the "processing" API give user an easier way to drive
         the MFCC calculations.
 
-> **NOTE:** The API here is also used to export a CMSIS-pack from this repository and therefore, it is imperative to
-> that the sources here do not depend on any HAL component or drive any platform dependent logic. If you are looking to
-> reuse components from this repository for your application level logic, this directory should be the prime candidate.
+     > **NOTE:** The API here is also used to export a CMSIS-pack from this repository and therefore, it is imperative to
+     > that the sources here do not depend on any HAL component or drive any platform dependent logic. If you are looking to
+     > reuse components from this repository for your application level logic, this directory should be the prime candidate.
 
   - `hal`: Contains Hardware Abstraction Layer (HAL) sources, providing a platform-agnostic API to access hardware
     platform-specific functions.
 
-> **Note:** Common code related to the `Arm Ethos-U NPU` software framework resides in *hal/components* sub-folder.
+    > **Note:** Common code related to the `Arm Ethos-U NPU` software framework resides in *hal/components* sub-folder.
 
   - `log`: Common to all code logging macros managing log levels.
 
diff --git a/docs/sections/building.md b/docs/sections/building.md
index a7a894a..bf7ca4d 100644
--- a/docs/sections/building.md
+++ b/docs/sections/building.md
@@ -198,10 +198,11 @@
   `dependencies/core-driver` git submodule. Repository is hosted here:
   [ethos-u-core-driver](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-core-driver).
 
-- `CMSIS_SRC_PATH`, `CMSIS_DSP_SRC_PATH`: Paths to the CMSIS sources to be used to build TensorFlow Lite Micro library.
+- `CMSIS_SRC_PATH`, `CMSIS_DSP_SRC_PATH`, `CMSIS_NN_SRC_PATH`: Paths to the CMSIS sources to be used to build TensorFlow Lite Micro library.
   These parameters are optional and are only valid for Arm® *Cortex®-M* CPU targeted configurations.  The default values
-  points to the `dependencies/cmsis` and `dependencies/cmsis-dsp` git submodules.  Repositories are hosted here:
-  [CMSIS-5](https://github.com/ARM-software/CMSIS_5.git) and [CMSIS-DPS](https://github.com/ARM-software/CMSIS-DSP).
+  points to the `dependencies/cmsis`, `dependencies/cmsis-dsp` and `dependencies/cmsis-nn` git submodules.
+  Repositories are hosted here: [CMSIS-5](https://github.com/ARM-software/CMSIS_5.git),
+  [CMSIS-DPS](https://github.com/ARM-software/CMSIS-DSP) and [CMSIS-NN](https://github.com/ARM-software/CMSIS-NN.git).
 
 - `ETHOS_U_NPU_ENABLED`: Sets whether the use of *Ethos-U* NPU is available for the deployment target. By default, this
   is set and therefore application is built with *Ethos-U* NPU supported.
@@ -317,8 +318,10 @@
 
 1. [TensorFlow Lite Micro repository](https://github.com/tensorflow/tensorflow)
 2. [Ethos-U NPU core driver repository](https://review.mlplatform.org/admin/repos/ml/ethos-u/ethos-u-core-driver)
-3. [CMSIS-5](https://github.com/ARM-software/CMSIS_5.git)
-4. [Ethos-U NPU core driver repository](https://review.mlplatform.org/admin/repos/ml/ethos-u/ethos-u-core-platform)
+3. [Ethos-U NPU core platform repository](https://review.mlplatform.org/admin/repos/ml/ethos-u/ethos-u-core-platform)
+4. [CMSIS-5](https://github.com/ARM-software/CMSIS_5.git)
+5. [CMSIS-DSP](https://github.com/ARM-software/CMSIS-DSP.git)
+6. [CMSIS-NN](https://github.com/ARM-software/CMSIS-NN.git)
 
 > **Note:** If you are using non git project sources, run `python3 ./download_dependencies.py` and ignore further git
 > instructions. Proceed to [Fetching resource files](./building.md#fetching-resource-files) section.
@@ -334,6 +337,8 @@
 ```tree
 dependencies
     ├── cmsis
+    ├── cmsis-dsp
+    ├── cmsis-nn
     ├── core-driver
     ├── core-platform
     └── tensorflow
@@ -341,7 +346,7 @@
 
 > **Note:** The default source paths for the `TPIP` sources assume the above directory structure. However, all of the
 > relevant paths can be overridden by CMake configuration arguments `TENSORFLOW_SRC_PATH` `ETHOS_U_NPU_DRIVER_SRC_PATH`,
-> and `CMSIS_SRC_PATH`.
+> `CMSIS_SRC_PATH`, `CMSIS_DSP_SRC_PATH`and `CMSIS_NN_SRC_PATH`.
 
 #### Fetching resource files
 
@@ -545,7 +550,6 @@
 > **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
 > the CMake command.
 
-
 ### Configuring the build for MPS3 SSE-310
 
 On Linux, execute the following command to build the application for target platform `mps3` and subsystem `sse-310`,
@@ -626,7 +630,7 @@
 - `ethos-u-<use-case name>.axf`: The built application binary for an ML use-case.
 
 - `ethos-u-<use-case name>.map`: Information from building the application. For example: Libraries used, what was
-  optimized, and location of objects).
+  optimized, and location of objects.
 
 - `ethos-u-<use-case name>.htm`: Human readable file containing the call graph of application functions.
 
diff --git a/docs/sections/testing_benchmarking.md b/docs/sections/testing_benchmarking.md
index 41ac8df..54d3930 100644
--- a/docs/sections/testing_benchmarking.md
+++ b/docs/sections/testing_benchmarking.md
@@ -38,11 +38,15 @@
 ├── ethos-u-<usecase1>
 └── ethos-u-<usecase1>
 ```
+
 To view all the available tests to run, use the following command in the `<build folder>`:
+
 ```commandline
 ctest -N
 ```
+
 Sample output:
+
 ```commandline
 Test #1: ad-tests
 Test #2: asr-tests
@@ -69,6 +73,7 @@
 ```
 
 Sample output:
+
 ```log
 Start 1: ad-tests
 1/8 Test #1: ad-tests .........................   Passed    0.17 sec
diff --git a/scripts/py/gen_rgb_cpp.py b/scripts/py/gen_rgb_cpp.py
index 85ae071..b8d85ee 100644
--- a/scripts/py/gen_rgb_cpp.py
+++ b/scripts/py/gen_rgb_cpp.py
@@ -1,4 +1,4 @@
-#  SPDX-FileCopyrightText: Copyright 2021 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");
@@ -78,7 +78,7 @@
     scale_ratio = (float)(max(ifm_width, ifm_height)) / (float)(min(original_image.size[0], original_image.size[1]))
     resized_width = (int)(original_image.size[0] * scale_ratio)
     resized_height = (int)(original_image.size[1] * scale_ratio)
-    resized_image = original_image.resize([resized_width,resized_height], Image.BILINEAR)
+    resized_image = original_image.resize([resized_width,resized_height], Image.Resampling.BILINEAR)
 
     # Crop the center of the image
     resized_image = resized_image.crop((
diff --git a/source/application/api/common/readme.md b/source/application/api/common/readme.md
index fbb1d76..6ae8780 100644
--- a/source/application/api/common/readme.md
+++ b/source/application/api/common/readme.md
@@ -1,4 +1,4 @@
-## API: Common
+# API: Common
 
 This module contains utilities that can be re-used by all ML use case API. These include (but not limited to):
 
diff --git a/source/application/api/use_case/readme.md b/source/application/api/use_case/readme.md
index 419dee0..b8fdfc7 100644
--- a/source/application/api/use_case/readme.md
+++ b/source/application/api/use_case/readme.md
@@ -1,3 +1,5 @@
+# Use case APIs
+
 - [Use case APIs](#use-case-apis)
   - [Anomaly detection](#anomaly-detection)
   - [Automatic speech recognition](#automatic-speech-recognition)
@@ -9,8 +11,6 @@
   - [Visual wake word](#visual-wake-word)
   - [Useful links](#useful-links)
 
-# Use case APIs
-
 The directories in here are individual CMake projects to generate use case API static libraries.
 These libraries are intended to be used by external projects that only want access to the
 ready-to-use ML use case pipelines implemented in this repository. This can be as CMake projects,
@@ -61,10 +61,7 @@
 This use case takes images as input and determines, with a certain probability, whether the image
 contains a person.
 
-
 ## Useful links
 
-* [Project ReadMe](../../../../Readme.md)
-* [Reusable Software](../../../../Readme.md#reusable-software)
-
-
+- [Project ReadMe](../../../../Readme.md)
+- [Reusable Software](../../../../Readme.md#reusable-software)
diff --git a/source/hal/readme.md b/source/hal/readme.md
index 1757d5b..d0562e1 100644
--- a/source/hal/readme.md
+++ b/source/hal/readme.md
@@ -1,4 +1,4 @@
-## HAL project
+# HAL project
 
 This directory is the root of `Hardware Abstraction Layer` (HAL) library for this repo. The intention is for this layer
 to service higher layers to seamlessly use platform specific functionality via a single abstraction layer. HAL provides
diff --git a/source/log/readme.md b/source/log/readme.md
index 9b2c137..29cb467 100644
--- a/source/log/readme.md
+++ b/source/log/readme.md
@@ -1,4 +1,4 @@
-## Log
+# Log
 
 This is a CMake interface library that exposes helper macros related to logging. This component is used by almost all
 the others in this repository directly or transitively.
diff --git a/source/math/readme.md b/source/math/readme.md
index bee889d..3c77cbb 100644
--- a/source/math/readme.md
+++ b/source/math/readme.md
@@ -1,4 +1,4 @@
-## Math
+# Math
 
 This is a CMake static library that allows application level code and ML use case APIs to use basic mathematical
 functions on scalars and vectors. This library calls the standard C/C++ math functions when being compiled for
diff --git a/source/profiler/readme.md b/source/profiler/readme.md
index 92b7c2f..48bb35b 100644
--- a/source/profiler/readme.md
+++ b/source/profiler/readme.md
@@ -1,4 +1,4 @@
-## Profiler
+# Profiler
 
 This is a CMake static library that exposes a C++ API for a very simple logging based profiler implementation. It
 depends on the hardware abstraction layer's platform drivers to get performance measurement counters (PMU) from the
diff --git a/source/use_case/readme.md b/source/use_case/readme.md
index 24b0c4e..9e32dfb 100644
--- a/source/use_case/readme.md
+++ b/source/use_case/readme.md
@@ -1,4 +1,4 @@
-## ML Use case examples
+# ML Use case examples
 
 This directory contains several ML example use case implementations. Sources here sit at the highest level in the
 hierarchy. See [Building](../../docs/documentation.md#building) and
