Precedente :: Successivo |
Autore |
Messaggio |
Francesco Bolzoni Ospite
|
Inviato: Mar 19 Giu 2007 10:52 Oggetto: Programmazione Linux: gestione interrupt |
|
|
Mi hanno posto quesito: E' possibile sotto Linux gestire in modo
"utente" una linea di interrupt ?
Nella mia beata semplicita' ho risposto che dovrebbe essere possibile.
Ammesso di avere dato la risposta corretta e non avendo idea di dove
cercare qualche linea di codice di esempio (c++ possibilmente), c'e'
qualcuno che ha qualche link da suggerire ?
Grazie |
|
Top |
|
|
Francesco Lodi
Registrato: 13/04/07 09:31 Messaggi: 5
|
Inviato: Mar 19 Giu 2007 11:31 Oggetto: Programmazione Linux: gestione interrupt |
|
|
Francesco Bolzoni ha scritto:
Citazione: | Mi hanno posto quesito: E' possibile sotto Linux gestire in modo
"utente" una linea di interrupt ?
| Allora, la tabella dei vettori delle interrupt viene ovviamente gestita
internamente dal kernel e l'associazione interrupt->funzione viene fatta
usando l' API* request_irq
(http://hegel.ittc.ku.edu/topics/linux/man-pages/man9/request_irq.9.html)*
Sinceramente non so dirti se request_irq lo puoi usare anche da un
programma in user space perchè io non l'ho mai fatto ma fare un
tentativo credo che valga la pena.
Un link, sicuramente utile, del buon Rubini è:
http://www.linux.it/~rubini/docs/irq/irq.html
Ciao
Francesco |
|
Top |
|
|
Michele Cabano Ospite
|
Inviato: Mer 20 Giu 2007 08:45 Oggetto: Programmazione Linux: gestione interrupt |
|
|
Francesco Bolzoni wrote:
Citazione: | Mi hanno posto quesito: E' possibile sotto Linux gestire in modo
"utente" una linea di interrupt ?
Nella mia beata semplicita' ho risposto che dovrebbe essere possibile.
Ammesso di avere dato la risposta corretta e non avendo idea di dove
cercare qualche linea di codice di esempio (c++ possibilmente), c'e'
qualcuno che ha qualche link da suggerire ?
Grazie
|
Il sistema operativo è un programma nato anche per impedire che questo
accada. Non credo che il tuo problema sia irrisolvibile, ma dipende
tutto da quello che devi fare: più dettagli farebbero comodo.
Ad occhio ti direi di chiudere le funzionalità che ti servono in un
modulo del kernel, sempre ammesso che per quello che devi fare sia una
buona soluzione.
Per l'argomento ti consiglio i seguenti libri editi da O'Reilly:
1) Linux Device Drivers
2) Understanding the Linux Kernel
Entrambi all'ultima versione (credo sia la 3).
Michele |
|
Top |
|
|
alberto Ospite
|
Inviato: Mer 20 Giu 2007 11:33 Oggetto: Programmazione Linux: gestione interrupt |
|
|
Michele Cabano wrote:
Citazione: | Francesco Bolzoni wrote:
Citazione: | Mi hanno posto quesito: E' possibile sotto Linux gestire in modo
"utente" una linea di interrupt ?
|
|
www.rtai.org
C'è un modo di funzionamento (LXRT) che ti permette di fare questo.
http://www.captain.at/programming/rtai/parportintlxrt.php
è un esempio:
A user-space (LXRT) hard real time example for capturing the parallel
port interrupt.
di rtai c'è anche un live cd, se vuoi solo fare una prova. |
|
Top |
|
|
Francesco Bolzoni Ospite
|
Inviato: Gio 21 Giu 2007 08:33 Oggetto: Programmazione Linux: gestione interrupt |
|
|
On Wed, 2007-06-20 at 09:46 +0200, Michele Cabano wrote:
Citazione: | Il sistema operativo è un programma nato anche per impedire che questo
accada. Non credo che il tuo problema sia irrisolvibile, ma dipende
tutto da quello che devi fare: più dettagli farebbero comodo.
| Grazie a tutti per le info, sicuramente molto interessant.
I dettagli che ho esposto sono gli stessi che mi hanno passato.
Ieri ne ho avuti di maggiori: si tratta sostanzialmente di una scheda di
comunicazione, controllata tramite interrupt appunto. Le funzioni
richieste sono lettura e scrittura su alune porte di I/O. Finita
l'operazione la scheda attiva un IRQ per l'operazione successiva.
L'idea del modulo era venuta anche a me, ma essendo a zero in
programmazione di tale livello ...
Se avete altre idee, visti i maggiori dettagli.
Grazie |
|
Top |
|
|
Francesco Lodi
Registrato: 13/04/07 09:31 Messaggi: 5
|
Inviato: Gio 21 Giu 2007 09:12 Oggetto: Programmazione Linux: gestione interrupt |
|
|
Francesco Bolzoni ha scritto:
Citazione: | Ieri ne ho avuti di maggiori: si tratta sostanzialmente di una scheda di
comunicazione, controllata tramite interrupt appunto. Le funzioni
richieste sono lettura e scrittura su alune porte di I/O. Finita
l'operazione la scheda attiva un IRQ per l'operazione successiva.
L'idea del modulo era venuta anche a me, ma essendo a zero in
programmazione di tale livello ...
| Direi proprio che il modulo è la soluzione migliore!
Su che architettura devi lavorare? E con la scheda attraverso che bus
comunichi?
Se sei in una situazione standard, ovvero x86 e bus pci, puoi provare a
guardarti
come esempio il driver per le linee seriali standard.
Dentro ci trovi come impostare un irq, operare sul bus pci, mappare una
periferica in memoria e
lavorare su degli I/O.
Lo trovi nei sorgenti del kernel sotto drivers/serial/8250_*.c
Poi ovviamente questo libro deve diventare il tuo migliore amico:
http://lwn.net/Kernel/LDD3/ :-D |
|
Top |
|
|
Francesco Bolzoni Ospite
|
Inviato: Gio 21 Giu 2007 09:19 Oggetto: Programmazione Linux: gestione interrupt |
|
|
On Thu, 2007-06-21 at 10:13 +0200, Francesco Lodi wrote:
Citazione: | Su che architettura devi lavorare? E con la scheda attraverso che bus
comunichi?
| Come disse una persona che conosco. "Grazie per la gentile domanda.
Andiamo avanti..."
Le informazioni le rilasciano con troppa parsimonia, e vado solo per
ipotesi. SIcuramente dovrebbe essere piattoforma x86 e bus PCI ma NON ci
giuro.
Grazie ancora ! |
|
Top |
|
|
|