User Tools

Site Tools


linux-kernel-dev:capitole:capitol-07

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux-kernel-dev:capitole:capitol-07 [2015/09/11 09:34]
razvan [Exerciții]
linux-kernel-dev:capitole:capitol-07 [2015/09/11 10:27] (current)
razvan [Afișare mesaj de tastă apasată]
Line 25: Line 25:
 ==== Afișare mesaj de tastă apasată ==== ==== Afișare mesaj de tastă apasată ====
  
-Actualizați driverul de la punctul anterior pentru a afișa în mesaj tasta care a fost apăsată, în măsura în care este afișabilă (ASCII). Va trebui să folosiți cele două porturi ​de tastatură ​(''​0x60''​ și ''​0x64''​) și să folosiți funcția ''​inb()''​ pentru a citi informațiile. În portul/​registrul de stare puteți vedea dacă este vorba de o tastă apăsată iar în registrul de date aveți codificare tastei.+Actualizați driverul de la punctul anterior pentru a afișa în mesaj tasta care a fost apăsată, în măsura în care este afișabilă (ASCII). Va trebui să folosiți cele portul ​de date al tastaturii ​(''​0x60''​) și să folosiți funcția ''​inb()''​ pentru a citi informațiile. În portul/​registrul de stare puteți vedea dacă este vorba de o tastă apăsată iar în registrul de date aveți codificare tastei. 
 + 
 +<note tip> 
 +Va trebui să implementați funcția ''​i8042_read_data()''​ pentru a citi valoarea din registrul de date al tastaturii. 
 + 
 +În handler-ul de întrerupere (adică în funcția ''​kbd_interrupt_handle()''​) va trebui să rețineți valoarea citită cu ajutorul funcției ''​i8042_read_data()''​ și apoi să apelați funcția ''​is_key_press()''​ și ''​get_ascii()''​. 
 + 
 +Este important să rețineți valoarea registrului într-o variabilă și să **nu** apelați de două sau mai multe ori funcția ''​i8042_read_data()''​. 
 +</​note>​
  
 ==== Stocare taste apăsate ==== ==== Stocare taste apăsate ====
linux-kernel-dev/capitole/capitol-07.1441953259.txt.gz · Last modified: 2015/09/11 09:34 by razvan