[pso] [windows] tema2

Irina Tirdea ynuka13 at gmail.com
Tue Apr 29 18:55:09 EEST 2008


> Da,folosesc masina dp site,deci e configurata,dar tot nu merge... 

Din ce am inteles din mailul anterior, eroarea iti apare la
IoConnectInterrupt (in varianta non-PNP). Problema este ori la modul in care
inregistrezi intreruperea (HalGetInterruptVector, IoConnectInterrupt), ori
ai deja un driver inregistrat pentru portul paralel. Poate ti-a ramas un
driver incarcat de la unele din incercarile anterioare? 
Partea de conectare a intreruperii functioneaza si pentru portul paralel in
solutia pentru laborator de pe site (doar generarea intreruperilor nu
functioneaza, din cauza masinii virtuale). Iti functioneaza inregistrarea
intrerupererii pentru portul paralel?

> A reusit cineva sa faca tema asta pe win? 

Da, bineinteles.

> Daca exemplul din laborator cu portul
> parallel nu merge pe masina virtuala dp site, atunci pe ce sa testez?

Pe masina reala, daca ai port paralel; in cazul asta va trebuie sa urmezi
instructiunile de la exercitiul de laborator si sa legi unul din pinii de
date (2-9) la pinul 10 al portului paralel.  

Alternativ, poti testa chiar portul serial, din masina virtuala, cu cateva
modificari la solutia pentru portul paralel, asa cum ti-am indicat in mailul
anterior.
In loc de (portul paralel):

	#define MY_IRQ 7
	#define MY_BASEPORT 0x378
	
	...

	WRITE_PORT_UCHAR ((PUCHAR) (MY_BASEPORT + 2), 0x10);
//activate interrupts

	...
	
	WRITE_PORT_UCHAR ((PUCHAR) (MY_BASEPORT + 2), 0x00);
//deactivate interrupts

folosesti (COM1):

	#define MY_IRQ 4
	#define MY_BASEPORT 0x3F8

	...

	WRITE_PORT_UCHAR ((PUCHAR) MY_BASEPORT + 4, 0x08);
//activate interrupts
	WRITE_PORT_UCHAR ((PUCHAR) MY_BASEPORT + 1, 0x03);

	...

	WRITE_PORT_UCHAR ((PUCHAR) (MY_BASEPORT + 4), 0x00);
//deactivate interrupts
	WRITE_PORT_UCHAR ((PUCHAR) (MY_BASEPORT + 1), 0x00);


Ti se genereaza intreruperea THREI chiar la inserarea modulului si se
executa rutina de tratare a intreruperii.


Irina





More information about the pso mailing list