linuxÉ豸Çý¶¯ IO Port
1. I/O Port
¡¡¡¡ºÍÓ²¼þ
´ò½»µÀÀë²»¿ªI/O Port
£¬ÀϵÄ
ISA
É豸¾³£ÊÇÕ¼ÓÃʵ¼ÊµÄ
I/O
¶Ë¿Ú£¬ÔÚ
linux
Ï£¬²Ù×÷
ϵͳûÓжÔ
I/O
¿ÚÆÁ±Î£¬Ò²¾ÍÊÇ˵£¬ÈκÎÇý¶¯³ÌÐò¶¼¿É¶ÔÈÎÒâµÄ
I/O
¿Ú²Ù×÷£¬ÕâÑù
¾ÍºÜÈÝÒ×ÒýÆð»ìÂÒ¡£Ã¿¸öÇý¶¯³ÌÐòÓ¦¸Ã×Ô¼º±ÜÃâÎóÓö˿ڡ£
¡¡¡¡ÓÐÁ½¸ö
ÖØÒªµÄkernel
º¯Êý¿ÉÒÔ±£Ö¤Çý¶¯³ÌÐò×öµ½ÕâÒ»µã¡£
¡¡¡¡1
£©
check_region(int io_port
£¬
int off_set)
¡¡¡¡Õâ¸öº¯
Êý²ì¿´ÏµÍ³µÄI/O
±í£¬¿´ÊÇ·ñÓбðµÄÇý¶¯³ÌÐòÕ¼ÓÃijһ¶Î
I/O
¿Ú¡£
¡¡¡¡²ÎÊý1
£º
I/O
¶Ë¿ÚµÄ»ùµØ
Ö·£¬
¡¡¡¡²ÎÊý2
£º
I/O
¶Ë¿ÚÕ¼ÓõÄ
·¶Î§¡£
¡¡¡¡·µ»Ø
Öµ£º0
û
ÓÐÕ¼Ó㬠·Ç
0
£¬ÒѾ±»Õ¼Óá£
¡¡¡¡2
£©
request_region(int io_port
£¬
int off_set
£¬
char *devname)
¡¡¡¡Èç¹ûÕâ
¶ÎI/O
¶Ë
¿ÚûÓб»Õ¼Óã¬ÔÚÎÒÃǵÄÇý¶¯³ÌÐòÖоͿÉÒÔʹÓÃËü¡£ÔÚʹÓÃ֮ǰ£¬±ØÐëÏòϵͳµÇ¼Ç£¬ÒÔ·ÀÖ¹±»ÆäËû³ÌÐòÕ¼ÓᣵǼǺó£¬ÔÚ
/proc/ioports
ÎļþÖпÉÒÔ¿´µ½ÄãµÇ¼ÇµÄ
I/O
¿Ú¡£
¡¡¡¡²ÎÊý1
£º
io
¶Ë¿ÚµÄ»ùµØ
Ö·¡£
¡¡¡¡²ÎÊý2
£º
io
¶Ë¿ÚÕ¼Óõķ¶
Χ¡£
¡¡¡¡²ÎÊý3
£ºÊ¹ÓÃÕâ¶Î
io
µØÖ·µÄÉ豸
Ãû¡£
¡¡¡¡ÔÚ¶ÔI/O
¿ÚµÇ¼Çºó£¬
¾Í¿ÉÒÔ·ÅÐĵØÓÃ
inb()
£¬
outb()
Ö®ÀàµÄº¯À´·ÃÎÊÁË¡£
ÔÚһЩpci
É豸ÖУ¬
I/O
¶Ë¿Ú±»Ó³Éäµ½Ò»¶ÎÄÚ´æÖÐÈ¥£¬Òª·ÃÎÊÕâЩ¶Ë¿Ú¾ÍÏ൱ÓÚ·ÃÎÊÒ»¶ÎÄÚ´æ¡£¾³£ÐԵģ¬ÎÒÃÇÒª»ñµÃÒ»¿éÄÚ´æµÄ
ÎïÀíµØÖ·¡£
¡¡¡¡2
.ÄÚ´æ²Ù×÷
¡¡¡¡ÔÚÉ豸Çý¶¯³ÌÐòÖж¯Ì¬¿ª
±ÙÄڴ棬²»ÊÇÓÃmalloc
£¬¶øÊÇ
kmalloc
£¬»òÕßÓÃ
get_free_pages
Ö±½ÓÉêÇëÒ³¡£ÊÍ·ÅÄÚ´æÓõÄÊÇ
kfree
£¬»ò
free_pages
¡£ Çë
×¢Ò⣬
kmalloc
µÈº¯Êý·µ»ØµÄÊÇÎïÀíµØÖ·£¡
¡¡¡¡×¢
Ò⣬kmalloc×î´óÖ»ÄÜ¿ª±Ù
128k-16
£¬
16
¸ö×Ö½ÚÊDZ»Ò³
ÃèÊö·û½á¹¹Õ¼ÓÃÁË¡£
¡¡¡¡ÄÚ´æÓ³
ÉäµÄI/O
¿Ú£¬¼Ä´æÆ÷»òÕßÊÇÓ²¼þÉ豸µÄ
RAM(
ÈçÏÔ´æ
)
Ò»°ãÕ¼ÓÃ
F0000000
ÒÔÉϵĵØÖ·¿Õ¼ä¡£ÔÚÇý¶¯³ÌÐòÖв»ÄÜÖ±½Ó·ÃÎÊ£¬ÒªÍ¨¹ý
kernel
º¯Êý
vremap
»ñµÃ
ÖØÐÂÓ³ÉäÒÔºóµÄµØÖ·¡£
¡¡¡¡ÁíÍ⣬
ºÜ¶àÓ²¼þÐèÒªÒ»¿é±È½Ï´óµÄÁ¬ÐøÄÚ´æÓÃ×÷DMA
´«ËÍ¡£Õâ¿é
³ÌÐòÐèҪһֱפÁôÔÚÄڴ棬²»Äܱ»½»»»µ½ÎļþÖÐÈ¥¡£µ«ÊÇkmalloc
×î¶à
Ö»ÄÜ¿ª±Ù
128k
µÄÄÚ´æ¡£
¡¡¡¡Õâ¿
Ïà¹ØÎĵµ£º
×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
ÓÃ -NX ......
LINUXÏÂUSB1.1É豸ѧϰС¼Ç(4)_uhci(2)
À´Ô´: ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º 2009.03.14 16:44¡¡(¹²ÓÐÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
ºÃ~ ÏÖÔÚÍòʾ㱸,ֻǷuhciÓ²¼þµÄ×¢²áÁË
ÏÖÔÚ̸һÏÂuhciÓ²¼þµÄ×é³É,uhciµÄÓ²¼þ·ÖΪÁ½¸ö´óµÄ²¿·Ö,Ö÷»ú¿ØÖÆÆ÷ºÍ¸ù¼¯Ï߯÷,ÈçÏÂͼ
µ±Ìá½»uhciÓ²¼þµÄ×¢²áµ½pci×ÜÏߺó,¾¹ýÒ»ÂÖÆ¥Åä,Ö ......
Code maturity level options
´úÂë³ÉÊì¶ÈÑ¡Ïî
Prompt for development and/or incomplete code/drivers ÏÔʾÉÐÔÚ¿ª·¢ÖлòÉÐδÍê³ÉµÄ´úÂëÓëÇý¶¯.³ý·ÇÄãÊDzâÊÔÈËÔ±»òÕß¿ª·¢Õß,·ñÔòÇëÎðÑ¡Ôñ
General setup
³£¹æÉèÖÃ
Local version - append to kernel release ÔÚÄں˰汾ºóÃæ¼ÓÉÏ×Ô¶¨ÒåµÄ°æ±¾×Ö·û´®(СÓÚ64×Ö·û),¿ÉÒÔÓ ......
LinuxÄÚºË×·×Ùÿ¸ö½ø³ÌʹÓõÄ×Ê ±ÈÈç ¶ÑÕ» ´úÂë¶Î Êý¾Ý¶Î ÔËÐеÄλÖÃ
int getrusage(int who , struct rusage * usage) ¼ì²é½ø³Ì±¾Éí£¬×Ó½ø³Ì»òÕßÁ½ÕßÖ®ºÍµÄ×ÊԴʹÓÃ
º¯Êý·µ»ØÒ»¸öusage½á¹¹£¬´æ·Å½ø³ÌʹÓõÄ×ÊÔ´
usageÊǺܳ¤µÄL ......
linuxÉ豸Çý¶¯¿ª·¢Ïê½â——globalmem
ÊÕ²Ø
³£¼ûµÄÁ½ÖÖ´íÎó£º
1.ÔÚ²åÈëÄ£¿éµÄʱºò³öÏÖÈçÏÂÎÊÌ⣺
# insmod globalmem.ko insmod: error inserting 'globalmem.ko': -1
Device or res ......