免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: chealim
打印 上一主题 下一主题

LINUX 中断嵌套问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-01-16 15:31 |只看该作者
只需在B中断的处理函数中读数据即可。
中断A(同步信号)应该就相当于一个数据头,当同步信号来的时候你要把B中断的处理函数中的接收位置调整为从第0位接收,并且也可以判断上次接收的数据是否完整。

论坛徽章:
0
12 [报告]
发表于 2007-01-16 15:54 |只看该作者
原帖由 chealim 于 2007-1-16 13:46 发表
即A、B、C同属一个组GPIO,因此它们有相同的IRQ号,无论哪个脚来了中断都会触发同一个函数。现在驱动是这样设计的:A为同步信号,B为时钟信号,C为数据线。当A有效时,驱动就开始读B,直到B有效就读C,B--C要连续 ...

这个需求看上去像是硬件实现……不像是软件

论坛徽章:
0
13 [报告]
发表于 2007-01-16 16:50 |只看该作者
中断的处理函数为handle_irq
A中断---》执行handle_irq;B中断---》执行handle_irq;C中断---》也执行handle_irq。
怎么样按照硬件的时序来处理这个过程呢?

论坛徽章:
0
14 [报告]
发表于 2007-01-16 17:24 |只看该作者
原帖由 chealim 于 2007-1-16 16:50 发表
中断的处理函数为handle_irq
A中断---》执行handle_irq;B中断---》执行handle_irq;C中断---》也执行handle_irq。
怎么样按照硬件的时序来处理这个过程呢?

偶不懂硬件,但是用中断读8次ms不是很好的方案。
下面偶瞎说一通,不懂硬件,错了不要埋怨俺。
A来信号,一直到从C读数据都应该用硬件电路完成(偶猜测这个线路对于熟手应该比较简单),直到从C读完一个8位这时产生一个中断由中断处理程序来读这个收到的8位。

论坛徽章:
0
15 [报告]
发表于 2007-01-16 21:17 |只看该作者
中断的处理程序中,判断中断源,区分GPIO A/B/C;分别做处理
由于各中断间有联动关系,设置全局标志来判断到那个阶段了,注意重入问题(以防硬件连续两个A脚中断,才来B脚中断等)

论坛徽章:
0
16 [报告]
发表于 2007-01-17 09:32 |只看该作者
原帖由 wiLinux 于 2007-1-16 21:17 发表
中断的处理程序中,判断中断源,区分GPIO A/B/C;分别做处理
由于各中断间有联动关系,设置全局标志来判断到那个阶段了,注意重入问题(以防硬件连续两个A脚中断,才来B脚中断等)


这看起来还有点思路,但问题A、B、C3个脚是属于同一组GPIO的,它们用同一个中断号,如何区分它们呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP