فهرست منبع

CMSIS-DSP: Corrected build issue with Python wrapper.
Corrected bug in arm_mat_vec_mult_q15.

Christophe Favergeon 5 سال پیش
والد
کامیت
cf096f0a68

+ 20 - 0
CMSIS/DSP/Include/arm_math.h

@@ -1083,6 +1083,25 @@ compiler file in Core or Core_A would not make sense.
     }
     return (uint32_t)val;
   }
+
+ /**
+  \brief   Rotate Right in unsigned value (32 bit)
+  \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits.
+  \param [in]    op1  Value to rotate
+  \param [in]    op2  Number of Bits to rotate
+  \return               Rotated value
+ */
+__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
+{
+  op2 %= 32U;
+  if (op2 == 0U)
+  {
+    return op1;
+  }
+  return (op1 >> op2) | (op1 << (32U - op2));
+}
+
+
 #endif
 
 #ifndef ARM_MATH_DSP
@@ -1373,6 +1392,7 @@ __STATIC_INLINE q31_t arm_div_q63_to_q31(q63_t num, q31_t den)
  */
 #if !defined (ARM_MATH_DSP)
 
+
   /*
    * @brief C custom defined QADD8
    */

+ 3 - 1
CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.c

@@ -8427,4 +8427,6 @@ const float16_t twiddleCoefF16_4096[8192] = {
 #endif /* Not ARM AC5 */
 
 
-
+/**
+  @} end of CFFT_CIFFT group
+*/

+ 2 - 2
CMSIS/DSP/Source/MatrixFunctions/arm_mat_vec_mult_f32.c

@@ -40,8 +40,8 @@
 
 /**
  * @brief Floating-point 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[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
  */
 #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)

+ 2 - 2
CMSIS/DSP/Source/MatrixFunctions/arm_mat_vec_mult_q15.c

@@ -363,8 +363,8 @@ void arm_mat_vec_mult_q15(const arm_matrix_instance_q15 *pSrcMat, const q15_t *p
             vecData2 = read_q15x2_ia ((q15_t **) &pInVec);
             matData = read_q15x2_ia ((q15_t **) &pInA1);
             matData2 = read_q15x2_ia ((q15_t **) &pInA1);
-            sum = __SMLAD(matData, vecData, sum);
-            sum = __SMLAD(matData2, vecData2, sum);
+            sum = __SMLALD(matData, vecData, sum);
+            sum = __SMLALD(matData2, vecData2, sum);
             colCnt--;
         }
 

+ 2 - 0
CMSIS/DSP/Testing/Source/Tests/UnaryTestsQ15.cpp

@@ -117,6 +117,8 @@ a double precision computation.
 
     void UnaryTestsQ15::test_mat_vec_mult_q15()
     {     
+
+
       LOADVECDATA2();
 
       for(i=0;i < nbMatrixes ; i ++)