Differences

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

Link to this comparison view

so2:laboratoare:lab05 [2018/03/18 14:45]
anda.nicolae [Locking]
so2:laboratoare:lab05 [2018/03/18 19:00] (current)
anda.nicolae [Controller tastatură]
Line 124: Line 124:
 După ce un driver a obținut intervalul de porturi I/O dorite, trebuie să realizeze operații de citire sau scriere pe aceste porturi. Întrucât porturile fizice sunt diferențiate după numărul de biți (8, 16 sau 32 de biți), există diferite funcții de acces a porturilor în funcție de dimensiunea lor. În ''​[[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h|asm/​io.h]]''​ sunt definite următoarele funcții de acces a porturilor: După ce un driver a obținut intervalul de porturi I/O dorite, trebuie să realizeze operații de citire sau scriere pe aceste porturi. Întrucât porturile fizice sunt diferențiate după numărul de biți (8, 16 sau 32 de biți), există diferite funcții de acces a porturilor în funcție de dimensiunea lor. În ''​[[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h|asm/​io.h]]''​ sunt definite următoarele funcții de acces a porturilor:
  
-  * ''​u8 [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L360|inb]](int port)'',​ citește porturi de dimensiune un octet (8 biți) +  * ''​u8 [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L360|inb]](unsigned long addr)'',​ citește porturi de dimensiune un octet (8 biți) 
-  * ''​void [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L384|outb]](unsigned char byteint port)'',​ scrie porturi de dimensiune un octet (8 biți) +  * ''​void [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L384|outb]](u8 valueunsigned long addr)'',​ scrie porturi de dimensiune un octet (8 biți) 
-  * ''​u16 [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L368|inw]](int port)'',​ citește porturi de dimensiune doi octeți (16 biți) +  * ''​u16 [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L368|inw]](unsigned long addr)'',​ citește porturi de dimensiune doi octeți (16 biți) 
-  * ''​void [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L392|outw]](unsigned short wordint port)'',​ scrie porturi de dimensiune doi octeți (16 biți) +  * ''​void [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L392|outw]](u16 valueunsigned long addr)'',​ scrie porturi de dimensiune doi octeți (16 biți) 
-  * ''​u32 [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L376|inl]](int port)'',​ citește porturi de dimensiune patru octeți (32 biți) +  * ''​u32 [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L376|inl]](unsigned long addr)'',​ citește porturi de dimensiune patru octeți (32 biți) 
-  * ''​void [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L400|outl]](unsigned long word, int port)'',​ scrie porturi de dimensiune patru octeți (32 biți)+  * ''​void [[https://​elixir.bootlin.com/​linux/​v4.15/​source/​include/​asm-generic/​io.h#​L400|outl]](u32 value, ​unsigned long addr)'',​ scrie porturi de dimensiune patru octeți (32 biți)
  
 Argumentul port specifică adresa portului de unde se citește sau se scrie, iar tipul său este dependent de platformă (poate fi ''​unsigned long''​ sau ''​unsigned short''​). Argumentul port specifică adresa portului de unde se citește sau se scrie, iar tipul său este dependent de platformă (poate fi ''​unsigned long''​ sau ''​unsigned short''​).
Line 427: Line 427:
 ==== Port paralel ==== ==== Port paralel ====
  
-  * [[http://​elf.cs.pub.ro/​so2/​res/​lab06/​Port_paralel.pdf|Documentație port paralel]] 
-  * [[http://​elf.cs.pub.ro/​so2/​res/​lab06/​Par_control_lin.zip|Program de test pentru portul paralel (Linux)]] 
   * [[http://​www.beyondlogic.org/​spp/​parallel.htm|Interfacing the Standard Parallel Port]]   * [[http://​www.beyondlogic.org/​spp/​parallel.htm|Interfacing the Standard Parallel Port]]
-  * [[http://​www.lvr.com/​parport.htm|Parallel Port Central]] 
-  * [[ftp://​ftp.armory.com/​pub/​user/​rstevew/​LPT/​|Resurse suplimentare port paralel]] 
  
 ==== Controller tastatură ==== ==== Controller tastatură ====
  
   * [[http://​en.wikipedia.org/​wiki/​Intel_8042|Intel 8042]]   * [[http://​en.wikipedia.org/​wiki/​Intel_8042|Intel 8042]]
-  * [[http://gunnarwrobel.de/​wiki/​Linux-and-the-keyboard.html|Linux and the keyboard]] +  * [[https://elixir.bootlin.com/linux/v4.15/source/​drivers/​input/​serio/​i8042.c|drivers/​input/​serio/​i8042.c]] 
-  * [[http://lxr.linux.no/linux+v2.6.32/​drivers/​input/​serio/​i8042.c|drivers/​input/​serio/​i8042.c]] +  * [[https://elixir.bootlin.com/linux/v4.15/source/​drivers/​input/​keyboard/​atkbd.c|drivers/​input/​keyboard/​atkbd.c]]
-  * [[http://lxr.linux.no/linux+v2.6.32/​drivers/​input/​keyboard/​atkbd.c|drivers/​input/​keyboard/​atkbd.c]]+
  
 ==== Linux ==== ==== Linux ====
so2/laboratoare/lab05.1521377131.txt.gz · Last modified: 2018/03/18 14:45 by anda.nicolae
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