Triggering hardware interrupts conectando os pinos da porta paralela 9 e 10 não funciona

1

Eu quero disparar interrupções de hardware conforme descrito no livro Drivers de dispositivos Linux conectando os pinos 9 e 10 com um fio. Eu tentei isso, mas aparentemente não há interrupção acionada:

cat /proc/interrupts :

 7:          0    XT-PIC  parport0

Agora eu me pergunto por que isso? Módulos de kernel são carregados:

parport_pc             26004  0
parport                35239  2 ppdev,parport_pc

No livro, diz que as interrupções precisam ser ativadas, mas esse é o caso quando o módulo é carregado, certo?

Alguma idéia do que eu poderia fazer?

    
por JohnnyFromBF 27.05.2015 / 15:09

2 respostas

1

Apenas conectar os pinos não gerará uma interrupção. De acordo com o documento que você referenciou, você precisa gravar alguns dados no pino 9, que tem um curto para fixar 10 para gerar a interrupção. Citação do seu documento referenciado:

Pin 9 is the most significant bit of the parallel data byte. If you write binary data to /dev/short0, you generate several interrupts. Writing ASCII text to the port won't generate any interrupts, though, because the ASCII character set has no entries with the top bit set.

    
por 27.05.2015 / 15:40
0

Por que as pessoas acham tão difícil ler o código do kernel? : P.

link

Sério, é comum que dispositivos só sejam ativados quando são necessários - quando o espaço do usuário os abre. Exemplo:

Se você olhar para o ppdev.c, verá que ele apresenta uma API em que o parport é "reivindicado" (embora não necessariamente exclusivamente ?!). Só então ele chama pp_enable_irq() . (Eu olhei pela primeira vez para open () e vi o comentário lá).

Eu não sei se essa é a razão exata aqui, mas mostra a falha em sua suposição:).

    
por 27.05.2015 / 15:38