[pso] [Tema2][Linux][Activare intreruperi]
Bogdan Nitu
nitubogdan_cc at yahoo.com
Mon Apr 5 18:31:44 EEST 2010
Daca poate sa ma ajute cineva, mie tot nu imi intra in handler, desi:
1)
outb(0x00,(COM1_BASE)+3); // fortez 0 pe tot LCR si astfel si pe bitul 7 (DLAB) - nu stiu cum sa fortez doar un bit dintr-un registru
outb(0x00,(COM1_BASE)+2); // dezactivare fifo
outb(0x08,(COM1_BASE)+4); // setare Bit 3 - MCR - Aux Output 2
outb(0x0F,(COM1_BASE)+1); // setare Bit 0, 1, 2, 3 - IER - activarea tuturor intreruperilor (DLAB este deja 0)
SET_LINE(UART16550_BAUD_9600,UART16550_LEN_8,UART16550_STOP_1,UART16550_PAR_NONE,COM1_BASE); //macroul din laboratorul de anul trecut
si scriu outb('w', COM1_BASE); si nu intra in handler desi acesta este inregistrat pe liniile 4 si 3 pentru cele doua comm-uri
cat /proc/interrupts
3: 0 IO-APIC-edge so2_com2
4: 0 IO-APIC-edge so2_com1
2)
Un lucru pe care nu il inteleg deloc este operatia de citire (de ce nu functioneaza?):
Cand citesc din LSR (Line Status Register) stare = inb((COM1_BASE)+5) imi returneaza ff.
Citesc din orice registru imi da ff desi in request_region am cerut 8 porturi:
if(request_region(COM1_BASE, 8, COM1_NAME) == NULL) { };
3)
O alta intrebare, pe masina virtuala ati dat jos vre-un modul?
Mie nu imi mergea request_region (error - no such device) si a trebuit rmmod 8250_pnp.
Multumesc frumos!
Bogdan.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/lurker/list/pso.html/attachments/20100405/b41a3b5c/attachment-0001.htm>
More information about the pso
mailing list