I am running example frdmmcxn947_powerquad_cmsis and extended size a bit.
Now memory gets corrupted around the locals so it looks to me like powerquad writes outside the expected memory.
static void arm_mat_add_q31Example(void)
{
uint32_t srcRows, srcColumns; /* Temporary variables */
arm_status status;
arm_matrix_instance_q31 addMatrixA31;
arm_matrix_instance_q31 addMatrixB31;
arm_matrix_instance_q31 addMatrixR;
#define MATRIX_SIZE 32
q31_t A31[MATRIX_SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32};
q31_t B31[MATRIX_SIZE] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320};
q31_t addResult[MATRIX_SIZE] = {0};
q31_t addRef[MATRIX_SIZE] = {11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132, 143, 154, 165, 176, 187, 198, 209, 220, 231, 242, 253, 264, 275, 286, 297, 308, 319, 330, 341, 352};
uint16_t rows = MATRIX_SIZE;
uint16_t cols = 1;
/* Initialise Matrix Instance addMatrixM1 with numRows, numCols and data array(M1) */
srcRows = rows;
srcColumns = cols;
arm_mat_init_q31(&addMatrixA31, srcRows, srcColumns, A31);
/* Initialise Matrix Instance addMatrixM1 with numRows, numCols and data array(M1) */
srcRows = rows;
srcColumns = cols;
arm_mat_init_q31(&addMatrixB31, srcRows, srcColumns, B31);
/* Initialise Matrix Instance addMatrixM1 with numRows, numCols and data array(M1) */
srcRows = rows;
srcColumns = cols;
arm_mat_init_q31(&addMatrixR, srcRows, srcColumns, addResult);
status = arm_mat_add_q31(&addMatrixA31, &addMatrixB31, &addMatrixR);
EXAMPLE_ASSERT_TRUE(status == ARM_MATH_SUCCESS);
for (uint32_t i = 0; i < MATRIX_SIZE; i++)
{
EXAMPLE_ASSERT_TRUE(addRef[i] == addMatrixR.pData[i]);
}
}