|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
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! |
![]() |
![]() |
![]() |
#2 |
Senior Member
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. |
![]() |
![]() |
![]() |
#3 |
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! |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Per scrivere un driver sì. In Windows si fa tutto e solo con le API. L'assembly scordatelo ![]() |
|
![]() |
![]() |
![]() |
#5 |
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! |
![]() |
![]() |
![]() |
#6 |
Senior Member
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).
|
![]() |
![]() |
![]() |
#7 |
Bannato
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. |
![]() |
![]() |
![]() |
#8 | |
Member
Iscritto dal: May 2003
Città: Monza
Messaggi: 175
|
Quote:
![]() 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! |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
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. |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
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 |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:17.