x11223y 发表于 2012-7-18 17:29:28

lpc 120MHZ的主频,他的机器周期,指令周期是多少?在求教...

现在想知道执行一条语句的时间是多少,没找到相关信息。
问题如题所示:我目前设定的主时钟是120MHz的,那么他的时钟周期就是1s/12M
机器周期是多少?指令周期呢?
我执行一条 __NOP();需要多长时间?

在求教各位有没有好的延时方案:

在执行通讯的函数中,假如中途要延时1ms的话,有没有好的方案,除了用死循环,有什么办法可以跳出执行其他的程序,到时间了再回到这个函数的位置继续执行?

jiamingz 发表于 2012-7-18 17:36:50

我的理解是:主时钟设置的是120MHz,那么机器周期应该是1/120MHz,指令周期如何使单周期指令就等于机器周期,如果是n周期指令就是n*机器周期。
另,对于C写的延时函数,你一定要看对应编译的汇编有多少行指令,每个指令的执行周期。这样算才比较准。只是比较,因为编译器不同的优化模式和编译器的不同,可能同一段C代码编译出来的不一样。
如果你对延时时间不是要求特别高的话,估算就可以了。如果是要求高,一定要用RTC时钟,同时建议定时器中断做比较好。

x11223y 发表于 2012-7-18 18:03:46

jiamingz 发表于 2012-7-18 17:36 static/image/common/back.gif
我的理解是:主时钟设置的是120MHz,那么机器周期应该是1/120MHz,指令周期如何使单周期指令就等于机器周期 ...

你说的延时估算也是在里面加个for循环?那样的话还是占用的那个时间段啊,我想的是有没有方法不占用他

xiaomu 发表于 2012-7-18 18:11:44

lz需要给出哪种ic,是不是属于arm系列 cotext M3, 如果是cortext M3, 不能用指令个数来计算时间,arm系列都是指令流水线结构,指令延时是不准的,
如果不使用systick定时器,可以用systick查询方式延时,这个是很准的,参考stm32的延时,http://bbs.ednchina.com/BLOG_ARTICLE_236497.HTM
如果你要把延时时间利用起来,只能使用操作系统 ucos, rtos, rt-thread 等,

x11223y 发表于 2012-7-18 18:19:49

xiaomu 发表于 2012-7-18 18:11 static/image/common/back.gif
lz需要给出哪种ic,是不是属于arm系列 cotext M3, 如果是cortext M3, 不能用指令个数来计算时间,arm系列都是 ...

就是LPC1766的,一般不会使用指令延时的,用这个主要是不太重要的地方,可是又需要延时,没调指令的时间是不一样,可是执行__NOP();同一条指令的时间应该是一样的啊,估算这个时间,在US或者ns延时可以用的上。

按照你的说法,如果是裸奔的话一般在函数中的延时就只有通过死循环占用了?

个人觉得这样很浪费啊,整个循环下来也就是10几ms,要是在死循环中经常这样占用的话也感觉不好

xiaomu 发表于 2012-7-19 09:14:38

裸奔的话,使用状态机结构,合理安排状态,大部分延时的时候都可以利用起来, 如果需要精确延时,那就使用定时中断处理,

armstrong 发表于 2012-7-29 22:46:30

使用协作式操作系统contiki-os,或者使用RTOS可以满足你的高效利用CPU梦想。LPC系列CM3,都是有flash加速模块的,它的工作原理就是给慢速flash增加总线宽度,例如128位宽度,这样,即使是30MHZ的flash也能提供30*128bits=30*16bytes=480MBytes/S的指令带宽了,在顺序执行时,足够满足120MHZ的CPU执行thumb代码。至于你说的单周期,多周期,要视不同指令而言。比如加载或者存储指令通常都是双周期指令,而单纯的计算指令一般都是单周期指令。

armstrong 发表于 2012-7-29 22:50:22

关于延时方案,我曾经给出过代码,是利用LPC内部通常闲置的模块RIT完成精确延时,不过需要RTOS的支持。
参考链接,http://www.cnblogs.com/embeddedtech/archive/2012/05/26/2519293.html

x11223y 发表于 2012-7-29 23:19:08

armstrong 发表于 2012-7-29 22:50 static/image/common/back.gif
关于延时方案,我曾经给出过代码,是利用LPC内部通常闲置的模块RIT完成精确延时,不过需要RTOS的支持。
参 ...

现在没用过这些,没用过RTOS,不过还是有很大的参考价值

i55x 发表于 2012-7-29 23:25:30

ms级别的延迟,就上rtos好了。
cortex-m3本身就是给rtos设计的,建议你看看《cortex-m3权威指南》,想要深入理解,这个文档不看不行的。

最后一片落叶叶 发表于 2012-10-21 10:52:36

{:handshake:}
页: [1]
查看完整版本: lpc 120MHZ的主频,他的机器周期,指令周期是多少?在求教...