diff --git a/scripts/cmake/cmsis-pack-gen/CMakeLists.txt b/scripts/cmake/cmsis-pack-gen/CMakeLists.txt
index 2a25aec..2774ab2 100644
--- a/scripts/cmake/cmsis-pack-gen/CMakeLists.txt
+++ b/scripts/cmake/cmsis-pack-gen/CMakeLists.txt
@@ -51,3 +51,12 @@
 foreach(API ${UC_API_LIST})
     add_subdirectory(${API} ${CMAKE_BINARY_DIR}/${API})
 endforeach()
+
+# Any custom steps that are required for the CMSIS pack generation flow
+# must be declared here:
+if (CMSIS_PACK_GEN_FLOW)
+    # For CMSIS packs, we need CMSIS DSP definition.
+    # @TODO: Currently, this line is added multiple times to the include file. Uncomment when
+    # packgen is fixed.
+    # add_compile_definitions(arm_math PRIVATE ARM_MATH_DSP)
+endif()
diff --git a/scripts/cmake/cmsis-pack-gen/use-case-api.yml b/scripts/cmake/cmsis-pack-gen/use-case-api.yml
index 9620e17..8796dff 100644
--- a/scripts/cmake/cmsis-pack-gen/use-case-api.yml
+++ b/scripts/cmake/cmsis-pack-gen/use-case-api.yml
@@ -35,7 +35,7 @@
 
 build:
   - name: "build-dir"
-    options: "cmake"
+    options: "cmake -DCMSIS_PACK_GEN_FLOW=ON"
 
 packs:
   - name: "ml-embedded-eval-kit-uc-api"
@@ -79,11 +79,16 @@
         target: arm_math
         attributes: { Cclass: "Machine Learning", Cgroup: "Evaluation Kit", Csub: "Common: Math", Cversion: "1.0.0" }
         description: "Math function helpers dependent on CMSIS-DSP."
+        conditions:
+          - require: { Cclass: "CMSIS", Cgroup: "DSP"}
 
       - name: common_api
         target: common_api
         attributes: {Cclass: "Machine Learning", Cgroup: "Evaluation Kit", Csub: "Common: API", Cversion: "1.0.0"}
         description: "Common API"
+        dependencies: ["arm_math", "log"]
+        conditions:
+          - require: { Cclass: "Machine Learning", Cgroup: "TensorFlow" }
 
       - name: ad_api
         target: ad_api
diff --git a/source/application/api/common/include/Model.hpp b/source/application/api/common/include/Model.hpp
index df1b259..70c6245 100644
--- a/source/application/api/common/include/Model.hpp
+++ b/source/application/api/common/include/Model.hpp
@@ -74,7 +74,7 @@
         **/
         bool Init(uint8_t* tensorArenaAddr,
                   uint32_t tensorArenaSize,
-                  uint8_t* nnModelAddr,
+                  const uint8_t* nnModelAddr,
                   uint32_t nnModelSize,
                   tflite::MicroAllocator* allocator = nullptr);
 
@@ -133,17 +133,17 @@
         size_t GetActivationBufferSize();
 
     private:
-        tflite::ErrorReporter*          m_pErrorReporter     = nullptr;     /* Pointer to the error reporter. */
-        const tflite::Model*            m_pModel             = nullptr;     /* Tflite model pointer. */
-        tflite::MicroInterpreter*       m_pInterpreter       = nullptr;     /* Tflite interpreter. */
-        tflite::MicroAllocator*         m_pAllocator         = nullptr;     /* Tflite micro allocator. */
-        bool                            m_inited             = false;       /* Indicates whether this object has been initialised. */
-        uint8_t*                        m_modelAddr          = nullptr;     /* Model address */
-        uint32_t                        m_modelSize          = 0;           /* Model size */
+        tflite::ErrorReporter* m_pErrorReporter{nullptr};  /* Pointer to the error reporter. */
+        const tflite::Model* m_pModel{nullptr};            /* Tflite model pointer. */
+        tflite::MicroInterpreter* m_pInterpreter{nullptr}; /* Tflite interpreter. */
+        tflite::MicroAllocator* m_pAllocator{nullptr};     /* Tflite micro allocator. */
+        bool m_inited{false}; /* Indicates whether this object has been initialised. */
+        const uint8_t* m_modelAddr{nullptr}; /* Model address */
+        uint32_t m_modelSize{0};             /* Model size */
 
-        std::vector<TfLiteTensor*>      m_input              = {};           /* Model's input tensor pointers. */
-        std::vector<TfLiteTensor*>      m_output             = {};           /* Model's output tensor pointers. */
-        TfLiteType                      m_type               = kTfLiteNoType;/* Model's data type. */
+        std::vector<TfLiteTensor*> m_input{};  /* Model's input tensor pointers. */
+        std::vector<TfLiteTensor*> m_output{}; /* Model's output tensor pointers. */
+        TfLiteType m_type{kTfLiteNoType};      /* Model's data type. */
     };
 
 } /* namespace app */
diff --git a/source/application/api/common/include/TensorFlowLiteMicro.hpp b/source/application/api/common/include/TensorFlowLiteMicro.hpp
index f6639fd..4f9c0b3 100644
--- a/source/application/api/common/include/TensorFlowLiteMicro.hpp
+++ b/source/application/api/common/include/TensorFlowLiteMicro.hpp
@@ -73,13 +73,6 @@
      */
     QuantParams GetTensorQuantParams(TfLiteTensor* tensor);
 
-    /**
-     * @brief   String logging functionality expected to be defined
-     *          by TensorFlow Lite Micro's error reporter.
-     * @param[in]   s   Pointer to the string.
-     */
-    extern "C" void DebugLog(const char* s);
-
 } /* namespace app */
 } /* namespace arm */
 
@@ -88,4 +81,11 @@
  */
 void PrintTensorFlowVersion();
 
+/**
+ * @brief   String logging functionality expected to be defined
+ *          by TensorFlow Lite Micro's error reporter.
+ * @param[in]   s   Pointer to the string.
+ */
+extern "C" void DebugLog(const char* s) __attribute__((__weak__));
+
 #endif /* TENSORFLOW_LITE_MICRO_LOCAL_HPP */
diff --git a/source/application/api/common/source/Model.cc b/source/application/api/common/source/Model.cc
index f1ac91d..d2c7167 100644
--- a/source/application/api/common/source/Model.cc
+++ b/source/application/api/common/source/Model.cc
@@ -37,7 +37,7 @@
 
 bool arm::app::Model::Init(uint8_t* tensorArenaAddr,
                            uint32_t tensorArenaSize,
-                           uint8_t* nnModelAddr,
+                           const uint8_t* nnModelAddr,
                            uint32_t nnModelSize,
                            tflite::MicroAllocator* allocator)
 {
