写一个矩阵乘法子程序时,出现如下错误

[复制链接]
1352|12
 楼主| hitbuyi1 发表于 2014-12-5 21:05 | 显示全部楼层 |阅读模式
MatrixMUL(float* A, int A_Row,int A_Col, float* B,int B_Row, int B_Col, float *Result)
{

  int i,j,k;
  float sum;

  if(A_Col == B_Row)   // dimensions of matrixes must be accordance with each other
  {
      for( i = 0; i < A_Row; i++) // compute the first row of results
      {
           for(j = 0; j < B_Col; j++)
           {
                sum = 0.0f;
                for(k = 0; k < A_Col; k++)
                {
                    sum +=   (*(A + i*A_Col + k))*( *(B + k*B_Col + j));
                    //sum = sum + temp;
                }

               *(Result + i*B_Col + j) = sum;

           }
      }

  }

}

在一个工程里运行,出现如下错误,

"C:\Users\User\AppData\Local\Temp\0912810", ERROR!   at line 754: [E0004] Illegal operand combination
            MACF32    R7H,R3H,*XAR0++,*XAR7 ; [CPU_] |146|


1 Assembly Error, No Assembly Warnings
Errors in Source - Assembler Aborted

是什么原因?
gwabwy 发表于 2014-12-6 14:49 | 显示全部楼层
sum +=   ((*(A + i*A_Col + k))*( *(B + k*B_Col + j)));    ???
 楼主| hitbuyi1 发表于 2014-12-6 17:01 | 显示全部楼层
problem solved
zhangmangui 发表于 2014-12-6 20:58 | 显示全部楼层
hitbuyi1 发表于 2014-12-6 17:01
problem solved

求分享  
 楼主| hitbuyi1 发表于 2014-12-7 19:15 | 显示全部楼层
zhangmangui 发表于 2014-12-6 20:58
求分享

这样写是对的。在DSP运行出错,是TI 的 编译器对下面的语句
sum +=   ((*(A + i*A_Col + k))*( *(B + k*B_Col + j)))
进行了错误的优化,把这个函数的优化级别降低或者禁止就行了。
zhangmangui 发表于 2014-12-7 20:15 | 显示全部楼层
hitbuyi1 发表于 2014-12-7 19:15
这样写是对的。在DSP运行出错,是TI 的 编译器对下面的语句
sum +=   ((*(A + i*A_Col + k))*( *(B + k* ...

感谢分享   
edishen 发表于 2014-12-8 17:59 | 显示全部楼层
hitbuyi1 发表于 2014-12-7 19:15
这样写是对的。在DSP运行出错,是TI 的 编译器对下面的语句
sum +=   ((*(A + i*A_Col + k))*( *(B + k* ...

谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

78

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0