打印

谁用过ARM系列的高速中断吗

[复制链接]
1266|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wid1990|  楼主 | 2013-7-11 14:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是S3C2416,400MHZ主频

中断信号11MHZ

中断程序在START.S里写的

主要就是清除INTPND和SRCPND

但是板子一直停留在中断里出不来了

我试过800KHZ的中断信号,没有问题

相关帖子

沙发
jlass| | 2013-7-11 16:51 | 只看该作者
确认一下你用的是电平触发还是边沿触发
中断程序写的尽可能简单,清除中断标志位后立马跳出

从你的描述来看好像是上一个中断还没处理完,下一个中断就来了

使用特权

评论回复
板凳
wid1990|  楼主 | 2013-7-11 17:22 | 只看该作者
上升沿触发

除了UBOOT本来的压栈出栈

我就只写了9行汇编,全是LDR和STR

即便我把压栈出栈的关了还是来不及

我还试了下1.5MHZ,也不行

搞不懂了

使用特权

评论回复
地板
wid1990|  楼主 | 2013-7-11 17:37 | 只看该作者
jlass 发表于 2013-7-11 16:51
确认一下你用的是电平触发还是边沿触发
中断程序写的尽可能简单,清除中断标志位后立马跳出


上升沿触发

除了UBOOT本来的压栈出栈

我就只写了9行汇编,全是LDR和STR

即便我把压栈出栈的关了还是来不及

我还试了下1.5MHZ,也不行

搞不懂了

使用特权

评论回复
5
huangxz| | 2013-7-12 09:39 | 只看该作者
中断本来就是一种异常,不能指望处理那么多,就像人不能高强度工作没有休息时间一样的。如果真的要那么高速,考虑用FPGA吧.

使用特权

评论回复
6
and| | 2013-7-12 11:28 | 只看该作者
400MHz那只是core的主频,如果使用访存、访外指令(LDR\STR访问了没有CACHE的空间,或者外设空间)的话,指令的执行数是远远达不到400M的。不客气地猜测,能有40M就不错了。所以楼主11M的中断,所需要执行的指令,超出了CPU的速度。

使用特权

评论回复
7
bald| | 2013-7-12 15:41 | 只看该作者
wid1990 发表于 2013-7-12 12:46
我用逻辑分析仪看了下

中断程序所需时间大概是4us,我总共写了6个LDR和3个STR

两个LDR和一个STR用了0.375uS,与400M时钟不符,看看时钟设置。
程序放在什么位置?在RAM里运行应该用不了这么长时间。
这么高的速度,中断向量最好也放到并重新定位于RAM。

使用特权

评论回复
8
wid1990|  楼主 | 2013-7-12 16:55 | 只看该作者
bald 发表于 2013-7-12 15:41
两个LDR和一个STR用了0.375uS,与400M时钟不符,看看时钟设置。
程序放在什么位置?在RAM里运行应该用不 ...

FCLK也就是CPU的主频是400

配置也没有问题

我在想会不会是进入了中断,使用了其他的CLK?

但不知道怎么设置

使用特权

评论回复
9
wid1990|  楼主 | 2013-7-12 17:23 | 只看该作者
bald 发表于 2013-7-12 15:41
两个LDR和一个STR用了0.375uS,与400M时钟不符,看看时钟设置。
程序放在什么位置?在RAM里运行应该用不 ...

重新测试了下

在这个中断程序里

同一个指令,2个LDR和1个STR

有时候是125ns,有时候是250ns

使用特权

评论回复
10
and| | 2013-7-12 19:40 | 只看该作者
猜测:两个总线主设备同时请求总线,就有一个主设备要等待,出现这种情况,可能导致指令执行时间变长。

使用特权

评论回复
11
wid1990|  楼主 | 2013-7-14 10:17 | 只看该作者
and 发表于 2013-7-12 19:40
猜测:两个总线主设备同时请求总线,就有一个主设备要等待,出现这种情况,可能导致指令执行时间变长。 ...

两个总线主设备大概指哪些设备,能否举例呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

0

粉丝