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

C2000 中寻址结构体或者共同体需要的执行时间长吗

测AD中断的执行时间,发现对结构体或者共同体变量做赋值操作会耗费不少总线时间。

比如:DCA_L[Order_IndexA[i]].bit.ORDER = i;                                  //其中DCA_L是局部的共同体变量

想请问下:这个语句相对于普通变量的赋值语句,执行时间要长很多吗?为什么呢?

如果我想减少执行时间,能做什么改进?比如把局部变量定义成全局的会不会好些

请大神赐教,我也会做试验,到时反馈给大家~

noaming:

你好,首先可以分析一下这个赋值语句所生成的汇编代码,从代码角度来分析为何会耗费这么多时钟周期。

测AD中断的执行时间,发现对结构体或者共同体变量做赋值操作会耗费不少总线时间。

比如:DCA_L[Order_IndexA[i]].bit.ORDER = i;                                  //其中DCA_L是局部的共同体变量

想请问下:这个语句相对于普通变量的赋值语句,执行时间要长很多吗?为什么呢?

如果我想减少执行时间,能做什么改进?比如把局部变量定义成全局的会不会好些

请大神赐教,我也会做试验,到时反馈给大家~

noaming:

另外,你是如何测量的赋值语句,这个时间?看看测量方法是否得当。

测AD中断的执行时间,发现对结构体或者共同体变量做赋值操作会耗费不少总线时间。

比如:DCA_L[Order_IndexA[i]].bit.ORDER = i;                                  //其中DCA_L是局部的共同体变量

想请问下:这个语句相对于普通变量的赋值语句,执行时间要长很多吗?为什么呢?

如果我想减少执行时间,能做什么改进?比如把局部变量定义成全局的会不会好些

请大神赐教,我也会做试验,到时反馈给大家~

Bingo Wu1:

回复 noaming:

我是通过拉高拉低测试引脚的电平来看代码执行时间的,从之前的一些测试数据来看,测试结果应该是可信的。

测AD中断的执行时间,发现对结构体或者共同体变量做赋值操作会耗费不少总线时间。

比如:DCA_L[Order_IndexA[i]].bit.ORDER = i;                                  //其中DCA_L是局部的共同体变量

想请问下:这个语句相对于普通变量的赋值语句,执行时间要长很多吗?为什么呢?

如果我想减少执行时间,能做什么改进?比如把局部变量定义成全局的会不会好些

请大神赐教,我也会做试验,到时反馈给大家~

noaming:

回复 Bingo Wu1:

一个结构体的赋值语句,耗时应该很小,这样测量在时间级上也不对称啊

测AD中断的执行时间,发现对结构体或者共同体变量做赋值操作会耗费不少总线时间。

比如:DCA_L[Order_IndexA[i]].bit.ORDER = i;                                  //其中DCA_L是局部的共同体变量

想请问下:这个语句相对于普通变量的赋值语句,执行时间要长很多吗?为什么呢?

如果我想减少执行时间,能做什么改进?比如把局部变量定义成全局的会不会好些

请大神赐教,我也会做试验,到时反馈给大家~

Bingo Wu1:

回复 noaming:

抱歉,之前忘了说明了,我是一整串类似的赋值语句一起测试的,有60、70句赋值。总共执行时间达到了十几微秒。

测AD中断的执行时间,发现对结构体或者共同体变量做赋值操作会耗费不少总线时间。

比如:DCA_L[Order_IndexA[i]].bit.ORDER = i;                                  //其中DCA_L是局部的共同体变量

想请问下:这个语句相对于普通变量的赋值语句,执行时间要长很多吗?为什么呢?

如果我想减少执行时间,能做什么改进?比如把局部变量定义成全局的会不会好些

请大神赐教,我也会做试验,到时反馈给大家~

noaming:

回复 Bingo Wu1:

首先、通过CCS工具可以查一下具体耗费的时钟周期。

测AD中断的执行时间,发现对结构体或者共同体变量做赋值操作会耗费不少总线时间。

比如:DCA_L[Order_IndexA[i]].bit.ORDER = i;                                  //其中DCA_L是局部的共同体变量

想请问下:这个语句相对于普通变量的赋值语句,执行时间要长很多吗?为什么呢?

如果我想减少执行时间,能做什么改进?比如把局部变量定义成全局的会不会好些

请大神赐教,我也会做试验,到时反馈给大家~

Bingo Wu1:

回复 noaming:

谢谢您的回答!

上午实际测试了,发现单纯赋值语句耗时没有之前认为的大(之前把小部分算法代码的执行时间也算在里面了,今天优化了这部分算法才节省了执行时间)。

当然,共同体的操作相对于普通变量会多耗时点,后面有机会再具体了解了

赞(0)
未经允许不得转载:TI中文支持网 » C2000 中寻址结构体或者共同体需要的执行时间长吗
分享到: 更多 (0)