4170|3

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

急问,IARFORSTM8中程序中增加一条指令后,延时变长 [复制链接]

遇到一奇怪的现象, 在程序的某个地方经常增加一条指令即使是nop();会出现程序的其他地方出现延时变长的现象,如下,即使我在前后增加了关中断,延时变长差不多18%左右,现无法找到问题的根源, 出现这种情况,只要在增加程序的方再增加一个nop()或延时指令,也可以恢复正常. 有时也可能通过设置优化级别也可以取消,但在写程序过程中不时又会出现,希望大家帮忙出出主意,,,,
for(i=0; i<8; i++)
   {
    GPIO_WriteLow(PORT_TX791, TX791); //clrb(port_tft_tx , tft_tx);
    if(temp&0x80)       delay(1);
    else                  delay(7);
    GPIO_WriteHigh(PORT_TX791, TX791);
    if(temp&0x80)      delay(1);
    else               delay(7);
    temp=temp<<1;
   }
此帖出自stm32/stm8论坛

最新回复

                                  加个nop,能影响nop前后几个指令的执行时间。 还能影响指令的对齐方式。(暂不清楚,指令对齐方式是否影响指令运行时间)  详情 回复 发表于 2010-12-27 12:55
点赞 关注
 

回复
举报

59

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
要找到原因,看汇编代码。

有两点课参考:
1.IAR 优化会相同代码合并成函数,代码空间减少了,但执行时间变长
2.STM8的指令执行时间并不是固定的,与执行所处在的上下文有关。
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 谢谢,看过汇编代码,延时函数的汇编代码一模一样,没有发生变化。
此帖出自stm32/stm8论坛
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 


加个nop,能影响nop前后几个指令的执行时间。

还能影响指令的对齐方式。(暂不清楚,指令对齐方式是否影响指令运行时间)
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表