nop指令问题

[复制链接]
4537|20
 楼主| tian111 发表于 2011-7-13 16:12 | 显示全部楼层 |阅读模式
定时器可以唤醒halt模式,而系统从halt退出首先执行定时器中断程序,那么halt后面的几条nop指令应该是无用的吧?
zhuhuis 发表于 2011-7-13 16:16 | 显示全部楼层
不是一定需要的吧
 楼主| tian111 发表于 2011-7-13 16:19 | 显示全部楼层
如果程序只有一个中断,是不是应该把nop指令移到定时器中断程序的开始部分?
zhuhuis 发表于 2011-7-13 16:21 | 显示全部楼层
也不是不可以
 楼主| tian111 发表于 2011-7-13 16:24 | 显示全部楼层
哦,那是不是实际意义不是很大啊
宋倩2010 发表于 2011-7-13 17:35 | 显示全部楼层
恩,实际意义不大,但也不会影响到功能
gongche 发表于 2011-7-14 08:55 | 显示全部楼层
这是一种良好的编程习惯。

在HALT唤醒后,防止MCU各个外围模块启动不同步,一般放几个NOP延迟等待一下再操作。
bananarer 发表于 2011-7-14 09:11 | 显示全部楼层
这3个NOP不一定会执行,但是
一定要加3个NOP,因为CPU是pilpe line 结构的,执行HALT之前会预取指,这时候让CPU取到NOP才好
zhuhuis 发表于 2011-7-14 09:16 | 显示全部楼层
其实多写几个NOP又不会什么大事情,为了防止那些小概率事件,保留它也是不错的选择。
chenho 发表于 2011-7-14 09:28 | 显示全部楼层
是这样的,halt and stop (idle or power-down)后面加NOP是由于cpu是 piple-line结构,在执行halt的同时,将后面几条指令取指了。
chenho 发表于 2011-7-14 10:20 | 显示全部楼层
这样从halt唤醒后,这两条指令不会执行了。所以还是要加在halt or stop后面。
gongche 发表于 2011-7-14 10:35 | 显示全部楼层
有些时候可能是为了时钟的切换,添加几条无意义的nop指令是为了保证不出错。
 楼主| tian111 发表于 2011-7-14 10:54 | 显示全部楼层
感谢大家,了解了
kakio 发表于 2011-7-15 14:02 | 显示全部楼层
楼上将的很细
kakio 发表于 2011-7-15 14:03 | 显示全部楼层
我也受教了
hihu 发表于 2011-7-18 16:08 | 显示全部楼层
nop指令保险起见哦
hihu 发表于 2011-7-19 16:26 | 显示全部楼层
kakio 发表于 2011-7-21 14:08 | 显示全部楼层
很有代表性的问题呀
kakio 发表于 2011-7-21 14:08 | 显示全部楼层
 楼主| tian111 发表于 2011-7-21 14:18 | 显示全部楼层
我的帖子怎么这么多灌水的:L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

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