[其他ST产品] 712主频时间问题,为何中断处理时间没有改善

[复制链接]
3537|9
 楼主| 50sh 发表于 2007-5-21 11:46 | 显示全部楼层 |阅读模式
外部中断处理程序大小在100多个汇编指令,为保证中断处理时间尽量短,采用48兆主频,依然耗时很多,丢中断.请各位高手指教!
相关链接:https://bbs.21ic.com/upfiles/img/20075/2007521114421607.rar
浪淘沙 发表于 2007-5-21 11:56 | 显示全部楼层

48兆主频时具体耗时多少?

100多个汇编指令在48兆主频下的耗时大体能算出来,请问算出来的时间与实测差多少?
 楼主| 50sh 发表于 2007-5-21 14:48 | 显示全部楼层

中断时间问题

100条汇编48兆应该在2*10^(-6)秒,实测在5*10^(-6)秒
浪淘沙 发表于 2007-5-21 15:10 | 显示全部楼层

如果改变了时钟频率后实测运行时间不变,肯定是配置或测

请问你是如何测量的?

另外,计算指令执行时间时要考虑其他一些因素,如中断的响应时间、指令跳转所造成流水线断流的时间,还有存取成组寄存器指令(STM、LDM)的执行时间较长、I/O访问指令被拉长等多种因素。
浪淘沙 发表于 2007-5-24 11:06 | 显示全部楼层

根据ARM公司的资料,只有在核心中运算的指令才是单周期的

具体的指令周期数目请看ARM公司的资料,有详细的说明。

所以3楼的实测结果不奇怪。
xzm0662 发表于 2007-5-25 09:37 | 显示全部楼层

把代码放在ram执行会快点,另外访问apb上的东西费时间

准确的时间很难算的
ST_ARM 发表于 2007-5-31 13:44 | 显示全部楼层

关于STR71x的汇编指令的时间

50sh在上面贴子提到:

     “100条汇编48兆应该在2*10^(-6)秒,实测在5*10^(-6)秒”

ARM内核的指令为单周期,如下图1,故按照STR71x的频率为48M,100条汇编指令为:100×(1/(48×10^(-6))ms,即2.08×10^(-6)s,但是实际上由于ARM的指令在操作中会涉及到内存或外设的读写、跳转的,就会出现ARM内核需要等待内存或外设的数据准备好并写到总线上这样一段时间,或跳转丢弃一些指令而损失一些时间。如下图2、3。
ST_ARM 发表于 2007-5-31 13:45 | 显示全部楼层
ST_ARM 发表于 2007-5-31 13:53 | 显示全部楼层

图3

由图2、3可以看出,由于对外部RAM或外设数据访问、跳转等操作,使得ARM内核的指令变成多周期指令。这就是STR71x芯片的汇编指令的运行时间超过2.08×10^(-6)s,可能为3、4或5个时钟周期,甚至更长。
mxchip_sh 发表于 2007-6-1 09:05 | 显示全部楼层

ARM ATC培训课中有这一部分


参加过Embest ATC的工程师应该明白的,也可以在www.arm.com上找到这一部分的内容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

1

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