[ubuntu-ar] Manejo de interrupciones
Marcelo Fernandez
marcelo.fidel.fernandez at gmail.com
Mon Feb 20 01:25:55 UTC 2012
El día 16 de febrero de 2012 14:23, sebastian incicco
<sebincicco en yahoo.com.ar> escribió:
> Hola, quería saber si alguien tiene idea de como hacer rutinas en C++ o C
> para atender interrupciones en ubuntu.
> Por ejemplo si tengo una señal en un pin del puerto paralelo, y cambia de
> estado logico quiero que salte la interrupción para en ese momento poder
> correr una rutina de lectura del puerto serie. Espero que se entienda lo que
> necesito hacer.
>
> Saludos
>
Hola Sebastián,
Como ya te han dicho, en Linux o en cualquier Sistema Operativo
"moderno" (Windows 2000 para arriba también) que funcione únicamente
en Modo Protegido del 80x86 es imposible que un programa maneje las
interrupciones de hardware como uno hacía en DOS.
Sin embargo, esto no quiere decir que no puedas hacer un driver en
modo kernel que haga que Linux te avise cuando hay un evento/cambio
(interrupción) en particular. Acá tenés cómo hacerlo [1], y tu
programa en C (corriendo en modo usuario) debería hacer las syscalls
correspondientes para llamar a tu driver.
Como es mucho laburo, se ve que alguien se tomó el trabajo de hacerlo
antes que vos, e hizo una biblioteca enlazable desde C para leer el
estado de los pines LPT en Linux llamada Parapin [2].
[1] http://www.xml.com/ldd/chapter/book/ch09.html
[2] http://parapin.sourceforge.net/
Ahora, si la mano viene por hacer algunos TPs de alguna materia estilo
"Arquitectura de Computadores"... necesitás un DOS para experimentar.
FreeDOS te va a permitir hacer lo que quieras.
Saludos
--
Marcelo F. Fernández
Buenos Aires, Argentina
Licenciado en Sistemas - CCNA
E-Mail: marcelo.fidel.fernandez en gmail.com
Blog: http://blog.marcelofernandez.info
Twitter: http://twitter.com/fidelfernandez
More information about the Ubuntu-ar
mailing list