TI中文支持网
TI专业的中文技术问题搜集分享网站

为啥2812执行一条32位数右移2位指令要34个指令周期呢?

c程序如左半图,其定义为:

    _iq15 TADCIBA1[3] = {0,0,0}; 

程序烧写在flash中

1条32位数右移两位的c语句变为4条汇编语句。

用assembly step into ,执行第一条用了16个指令周期,第二三四条分别用了1个,1个,16个指令周期。

我哪设置错了呢?怎么样能让2812移的迅速一些?

Seven Han:

这块代码是跑在flash上还是搬移到ram上跑的?

c程序如左半图,其定义为:

    _iq15 TADCIBA1[3] = {0,0,0}; 

程序烧写在flash中

1条32位数右移两位的c语句变为4条汇编语句。

用assembly step into ,执行第一条用了16个指令周期,第二三四条分别用了1个,1个,16个指令周期。

我哪设置错了呢?怎么样能让2812移的迅速一些?

user4415751:

回复 Seven Han:

这个代码是在flash上跑的。如果放到ram里用4个指令周期。

我有一段ad采样代码搬到ram里跑了,一个定点除法语句IQdiv(,)要用79个指令周期,也是大于IQMATH介绍文档中的63个指令周期,请问您知道这是为什么么?

赞(0)
未经允许不得转载:TI中文支持网 » 为啥2812执行一条32位数右移2位指令要34个指令周期呢?
分享到: 更多 (0)