linux端口带卡,linux - PCI并行端口卡,无法调用中断处理程序 - 堆栈内存溢出

更新:[似乎是硬件错误,可以使用相同的代码但新卡工作正常]

我最近购买了一个非常便宜的并行pci卡( 链接 ),以尝试了解我的ubuntu机器上的Linux设备驱动程序(通过ldd3)

我已经将LED连接到2-9针,并且能够使用IO端口设置/清除针。 但是还不能引发中断并处理它。 任何帮助或指针将不胜感激

(请注意,我将引脚9直接连接到引脚10)

lspci的

07:04.0 Parallel controller: Device 1c00:2170 (rev 0f) (prog-if 01 [BiDir])

Subsystem: Device 1c00:2170

Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-

Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR-

Interrupt: pin A routed to IRQ 11

Region 0: I/O ports at ccf0 [size=8]

Region 1: I/O ports at ccf8 [size=8]

系统启动后,io寄存器为:

DATA: 0xff, STATUS: 0x07, CONTROL: 0xc0

我试过了:

outb_p(0x10, BASE+2); // enable irq

outb_p(0x00, BASE); outb_p(0xFF, BASE); // trigger interrupt

// => DATA: 0xff, STATUS: 0x7b, CONTROL: 0xd0

但是/ proc / stat的IRQ11 intr行中的中断计数(由lspci报告)仍然为零

我也尝试过将上述seq包装在probe_irq_on/off()之间probe_irq_on/off()之间probe_irq_on/off()一个额外的outb_p(0x00,BASE + 2); udelay(5)),这也无法发现并报告任何中断。 内核探测是在模块代码中调用pci_enable_device(dev)之后完成的。

请让我知道是否需要其他信息。 提前致谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值