免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1896 | 回复: 6
打印 上一主题 下一主题

帮忙看一个并口驱动中断的实验,谢谢!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-09 19:19 |只看该作者 |倒序浏览
中断程序怎么也不行,弄了好多天了.那位高手帮忙看看.

程序是把并口的25和10引脚连起来就发生中断……
这个是执行执行测试程序之前的信息(关键部分):
[root@localhost inter]# cat /proc/interrupts

CPU0


0:
282
IO-APIC-edge
timer


1:
7517
IO-APIC-edge
i8042


3:
1
IO-APIC-edge


4:
1
IO-APIC-edge



6:
4
IO-APIC-edge
floppy


8:
1
IO-APIC-edge
rtc0


9:
0
IO-APIC-fasteoi
acpi


12:
2491
IO-APIC-edge
i8042


14:
0
IO-APIC-edge
ata_piix


15:
7798
IO-APIC-edge
ata_piix


17:
16386
IO-APIC-fasteoi
BusLogic BT-958


18:
8703
IO-APIC-fasteoi
eth0


19:
1287
IO-APIC-fasteoi
uhci_hcd:usb1, Ensoniq AudioPCI

NMI:
0
Non-maskable interrupts

LOC:
514919
Local timer interrupts

TRM:
0
Thermal event interrupts

SPU:
0
Spurious interrupts

ERR:
0

MIS:
0

[root@localhost inter]# cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0071 : rtc0
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : 0000:00:07.1

0170-0177 : ata_piix

01f0-01f7 : 0000:00:07.1

01f0-01f7 : ata_piix

02f8-02ff : serial
0376-0376 : 0000:00:07.1

0376-0376 : ata_piix

03c0-03df : vga+
03f2-03f5 : floppy
03f6-03f6 : 0000:00:07.1

03f6-03f6 : ata_piix

03f7-03f7 : floppy DIR
03f8-03ff : serial
……
把测试程序编为a文件执行:
[root@localhost inter]# ./a
start...
wait... input
执行./a之后的信息:

[root@localhost inter]# cat /proc/interrupts //
多了一个中断7


……



7:
0
IO-APIC-edge
intdev


……

[root@localhost inter]# cat /proc/ioports //这个没变
……
0376-0376 : 0000:00:07.1

0376-0376 : ata_piix

03c0-03df : vga+
……


下面两个是驱动和测试程序(以前是自己写的,不行,我以为是我的程序错误,下面是抄的书:俞永昌那本):
驱动:
有字数限制放到附件里了
测试程序:
有字数限制放到附件里了

inter.rar

8.52 KB, 下载次数: 42

论坛徽章:
0
2 [报告]
发表于 2009-11-09 23:43 |只看该作者
不知道怎么给分,我好像有8分,大家给解决一下这个问题,弄出来把8分都给你们!

论坛徽章:
0
3 [报告]
发表于 2009-11-09 23:44 |只看该作者

回复 #2 phoenix-linux 的帖子

好像有10分了,都给了!

论坛徽章:
0
4 [报告]
发表于 2009-11-09 23:50 |只看该作者

回复 #1 phoenix-linux 的帖子

各位大哥大姐,弄了好几天了,出不来,帮忙解决一下。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
5 [报告]
发表于 2009-11-10 09:16 |只看该作者

回复 #4 phoenix-linux 的帖子

首先确认,你在硬件连接上是否对了,如果对了,再确认你注册的中断号是否正确,中断是否发生了?如果发生了,你的中断处理函数应该会被调用,这样的话,你在中断处理函数里面加一些printk信息,应该是可以看到的。

论坛徽章:
0
6 [报告]
发表于 2009-11-10 19:40 |只看该作者

回复 #5 dreamice 的帖子

硬件是没有问题的,我不用中断的话,都能测试。printk函数以前也加过,没反应。用那个
cat /proc/interrupts  显示7号中断发生过0次,能说明问题不?

另外,我的并口好像和书上说的是反的,一行是1-13,另一行是14-25,而我的是一行13-1,25-14。也就是每一行的顺序是反的。

有一点不明白,难道并口不都是用的7号中断?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
7 [报告]
发表于 2009-11-10 21:13 |只看该作者

回复 #6 phoenix-linux 的帖子

0次就说明没有发生中断啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP