diff --git a/Include/arm_math.h b/Include/arm_math.h
index 525dce95..1b01d07d 100644
--- a/Include/arm_math.h
+++ b/Include/arm_math.h
@@ -2846,8 +2846,8 @@ void arm_mat_init_f32(
{
q15_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */
#if !defined (ARM_MATH_DSP)
- q15_t A1;
- q15_t A2;
+ q15_t A1; /**< The derived gain A1 = -Kp - 2Kd */
+ q15_t A2; /**< The derived gain A1 = Kd. */
#else
q31_t A1; /**< The derived gain A1 = -Kp - 2Kd | Kd.*/
#endif
diff --git a/Source/DistanceFunctions/arm_boolean_distance_template.h b/Source/DistanceFunctions/arm_boolean_distance_template.h
index 6888e9e0..414aca4b 100755
--- a/Source/DistanceFunctions/arm_boolean_distance_template.h
+++ b/Source/DistanceFunctions/arm_boolean_distance_template.h
@@ -44,6 +44,12 @@
*/
+
+
+#define _FUNC(A,B) A##B
+
+#define FUNC(EXT) _FUNC(arm_boolean_distance, EXT)
+
/**
* @brief Elements of boolean distances
*
@@ -52,17 +58,10 @@
* @param[in] pA First vector of packed booleans
* @param[in] pB Second vector of packed booleans
* @param[in] numberOfBools Number of booleans
- * @param[out] cTT cTT value
- * @param[out] cTF cTF value
- * @param[out] cFT cFT value
* @return None
*
*/
-#define _FUNC(A,B) A##B
-
-#define FUNC(EXT) _FUNC(arm_boolean_distance, EXT)
-
#if defined(ARM_MATH_MVEI)
#include "arm_common_tables.h"
diff --git a/Source/MatrixFunctions/arm_mat_mult_q7.c b/Source/MatrixFunctions/arm_mat_mult_q7.c
index b4ed03b0..af9beff0 100755
--- a/Source/MatrixFunctions/arm_mat_mult_q7.c
+++ b/Source/MatrixFunctions/arm_mat_mult_q7.c
@@ -41,7 +41,7 @@
* @param[in] *pSrcA points to the first input matrix structure
* @param[in] *pSrcB points to the second input matrix structure
* @param[out] *pDst points to output matrix structure
- * @param[in] *pState points to the array for storing intermediate results (Unused)
+ * @param[in] *pState points to the array for storing intermediate results (Unused in some versions)
* @return The function returns either
* ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of size checking.
*
diff --git a/Source/MatrixFunctions/arm_mat_vec_mult_f32.c b/Source/MatrixFunctions/arm_mat_vec_mult_f32.c
index 66809769..d0c4cfd7 100755
--- a/Source/MatrixFunctions/arm_mat_vec_mult_f32.c
+++ b/Source/MatrixFunctions/arm_mat_vec_mult_f32.c
@@ -40,9 +40,9 @@
/**
* @brief Floating-point matrix and vector multiplication.
- * @param[in] *pSrcMat points to the first input matrix structure
- * @param[in] *pVec points to the second input matrix structure
- * @param[out] *pDst points to output matrix structure
+ * @param[in] *pSrcMat points to the input matrix structure
+ * @param[in] *pVec points to input vector
+ * @param[out] *pDst points to output vector
*/
#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
diff --git a/Source/MatrixFunctions/arm_mat_vec_mult_q15.c b/Source/MatrixFunctions/arm_mat_vec_mult_q15.c
index ce512d1e..c6377e26 100755
--- a/Source/MatrixFunctions/arm_mat_vec_mult_q15.c
+++ b/Source/MatrixFunctions/arm_mat_vec_mult_q15.c
@@ -40,9 +40,9 @@
/**
* @brief Q15 matrix and vector multiplication.
- * @param[in] *pSrcA points to the first input matrix structure
- * @param[in] *pSrcB points to the second input matrix structure
- * @param[out] *pDst points to output matrix structure
+ * @param[in] *pSrcMat points to the input matrix structure
+ * @param[in] *pVec points to input vector
+ * @param[out] *pDst points to output vector
*/
#if defined(ARM_MATH_MVEI)
diff --git a/Source/MatrixFunctions/arm_mat_vec_mult_q31.c b/Source/MatrixFunctions/arm_mat_vec_mult_q31.c
index c097aa4e..d7651e18 100755
--- a/Source/MatrixFunctions/arm_mat_vec_mult_q31.c
+++ b/Source/MatrixFunctions/arm_mat_vec_mult_q31.c
@@ -40,9 +40,9 @@
/**
* @brief Q31 matrix and vector multiplication.
- * @param[in] *pSrcA points to the first input matrix structure
- * @param[in] *pSrcB points to the second input matrix structure
- * @param[out] *pDst points to output matrix structure
+ * @param[in] *pSrcMat points to the input matrix structure
+ * @param[in] *pVec points to the input vector
+ * @param[out] *pDst points to the output vector
*/
#if defined(ARM_MATH_MVEI)
void arm_mat_vec_mult_q31(
diff --git a/Source/MatrixFunctions/arm_mat_vec_mult_q7.c b/Source/MatrixFunctions/arm_mat_vec_mult_q7.c
index 95abc405..eb697708 100755
--- a/Source/MatrixFunctions/arm_mat_vec_mult_q7.c
+++ b/Source/MatrixFunctions/arm_mat_vec_mult_q7.c
@@ -40,9 +40,9 @@
/**
* @brief Q7 matrix and vector multiplication.
- * @param[in] *pSrcA points to the first input matrix structure
- * @param[in] *pSrcB points to the second input matrix structure
- * @param[out] *pDst points to output matrix structure
+ * @param[in] *pSrcMat points to the input matrix structure
+ * @param[in] *pVec points to the input vector
+ * @param[out] *pDst points to the output vector
*/
#if defined(ARM_MATH_MVEI)
diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt
index 94308838..b7e34e07 100644
--- a/Testing/CMakeLists.txt
+++ b/Testing/CMakeLists.txt
@@ -455,6 +455,37 @@ endif()
writeConfig(${CMAKE_CURRENT_BINARY_DIR}/currentConfig.csv)
+find_package(Doxygen)
+if(DOXYGEN_FOUND)
+
+ # exclude sqlite code
+ set(DOXYGEN_EXCLUDE_PATTERNS
+ */sqlite3/*
+ )
+ # doxygen settings can be set here, prefixed with "DOXYGEN_"
+ set(DOXYGEN_SOURCE_BROWSER NO)
+ set(DOXYGEN_EXTRACT_ALL YES)
+ set(DOXYGEN_EXTRACT_PRIVATE YES)
+ set(DOXYGEN_GENERATE_XML NO)
+ set(DOXYGEN_OPTIMIZE_OUTPUT_FOR_C YES)
+ set(DOXYGEN_EXTRACT_LOCAL_CLASSES NO)
+ set(DOXYGEN_TYPEDEF_HIDES_STRUCT YES)
+ set(DOXYGEN_PREDEFINED "__ALIGNED(x)=")
+ set(DOXYGEN_EXAMPLE_PATH "${ROOT}/CMSIS/DSP/Examples/ARM")
+ set(DOXYGEN_IMAGE_PATH "${ROOT}/CMSIS/DoxyGen/DSP/src/images")
+ set(DOXYGEN_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/docs")
+ # this target will only be built if specifically asked to.
+ # run "make api-docs" to create the doxygen documentation
+ doxygen_add_docs(
+ docs
+ ${ROOT}/CMSIS/DSP/Source
+ ${ROOT}/CMSIS/DSP/Examples/ARM
+ ${ROOT}/CMSIS/DSP/Include
+ ${ROOT}/CMSIS/DoxyGen/DSP/src/history.txt
+ COMMENT "Generate API-documents"
+ )
+
+endif(DOXYGEN_FOUND)