CMSIS-DSP库是ARM提供的一个用于STM32工程实现矩阵计算的C语言函数库。
arm_mat_init_f32函数求矩阵的逆会出现问题的原因与库函数中生成矩阵的方式有关。矩阵的生成并不会申请新的内存空间,arm_mat_init_f32函数只是将已经存在的一个矩阵内存通过库中定义的一个struct结构体连接起来,结构体中有一个指向矩阵内存空间的指针,只是一个指针而已。
所以调用arm_mat_init_f32的结果就是对源矩阵进行运算,运算的结果存储在另一个目的矩阵的内存空间中。因为这样,所以需要传入的矩阵必须都已经是提前申请内存的矩阵。
一句话,该矩阵库函数只负责矩阵运算,不负责内存的申请和释放。