打印
[ZLG-ARM]

请教LPC2378中断使能的问题

[复制链接]
1597|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzzpf|  楼主 | 2007-9-12 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟碰到一个问题:发现用ZLG模板(最新给的)中的IRQEnable();IRQDisable();两个语句开关中断的时候特别耗时间,频繁的开关中断,使得我们的2378端口速度都不如51了,去掉开关中断就快了很多.我们用的是I/O口传输数据,需要在传输过程中关掉所有中断,传输完后再打开中断,而且I/O使用的比较频繁.
请教各高手,有什么方法提高I/O的速度吗?或者开关中断有其它语句没?
小弟先谢了

相关帖子

沙发
zzzpf|  楼主 | 2007-9-12 16:00 | 只看该作者

请高手们指点

在线等,谢谢!

使用特权

评论回复
板凳
ARM_08| | 2007-9-13 10:42 | 只看该作者

用快速GPIO

LPC2378不是带有快速GPIO吗

使用特权

评论回复
地板
zzzpf|  楼主 | 2007-9-14 10:39 | 只看该作者

是用的快速GPIO

我们现在是用的快速IO,可还是不够,关键是觉得IRQEnable();IRQDisable();两语句很耗时间

使用特权

评论回复
5
ruraliter| | 2007-9-14 11:14 | 只看该作者

你们的慢的设备是什么

2378好像是中断控制器还是DMA控制器

使用特权

评论回复
6
zzzpf|  楼主 | 2007-9-14 14:21 | 只看该作者

请楼上的继续

我们用的慢设备是RAM和FLASH,三星的K9F5608及5128

使用特权

评论回复
7
ruraliter| | 2007-9-14 15:14 | 只看该作者

你们需要一些测试来计算时间

可能你们过于频繁的使用IRQEnable();IRQDisable();了
我不清楚ZLG模板的内容,不过swi这个语句本身就很耗时,再加上上下文切换程序,的确是很慢的。
你们最好是检查你们的source,看看到底瓶颈在那里,不能一概的说就是IRQEnable();IRQDisable();慢。

建议你们采用一些测试手段,来检查时间

使用特权

评论回复
8
zzzpf|  楼主 | 2007-9-14 17:38 | 只看该作者

谢谢ruraliter!

我们现在的程序为了达到要求,是在频繁的使用IRQEnable();IRQDisable();.
请问"swi"语句是什么语句?"source"是指的我们的模板吗,还是其他什么?
检查时间的话,一般都有什么方**小弟在这方面没做过,还请再指教.
谢谢!
对了,关于模板,那两个函数是这样定义的:
IRQDisable
        ;关IRQ中断
        MRS     R0, SPSR
        ORR     R0, R0, #NoInt
        MSR     SPSR_c, R0
        MOVS    PC, LR

IRQEnable
        ;开IRQ中断
        MRS   R0, SPSR
        BIC   R0, R0, #NoInt
        MSR   SPSR_c, R0
        MOVS    PC, LR

使用特权

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

本版积分规则

13

主题

30

帖子

1

粉丝