Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so2:teme:tema2:faq [2017/03/23 21:20]
adrian.stanciu [1 - Un handler pentru două întreruperi]
so2:teme:tema2:faq [2017/03/23 21:48] (current)
adrian.stanciu [3 - Legătura între read/write și întreruperi]
Line 76: Line 76:
  
 <code c> <code c>
-struct structura_mea * sm = (struct structura_mea *) dev_id;+struct structura_mea *sm = (struct structura_mea *)dev_id;
 sm->​base;​ sm->​base;​
 </​code>​ </​code>​
Line 86: Line 86:
 :?: Din câte am înțeles, în write copiez din userspace într-un write buffer local. Write Bufferul este scris pe serial cu outb în handlerul de intrerupere. În read copiez în userspace dintr-un read buffer local. Read bufferul este umplut cu date primite pe serială(inb) în handlerul de întrerupere. Cum se leagă exact funcțiile de read și write de întrerupere?​ Mie îmi intră o singură dată în întrerupere la inițializarea modulului. ​ :?: Din câte am înțeles, în write copiez din userspace într-un write buffer local. Write Bufferul este scris pe serial cu outb în handlerul de intrerupere. În read copiez în userspace dintr-un read buffer local. Read bufferul este umplut cu date primite pe serială(inb) în handlerul de întrerupere. Cum se leagă exact funcțiile de read și write de întrerupere?​ Mie îmi intră o singură dată în întrerupere la inițializarea modulului. ​
  
-:!: La sfârșitul fiecărei funcții write va trebui ​fie să reactivați întreruperile <code c>​outb(0x00,​ IER); outb (0x03, IER);</​code> ​fie activați întreruperea ​de empty buffer doar când există ceva în buffer-ul ​device-ului de scris.+:!: RDAI trebuie să fie activă cât timp buffer-ul de citire nu este plin. Funcția de read ar trebui să activeze RDAI după ce a luat date din buffer-ul de citire iar handler-ul de întrerupere să dezactiveze RDAI dacă buffer-ul de citire devine plin. 
 +THREI trebuie să fie activă cât timp buffer-ul de scriere nu este gol. Funcția de write ar trebui să activeze THREI după ce a pus date în buffer-ul ​de scriere iar handler-ul de întrerupere să dezactiveze THREI dacă buffer-ul ​de scriere devine gol.
  
 ==== 4 - Buffer circular ==== ==== 4 - Buffer circular ====
so2/teme/tema2/faq.1490296800.txt.gz · Last modified: 2017/03/23 21:20 by adrian.stanciu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0