查看: 4032|回复: 0

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

[复制链接]
  • TA的每日心情
    无聊
    2015-2-5 09:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2007-8-6 18:25:02 | 显示全部楼层 |阅读模式
    分享到:
    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,再用示波器看波形
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-12-25 12:29 , Processed in 0.115062 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.