Estou desenvolvendo um driver para controlar as entradas de sinal que chegam a uma placa receptora conectada por uma porta PCI e tenho um problema quando se trata de lidar com esses sinais.
Quando um sinal chega, este cartão envia um sinal de interrupção para o processador e, em teoria, o motorista executa a instrução de interrupção, mas isso nunca chega a acontecer.
Eu verifiquei com um osciloscópio que o cartão envia o sinal de interrupção e que no pino que está conectado ao processador esse sinal também chega, no entanto o Linux não detecta a qualquer momento que uma interrupção chegou. Embora eu estivesse errado no design do software, o Linux deveria me mostrar que as interrupções estão chegando, certo?
Para declarar o log de interrupções em / proc / interruptions
usei a função request_irq (pcidev-> irq, IntrCheck, 0, "FPGA_INT, pcidev");
e a função IntrCheck
está declarada como void
Esta função está correta?
Eu pensei que um possível erro que não estamos vendo as interrupções tem a ver com o DTB que estamos usando para desenvolver e temos que modificá-lo