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

linux UART´®¿ÚÇý¶¯


linux UART´®¿ÚÇý¶¯¿ª·¢Îĵµ
ʱ¼ä:2010-01-09 14:24:55À´Ô´:ÍøÂç ×÷Õß:δ֪ µã»÷:482´Î
ÄÚÈݼò½é: ½éÉÜÁËLinuxϵĴ®¿ÚÇý¶¯µÄÉè¼Æ²ã´Î¼°½Ó¿Ú, ²¢Ö¸³ö´®¿ÚÓëTTYÖÕ¶ËÖ®¼äµÄ¹ØÁª²ã´Î(´®¿Ú¿É×÷TTYÖÕ¶ËʹÓÃ), ÒÔ¼°LinuxϵÄÖжϴ¦Àí»úÖÆ/ÖжϹ²Ïí»úÖÆ, »¹Óд®¿Ú»º³å»úÖÆµ±ÖÐÉæ¼°µÄÈíÖжϻúÖÆ; ÆäÖÐÓйØw83697/
ÄÚÈݼò½é: ½éÉÜÁËLinuxϵĴ®¿ÚÇý¶¯µÄÉè¼Æ²ã´Î¼°½Ó¿Ú, ²¢Ö¸³ö´®¿ÚÓëTTYÖÕ¶ËÖ®¼äµÄ¹ØÁª²ã´Î(´®¿Ú¿É×÷TTYÖÕ¶ËʹÓÃ), ÒÔ¼°LinuxϵÄÖжϴ¦Àí»úÖÆ/ÖжϹ²Ïí»úÖÆ, »¹Óд®¿Ú»º³å»úÖÆµ±ÖÐÉæ¼°µÄÈíÖжϻúÖÆ; ÆäÖÐÓйØw83697/w83977 IC·½ÃæµÄ֪ʶ, ¾ßÌå²Î¿¼Ïà¹ØÊÖ²á, ¶Ô´®¿ÚµÄÅäÖüĴæÆ÷ÓÐÏêϸ½éÉÜ, ±¾ÎIJ»ÔÙ½øÐÐ˵Ã÷.
Ŀ¼Ë÷Òý:
Ò». LinuxµÄ´®¿Ú½Ó¿Ú¼°²ã´Î.
¶þ. LinuxµÄÖжϻúÖÆ¼°ÖжϹ²Ïí»úÖÆ.
Èý. LinuxµÄÈíÖжϻúÖÆ.
ËÄ. TTYÓë´®¿ÚµÄ¾ßÌ幨Áª.
Ò». LinuxµÄ´®¿Ú½Ó¿Ú¼°²ã´Î.
    ´®¿ÚÊÇʹÓÃÒѾ­·Ç³£¹ãµÄÉ豸ÁË, Òò´ËÔÚlinuxÏÂÃæµÄÖ§³ÖÒѾ­ºÜÍêÉÆÁË, ¾ßÓÐͳһµÄ±à³Ì½Ó¿Ú, Çý¶¯¿ª·¢ÕßËùÒªÍêÕûµÄ¹¤×÷¾ÍÊÇÕë¶Ô²»Í¬µÄ´®¿ÚICÀ´×öÍê³ÉÏàÓ¦µÄÅäÖúê, Õâ´ËÅäÖúê°üÀ¨¶ÁÓëд, Öжϴò¿ªÓë¹Ø±Õ(Èç´«ËÍÓë½ÓÊÕÖжÏ), ½ÓÊÕ״̬´¦Àí, ÓÐFIFOʱ»¹Òª´¦ÀíFIFOµÄ״̬. ÈçÏÂÎÒÃǾÍÊ×ÏÈÇÐÈëÕâÒ»²¿·Ö, ¾ßÌåÁ˽âÒ»ÏÂÓëÓ²¼þ´®¿ÚICÏà¹ØµÄ²¿·ÖÔÚÇý¶¯ÖеĴ¦Àí, ÕâÒ»²¿·Ö¿ÉÒÔ˵ÊÇ´®¿ÚÇý¶¯ÖеÄ×î»ù´¡²¿·Ö, Ö±½ÓÓëÓ²¼þ´ò½»µÀ, Íê³É×îµ×²ã¾ßÌåµÄ´®¿ÚÊý¾Ý´«Êä.
1. ´®¿ÚÓ²¼þ×ÊÔ´µÄ´¦Àí.
    W83697¼°W83977ÔÚep93xx°å×ÓÉϵÄÓ³ÉäµÄÓ²¼þÎïÀí¿Õ¼äÈçÏÂ:
W83697: 0x20000000Æð1K¿Õ¼ä.
W83977: 0x30000000Æð1K¿Õ¼ä.
    ÒòΪ´®¿ÚÉ豸µÄÌØÊâÐÔ, ¿ÉÒÔµ±×÷ÖÕ¶ËʹÓÃ, µ«ÊÇÖն˵ÄʹÓÃÔÚÄں˻¹Î´ÍêÈ«³õʼ»¯Ö®Ç°(¹ØÓÚ´®¿ÚÓëÖն˵ĹØÁª¼°²ã´ÎÔÚµÚËĽÚÖÐÏêϸ), ´Ëʱ»¹Ã»ÓÐͨ¹ýmem_init()½¨Á¢Äں˵ÄÐé´æ¹ÜÀí»úÖÆ, ËùÒÔ²»ÄÜͨ¹ýioreampÀ´½øÐÐÎïÀíÄÚ´æµ½Ðé´æµÄÓ³Éä(ÎïÀíÄÚ´æ±ØÐëÓÉÄÚºËÓ³Éä³Éϵͳ¹ÜÀíµÄÐéÄâÄÚ´æºó²ÅÄܽøÐжÁд·ÃÎÊ), ÕâÓëÏÈǰËù½²µÄframebufferµÄÎïÀíÄÚ´æÓ³ÉäÊDz»Í¬µÄ, ¾ßÌåÔ­ÒòÈçÏÂ:
√ÖÕ¶ËÔÚ×¢²á²¢Ê¹Óõĵ÷Ó÷¾¶ÈçÏÂ:
start_kernel→console_init→uart_console_init→ep93xxuart_console_init→register_console→csambuart_console_write.
√FrameBufferÏÔ¿¨Çý¶¯ÖеÄÎïÀíÄÚ´æÓ³Éäµ÷Ó÷¾¶ÈçÏÂ:
start_kernel→ rest_init→init(Äں˳õʼÏß³Ì)→


Ïà¹ØÎĵµ£º

spinlock ÓëlinuxÄں˵÷¶ÈµÄ¹ØÏµ


¹ØÓÚ×ÔÐýËøÓ÷¨½éÉܵÄÎÄÕ£¬ÒѾ­Óкܶ࣬µ«ÓÐЩϸ½ÚµÄµØ·½µãµÄ»¹²»¹»Í¸¡£ÎÒÕâÀï¾Í°ÑÎÒ¸öÈËÈÏΪ´ó¼ÒÈÝÒ×ÓÐÒÉÎʵĵط½ÄóöÀ´ÌÖÂÛһϡ£

Ò»¡¢×ÔÐýËø£¨spinlock£©¼ò½é

×ÔÐýËøÔÚͬһʱ¿ÌÖ»Äܱ»×î¶àÒ»¸öÄÚºËÈÎÎñ³ÖÓУ¬ËùÒÔÒ»¸öʱ¿ÌÖ»ÓÐÒ»¸öÏß³ÌÔÊÐí´æÔÚÓÚÁÙ½çÇøÖС£Õâµã¿ÉÒÔÓ¦ÓÃÔÚ¶à´¦Àí»úÆ÷¡¢»òÔËÐÐÔÚµ¥´¦ÀíÆ÷ÉϵÄÇ ......

ǶÈëʽLinux½»²æ±àÒë»·¾³µÄ½¨Á¢£¨»ùÓÚ ubuntu 8.10£©


ÔÚ½øÐÐǶÈëʽ¿ª·¢Ö®Ç°£¬Ê×ÏÈÒª½¨Á¢Ò»¸ö½»²æ±àÒë»·¾³£¬ÕâÊÇÒ»Ì×±àÒëÆ÷¡¢Á¬½ÓÆ÷ºÍlibc¿âµÈ×é³ÉµÄ¿ª·¢»·¾³¡£±¾ÎľßÌå˵Ã÷ÁËǶÈëʽ½»²æ±àÒë»·¾³µÄ½¨Á¢¹ý³Ì
ºÍ¾ßÌåµÄ²Ù×÷²½Ö裬ϣÍûÄܹ»¶Ô¸÷λÅóÓѴ¶ÔÓ¦µÄ½»²æ±àÒë»·¾³ÓÐËù°ïÖú¡£
Ò»¡¢ËùÐèÈíÓ²¼þ»·¾³
¡ö Ö÷»ú»·¾³
½¨Á¢½»²æ±àÒ빤¾ßÁ´µÄÖ÷»ú»·¾³£º
Ubuntu 8.10£¬gcc-4.3 ......

Linux iptables ¶Ë¿Ú Ó³Éä°¸Àý

iptablesÊÇÒ»¸ö
Linux
ÏÂÓÅÐãµÄnat+·À»ðǽ¹¤¾ß£¬ÎÒʹÓøù¤¾ßÒԽϵÍÅäÖõĴ«Í³pcÅäÖÃÁËÒ»¸ö
Áé»îÇ¿¾¢µÄ·À»ðǽ+natϵ
ͳ,СÓÐÐĵ㬿´
ÁËÍøÉÏÒ²ÓкܶàÕâ·½ÃæµÄÎÄÕ£¬µ«ÊÇËÆºõҪô˵µÄ±È½ÏÉÙ£¬ÒªÃ´¾ÍÊÇ±È½ÏÆ«£¬ÄÚÈݲ»È«£¬ÈÝÒ×Îóµ¼£¬ÎÒÑо¿ÁËÒ»¶Îʱ¼äµÄiptablesͬʱҲÓÃÁ˺ܾã¬ÓеãµÎ
¾­Ñ飬дÀ´¹©´ó¼Ò²Î¿¼£¬Í¬Ê±Ò²±¸ ......

ʵÀý½âÎölinuxÄÚºËI2CÌåϵ½á¹¹

Ò»¡¢¸ÅÊö
̸µ½ÔÚlinuxϵͳϱàдI2CÇý¶¯£¬Ä¿Ç°Ö÷ÒªÓÐÁ½ÖÖ·½Ê½£¬Ò»ÖÖÊǰÑI2CÉ豸µ±×÷Ò»¸ö
ÆÕͨµÄ×Ö·ûÉ豸À´´¦Àí£¬ÁíÒ»ÖÖÊÇÀûÓÃlinux I2CÇý¶¯Ìåϵ½á¹¹À´Íê³É¡£ÏÂÃæ±È½ÏÏÂÕâÁ½ÖÖÇý¶¯¡£
µÚÒ»ÖÖ·½·¨µÄºÃ´¦£¨¶ÔÓ¦µÚ¶þÖÖ·½·¨µÄÁÓÊÆ£©ÓУº
        ¡ñ  &nbs ......

perlÔÚlinuxÖÐÕÒ²»µ½½âÊÍÆ÷µÄÎÊÌâ

×î½ü¸Ð½Ó´¥perl£¬¸Ð¾õºÜ²»´í£¬´¦ÀíÎı¾·Ç³£·½±ã¡£Ç°½×¶ÎÓÃcȥͳ¼ÆÒ»Ð©Îı¾£¬ÀÛµÄÒªËÀ£¬¶øÇÒ³ÌÐòÖл¹¾­³£³öbug£»¶øÓÃperlÔò²»Í¬£¬Ëü±ÜÃâµÄ¸´ÔÓµÄÊý¾Ý½á¹¹£¬ÕâÑù³ö´íµÄ¸ÅÂʾͺÜСÁË£¬¶øÇÒ±àд´úÂë¶ÌС¾«º·¡£Ç°Á½Ì콫perlÄõ½linuxÉÏÔËÐУ¬ËäÈ»Ìí¼ÓÁË#!/usr/local/bin/perl£¬µ«»¹ÊÇÌáʾÕÒ²»µ½½âÊÍÆ÷£ºbad interpreter¡£ÓôÃÆÑ½¡ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ