回答

收藏

也说说lpc系列arm的指令周期问题

其他 其他 4207 人阅读 | 0 人回复 | 2007-08-06

lpc系列arm的指令周期和书上介绍的肯定是一样的,我做过两个实验证明了这一点(我的实验是在周立功公司的2014开发板及自己做的板子上作的,开发板设定为:内频=外频=11.0592*5M=55.XXXXM赫兹,自己的板子设定为:内频=外频=12.000*5M=60M赫兹,使用汇编语言)
实验一:开启一个定时器,定时1秒输出控制发光二极管闪烁(即1秒开,一秒关),同时在一小段指令(如10条ldr指令等)前后读取定时器的值比较,所得结果:指令周期完全正确,大部分只需1个周期,最长的单指令为mla指令为6个周期,32位乘法指令为5周期,64位(有无符号相同)为3周期(请注意这里没有写反,这点我一直想不通,为什么64位比32位要快),乘加指令再在原来的乘法指令上增加1个周期。同时1秒钟的定时也完全正确,说明指令执行周期正确。
实验二:关闭定时器,用软件循环模拟定时1秒控制发光二极管闪烁。所得结果:按照书上的指令周期计算的循环量完全正确,指令周期完全正确。这里需要说明的是,如果下载到flash中运行而未设置flash速度优化,则定时变慢了很多,(没有测量,大概有5-6倍,即发光二极管闪烁的很慢,而设置了flash速度优化后,基本上肉眼无法看出速度变化,说明正确设置flash速度优化在实际运行中是十分必要的。
通过以上实验可以证明lpc系列arm的指令周期和书上介绍的肯定是一样的,那为什么用示波器看出的不正确呢,我个人认为,飞利浦arm硬件输出到引脚有很大的延迟,我请有条件的大虾作如下试验:不要用单指令循环输出到引脚,而用软件循环延迟方法:例如软件延迟10毫秒,输出置1,延迟10毫秒,输出置0,再用示波器看波形
分享到:
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条