请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5994 大家好、我遇到了 LEA 的怪异行为。
我正在尝试使用库函数 MSP_matrix mpy_Q15使用 Q15数据类型进行矩阵乘法
我的代码可与(2x2 maxtrix)*(2x2矩阵)正确配合使用。
但是、它不适用于(2x2矩阵)*(2x1矩阵)。
此外、如果我关闭 LEA、结果是正确的。
DSPLIB_DATA (LEA_src1、4)_Q15 LEA_src1[2]={{_Q15 (0.1)、_Q15 (0.2)}、{_Q15 (0.3)、_Q15 (0.4)}}; DSPLIB_DATA (LEA_src2、 4)_Q15 Lea_src2[2][1]={{_Q15 (0.1)}、{_Q15 (0.3)}}; DSPLIB_DATA (Lea_dest、4)_Q15 Lea_0.15[2][1]; __NV _Q15 Expected [2][1]={_Q15} (main)(0.07)}(t) MSP_STATUS 状态; MSP_matrix mpy_q15_params mpyParams; WDTCTL = WDTPW + WDTHOLD; mpyParams.srcARows = 2; mpyParams.srcACcols = 2; mpyParams.srcBRows = 2; mpyParams.srcBCcols = 1; 状态= MSP_match_mpy_q15 (&mpyParams、* Lea_src1、* Lea_src2、* Lea_dest); 返回0; }
以上是我的代码。 非常简单、在没有 Lea 的情况下工作正常、但在 Lea 的情况下、结果是错误的。
具体而言、输出应为{0x8F5、0x1333}、但 Lea_dest 中的值为{0x8F5、0x1ae0}。
再说一次、如果我执行平方矩阵乘法、我没有这个问题。
为什么会发生这种情况? 我有什么问题吗?
谢谢你。
此致、
Kiwan Maeng