Indice del forum Emilia Romagna Linux Users Group
i forum di ERLUG
torna alla home page di ERLUG
 
 Forum SubscriptionsForum Subscriptions   FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

Programmazione Linux: gestione interrupt

 
Nuovo argomento   Rispondi    Indice del forum -> ERLUG
Precedente :: Successivo  
Autore Messaggio
Francesco Bolzoni
Ospite





MessaggioInviato: Mar 19 Giu 2007 10:52    Oggetto: Programmazione Linux: gestione interrupt Rispondi citando

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

MessaggioInviato: Mar 19 Giu 2007 11:31    Oggetto: Programmazione Linux: gestione interrupt Rispondi citando

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
Profilo Invia messaggio privato HomePage
Michele Cabano
Ospite





MessaggioInviato: Mer 20 Giu 2007 08:45    Oggetto: Programmazione Linux: gestione interrupt Rispondi citando

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





MessaggioInviato: Mer 20 Giu 2007 11:33    Oggetto: Programmazione Linux: gestione interrupt Rispondi citando

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





MessaggioInviato: Gio 21 Giu 2007 08:33    Oggetto: Programmazione Linux: gestione interrupt Rispondi citando

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

MessaggioInviato: Gio 21 Giu 2007 09:12    Oggetto: Programmazione Linux: gestione interrupt Rispondi citando

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
Profilo Invia messaggio privato HomePage
Francesco Bolzoni
Ospite





MessaggioInviato: Gio 21 Giu 2007 09:19    Oggetto: Programmazione Linux: gestione interrupt Rispondi citando

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
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> ERLUG Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it

torna alla home page di ERLUG
Per informazioni o problemi, contattare info@erlug.linux.it.
La connettività per questo sito e per gli altri nostri servizi è offerta da Ehiweb.it