Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linuxÖÕ¶ËÉ豸uartÇý¶¯·ÖÎö

ÎÄÕÂÀ´Ô´£ºhttp://blog.chinaunix.net/u3/94284/showart_1982227.html
Ò»:ǰÑÔ
½Ó×ÅÇ°ÃæµÄÖÕ¶Ë¿ØÖÆÌ¨·ÖÎö,½ÓÏÂÀ´·ÖÎöserialµÄÇý¶¯.ÔÚlinuxÖÐ,serialÒ²¶ÔÓ¦×ÅÖÕ¶Ë,ͨ³£±»³ÆÎª´®¿ÚÖÕ¶Ë.ÔÚshellÉÏ,ÎÒÃÇ¿´µ½µÄ/dev/ttyS*¾ÍÊÇ´®¿ÚÖÕ¶ËËù¶ÔÓ¦µÄÉ豸½Úµã.
ÔÚ·ÖÎö¾ßÌåµÄserialÇý¶¯Ö®Ç°.ÓбØÒªÏÈ·ÖÎöuartÇý¶¯¼Ü¹¹.uartÊÇUniversal Asynchronous Receiver and TransmitterµÄËõд.·­Òë³ÉÖÐÎļ´Îª”ͨÓÃÒì²½ÊÕ·¢Æ÷”.ËüÊÇ´®¿ÚÉ豸Çý¶¯µÄ·â×°²ã.
¶þ:uartÇý¶¯¼Ü¹¹¸Åò
ÈçÏÂͼËùʾ:
 
 
ÉÏͼÖкìÉ«²¿·Ý±êʶ¼´Îªuart²¿·ÝµÄ²Ù×÷.
´ÓÉÏͼ¿ÉÒÔ¿´µ½,uartÉ豸ÊǼÌtty_driverµÄÓÖÒ»²ã·â×°.ʵ¼ÊÉÏuart_driver¾ÍÊǶÔÓ¦tty_driver.ÔÚËüµÄ²Ù×÷º¯ÊýÖÐ,½«²Ù×÷תÈëuart_port.
ÔÚд²Ù×÷µÄʱºò,ÏȽ«Êý¾Ý·ÅÈëÒ»¸ö½Ð×öcirc_bufµÄ»·Ðλº´æÇø.È»ºóuart_port´Ó»º´æÇøÖÐÈ¡Êý¾Ý,½«ÆäдÈëµ½´®¿ÚÉ豸ÖÐ.
µ±uart_port´ÓserialÉ豸½ÓÊÕµ½Êý¾Ýʱ,»á½«É豸·ÅÈë¶ÔÓ¦line disciplineµÄ»º´æÇøÖÐ.
ÕâÑù.Óû§ÔÚ±àд´®¿ÚÇý¶¯µÄʱºò,Ö»ÏÈҪע²áÒ»¸öuart_driver.ËüµÄÖ÷Òª×÷ÓÃÊǶ¨ÒåÉ豸½ÚµãºÅ.È»ºó½«¶ÔÉ豸µÄ¸÷Ïî²Ù×÷·â×°ÔÚuart_port.Çý¶¯¹¤³Ìʦû±ØÒª¹ØÐÄÉϲãµÄÁ÷³Ì,Ö»Ðè°´Ó²¼þ¹æ·¶½«uart_portÖеĽӿں¯ÊýÍê³É¾Í¿ÉÒÔÁË.
 
Èý:uartÇý¶¯ÖÐÖØÒªµÄÊý¾Ý½á¹¹¼°Æä¹ØÁª
ÎÒÃÇ¿ÉÒÔ×Ô¼º¿¼ÂÇÏÂ,»ùÓÚÉÏÃæµÄ¼Ü¹¹´úÂëÓ¦¸ÃÒªÔõôд.Ê×ÏÈ¿¼ÂÇÒÔϼ¸µã:
1: Ò»¸öuart_driverͨ³£»á×¢²áÒ»¶ÎÉ豸ºÅ.¼´ÔÚÓû§¿Õ¼ä»á¿´µ½uart_driver¶ÔÓ¦Óжà¸öÉ豸½Úµã.ÀýÈç:
/dev/ttyS0  /dev/ttyS1
ÿ¸öÉ豸½ÚµãÊǶÔÓ¦Ò»¸ö¾ßÌåÓ²¼þµÄ,´ÓÉÏÃæµÄ¼Ü¹¹À´¿´,ÿ¸öÉ豸ÎļþÓ¦¸Ã¶ÔÓ¦Ò»¸öuart_port.
Ò²¾ÍÊÇ˵:uart_deviceÔõôͬ¶à¸öuart_port¹ØÏµÆðÀ´?ÔõÃ´È¥Çø·Ö²Ù×÷µÄÊÇÄÄÒ»¸öÉ豸Îļþ?
 
2:ÿ¸öuart_port¶ÔÓ¦Ò»¸öcirc_buf,ËùÒÔuart_port±ØÐëÒªºÍÕâ¸ö»º´æÇø¹ØÏµÆðÀ´
 
»ØÒättyÇý¶¯¼Ü¹¹ÖÐ.tty_driverÓÐÒ»¸ö½Ð³ÉÔ±Ö¸ÏòÒ»¸öÊý×é,¼´tty->ttys.ÿ¸öÉ豸Îļþ¶ÔÓ¦ÉèÊý×éÖеÄÒ»Ïî.¶øÕâ¸öÊý×éËù´úÂëµÄÊý¾Ý½á¹¹Îªtty_struct. ÏàÓ¦µÄtty_struct»á½«tty_driverºÍldisc¹ØÁªÆðÀ´.
ÄÇÔÚuartÇý¶¯ÖÐ,ÊÇ·ñÒ²¿ÉÓÃÏàͬµÄ·½Ê½À´´¦ÀíÄØ?
½«uartÇý¶¯³£ÓõÄÊý¾Ý½á¹¹±íʾÈçÏÂ:
 
 
½áºÏÉÏÃæÌá³öµÄÒÉÎÊ.¿ÉÒÔºÜÇå³þµÄ¿´¶®ÕâЩ½á¹¹µÄÉè¼Æ.
 
ËÄ:uart_driverµÄ×¢²á²Ù×÷
Uart_driver×¢²á¶ÔÓ¦µÄº¯ÊýΪ: uart_register_driver()´úÂëÈçÏÂ:
int uart_register_driver(struct uart_driver *drv)


Ïà¹ØÎĵµ£º

LinuxÄÚºËÄ£¿é±à³Ì¼ò½é

Ö÷Ì⣺ linuxÄÚºËÄ£¿éµÄ³ÌÐò½á¹¹--Ä£¿é¼ÓÔØº¯Êý(±ØÐë)£¬Ä£¿éÐ¶ÔØº¯Êý(±ØÐë)£¬Ä£¿éÐí¿ÉÖ¤ÉùÃ÷(±ØÐë)£¬Ä£¿é²ÎÊý(¿ÉÑ¡)£¬Ä£¿éµ¼³ö·ûºÅ(¿ÉÑ¡)£¬Ä£¿é×÷ÕߵĵÈÐÅÏ¢ÉùÃ÷(¿ÉÑ¡)
Ò»¸ölinuxÄÚºËÄ£¿éÖ÷ÒªÓÉÒÔϼ¸¸ö²¿·Ö×é³É¡£
1¡¢Ä£¿é¼ÓÔØº¯Êý"ÓÃmodule_init()À´Ö¸¶¨"(±ØÐë)
   µ±Í¨¹ýinsmodºÍmodprobeÃüÁî¼ÓÔØÄÚºËÄ£¿éʱ ......

Linux϶àÏß³Ì(pthread)±à³ÌʵÀý

LinuxϵͳϵĶàÏß³Ì×ñÑ­POSIXÏ߳̽ӿڣ¬³ÆÎª pthread¡£±àдLinuxϵĶàÏ̳߳ÌÐò£¬ÐèҪʹÓÃÍ·Îļþpthread.h£¬Á¬½ÓʱÐèҪʹÓÿâlibpthread.a¡£Ë³±ã˵һÏ£¬Linux ÏÂpthreadµÄʵÏÖÊÇͨ¹ýϵͳµ÷ÓÃclone£¨£©À´ÊµÏֵġ£clone£¨£©ÊÇ LinuxËùÌØÓеÄϵͳµ÷Óã¬ËüµÄʹÓ÷½Ê½ÀàËÆfork£¬¹ØÓÚclone£¨£©µÄÏêϸÇé¿ö£¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔÈ¥²é ......

LinuxÏÂÀûÓÃÌõ¼þ±äÁ¿ÊµÏÖ¶ÁÐ´Ëø

Ê×ÏȽéÉÜÏÂpthread_cond_t¡£ ÔÚLinuxϳÆÖ®Îª×´Ì¬±äÁ¿£¬ÓëÖ®Ïà¹ØµÄÓÐÏÂÃæ¼¸¸öAPI:
    int pthread_cond_init (pthread_cond_t *COND,pthread_condattr_t *cond_ATTR);
    int pthread_cond_signal (pthread_cond_t *COND);
    int pthread_cond_broadcast (pthread_con ......

linuxÃüÁîÖ®grep


ÏàÐÅg r e pÊÇU N I XºÍL I N U XÖÐʹÓÃ×î¹ã·ºµÄÃüÁîÖ®Ò»¡£g r e p£¨È«¾ÖÕýÔò±í´ïʽ°æ±¾£©ÔÊÐí¶ÔÎı¾Îļþ½øÐÐģʽ²éÕÒ¡£Èç¹ûÕÒµ½Æ¥Åäģʽ£¬ g r e p´òÓ¡°üº¬Ä£Ê½µÄËùÓÐÐС£g r e pÖ§³Ö»ù±¾ÕýÔò±í´ïʽ£¬Ò²Ö§³ÖÆäÀ©Õ¹¼¯¡£g r e pÓÐÈýÖÖ±äÐΣ¬¼´£º
G r e p£º ±ê×¼g r e pÃüÁ±¾ÕÂ´ó²¿·ÖÆª·ù¼¯ÖÐÌÖÂ۴˸ñʽ¡£
E g r e p£º ......

LinuxÖÕ¶ËÉ豸Çý¶¯

ÎÄÕÂÀ´Ô´£ºhttp://blog.chinaunix.net/u3/94284/showart_1981110.html
ÔÚLinuxϵͳÖУ¬ÖÕ¶ËÉ豸·Ç³£ÖØÒª£¬Ã»ÓÐÖÕ¶ËÉ豸£¬ÏµÍ³½«ÎÞ·¨ÏòÓû§·´À¡ÐÅÏ¢£¬LinuxÖаüº¬¿ØÖÆÌ¨¡¢´®¿ÚºÍαÖÕ¶Ë3ÀàÖÕ¶ËÉ豸¡£
14.1ÖÕ¶ËÉ豸
    ÔÚLinuxϵͳÖУ¬ÖÕ¶ËÊÇÒ»ÖÖ×Ö·ûÐÍÉ豸£¬ËüÓжàÖÖÀàÐÍ£¬Í¨³£Ê¹ÓÃttyÀ´¼ò³Æ¸÷ÖÖÀàÐ͵ÄÖÕ¶ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ