Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-08-2007, 09:08   #1
Stobby
Member
 
Iscritto dal: May 2003
Città: Monza
Messaggi: 175
[Teoria] Vettore di interrupt

Ciao a tutti!
Avrei bisogno di un'informazione: conoscete qualche sito web in cui è possibile ottenere la descrizione dei vettori di interrupt di Windows e la loro collocazione nella memoria?
Sono abituato a lavorare con i microcontrollori, pertanto magari la domanda potrà apparire assurda girata su un PC: è possibile modificare il vettore di interrupt temporaneamente (es: durante l'esecuzione di un programma utente) in modo da sostituire la routine standard di un particolare interrupt con una routine ad-hoc?

Grazie mille a tutti coloro risponderanno.

Ciao
__________________
Ciao!
Stobby è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2007, 09:20   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non puoi modificare direttamente ai vettori di interrupt di Windows e nemmeno aggiungerne uno tuo. Si trovano in una zona di memoria inaccessibile ai programmi utente.
Con il DOS si poteva fare, ma da un bel po' non è più possibile.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2007, 09:46   #3
Stobby
Member
 
Iscritto dal: May 2003
Città: Monza
Messaggi: 175
Ok, scusa la domanda, ma allora come faccio a creare le mie routine di interrupt per associare causa scatenante (es: stampante) a mia risposta? Ci sono per caso di mezzo le API?
__________________
Ciao!
Stobby è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2007, 09:53   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Stobby Guarda i messaggi
Ok, scusa la domanda, ma allora come faccio a creare le mie routine di interrupt per associare causa scatenante (es: stampante) a mia risposta?
Non puoi. Devi scrivere un driver.
Quote:
Originariamente inviato da Stobby Guarda i messaggi
Ci sono per caso di mezzo le API?
Per scrivere un driver sì.
In Windows si fa tutto e solo con le API. L'assembly scordatelo
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2007, 13:42   #5
Stobby
Member
 
Iscritto dal: May 2003
Città: Monza
Messaggi: 175
Però... non credevo fosse così macchinoso il processo..
Grazie mille per le risposte! Ho risparmiato molto tempo... ora so cosa e dove cercare !!

Ciao
__________________
Ciao!
Stobby è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2007, 14:50   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Senza farti stare a cercare troppo...per sviluppare driver ti serve il Microsoft Device Driver Kit, ovviamente il Platform SDK ed ambiente di sviluppo compatibile, ti consiglio Visual Studio Express 2005 (che è anche gratuito).
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2007, 17:19   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Stobby, la documentazione del WDK (Windows Driver Kit) verso l'inizio riporta una frase estremamente saggia: prima di scrivere un driver pensaci e ripensaci, perché il più delle volte scoprirai semplicemente che non è necessario*.

come mai vuoi creare una routine di handling di una interrupt? è assai probabile che ciò che vuoi fare si possa fare in "plain user mode", per così dire, cioè usando delle semplicissime API Win32 (non hai idea di che cosa sia scrivere un driver per Windows ).

* sto cercando dov'è che lo diceva, se la ritrovo ve la quoto
edit - non la trovo ma la sua veridicità rimane intatta
forse l'ho letta su una versione vecchia del DDK (documentazione offline, adesso invece la stavo cercando online).

Ultima modifica di 71104 : 30-08-2007 alle 17:36.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2007, 07:49   #8
Stobby
Member
 
Iscritto dal: May 2003
Città: Monza
Messaggi: 175
Quote:
Originariamente inviato da 71104 Guarda i messaggi
come mai vuoi creare una routine di handling di una interrupt? è assai probabile che ciò che vuoi fare si possa fare in "plain user mode", per così dire, cioè usando delle semplicissime API Win32 (non hai idea di che cosa sia scrivere un driver per Windows ).
L'idea è nata semplicemente perché ho progettato una scheda a DSP che comunica con il PC tramite seriale.Ho pensato (ragionando in analogia al DSP) che il programma lato computer, invece di fare polling sulla seriale per vedere se la scheda aveva qualche cosa da comunicare potesse attendere un interrupt dalla seriale e conseguentemente scaricare il buffer. La questione nasce dal fatto che in genere io programmo microcontrollori e DSP e che quindi sono molto abituato ad utilizzare gli interrupt. Sono abbastanza acerbo di programmazione su PC pertanto sono aperto a tutte le soluzioni. Se posso fare una cosa in maniera più semplice, ben venga... devo solo capire quale è l'idea migliore

In ogni caso, da quello che ho capito, queste benedette API devo conoscerle se voglio fare fare qualunque cosa a Win32... la documentazione consigliata da Cionci contiene anche delle informazioni sulle api?

Grazie e ciao
__________________
Ciao!
Stobby è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2007, 09:26   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Fallo in polling...guarda, ti risparmi tanti di quei problemi.
Quella non è la documentazione bensì le librerie e gli include per sviluppare su Win32.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2007, 09:37   #10
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da Stobby Guarda i messaggi
L'idea è nata semplicemente perché ho progettato una scheda a DSP che comunica con il PC tramite seriale.
Qualsiasi cosa attaccata alla seriale rientra in quella categoria che, come diceva 71104, non ha bisogno di un driver in kernel space.

Devi semplicemente utilizzare il driver per la porta seriale di Windows, provvederà lui a gestire irq, trasferimento dati, impostazioni della porta ecc.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v