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µÄÄÚ´æ¡£
¡¡¡¡Õâ¿ÉÒÔͨ¹ýÎþÉüһЩϵͳÄÚ´æµÄ·½·¨À´½â¾ö¡£
http://huxiongwei.spaces.eepw.com.cn/articles/article/item/74756
Ïà¹ØÎĵµ£º
¶ÀÌØµÄ¿ª·¢Ä£Ê½Ôì¾ÍÁ˽ñÌì°Ù¼ÒÕùÃùµÄLinux£¬¸÷¸ö·¢ÐаæµÄÃû×Ö¶¼´ú±íÄÄЩº¬ÒåÄØ£¿ÏÂÃæÊÇһЩ³£Óõİ汾£¬¸ÐÐËȤµÄÅóÓÑÒ»ÆðÀ´¿´£º 1-UbuntuÕâ»òÐíÊǽñÌì×î³£¼ûµÄÒ»¸öLinux·¢ÐаæÁË£¬UbuntuÊÇÒ»¸öÄϷǵÄÃñ×å¹ÛÄ×ÅÑÛÓÚÈËÃÇÖ®¼äµÄÖҳϺÍÁªÏµ¡£¸Ã´ÊÀ´×ÔÓÚ×æÂ³ÓïºÍ¿ÆÈøÓï¡£´óÒâÊÇ“È˵À´ýÈË”(¶ÔËûÈËÈÊ´È)¡£ÁíÒ»ÖÖ·Ò ......
1£ºsocket±à³ÌÖвÉÓõÄÐÒé×åÖ÷ÒªÓÐÁ½ÖÖ
£º
1>£ºÍøÂçÐÒé×å(ÐÎʽÈ磺AF_INET, PF_INETµÈ)
2>£º±¾µØunixÓò¸ñʽµÄÐÒé×å(ÐÎʽÈ磺AF_LOCAL, AF_UNIXµÈ)
×¢£ºÐÒé×åµÄÑ¡ÔñÌåÏÖÔÚ int socket(int domain, inst type, int protocol)º¯ÊýµÄµÚÒ»¸ö²ÎÊý´¦¡£
2£ºÕâÁ½ ......
ÓÉÓÚ fc3 ÄÚºËĬÈÏ fat32 Îļþϵͳ×Ö·û±àÂëÊÇ ascii£¬Èç¹ûÓÅÅ̵ÄÎļþÃû°üº¬ÖÐÎÄ£¬ÄÇôÔÚת»»Ê±»á³öÎÊÌ⣬ӦÓóÌÐò¾Í»áʧȥÏìÓ¦¡£¾ßÌåµÄ±íÏÖÓжàÖÖ£¬±ÈÈç×ÀÃæ¼ÙËÀ£¬¹Ø»úʱÌáʾÎÞ·¨Ð¶ÔØ·ÖÇøµÈµÈ
½â¾öµÄ°ì·¨ÊÇÔÚ¹ÒÔØÊ±£¬¸ù¾ÝÓïÑÔ»·¾³ locale µÄÖµ£¬Ê¹ÓùÒÔØ²ÎÊý¡£Èç¹ûÊÇ UTF- ......
ÒªÔÚǶÈëʽLinuxÏÂʹÓö¯Ì¬ÓïÑÔ£¬Ê×ÏÈÒª½â¾öµÄÊÇÓïÑÔ½âÊÍÆ÷»òÖ´ÐÐÒýÇæµÄ½»²æ±àÒëÎÊÌâ¡£
½»²æ±àÒëͨ³£ÓÐÒÔϼ¸ÖÖ;¾¶£º
1. Ö±½Óͨ¹ý½»²æ±àÒ빤¾ß£¬ÊÖ¹¤ÅäÖý»²æ±àÒë¡£½»²æ±àÒ빤¾ß¿ÉÒÔÀûÓÃÕâ¸ö½Å±¾À´×Ô¶¯Éú³É£º
http://kegel.com/crosstool/
´Ë·½·¨µÄºÃ´¦ÊǼò±ã¿ì½Ý£¬Ò»µ©crosstool×öºÃÒÔºó£¬ÐèҪʲô°üÖ±½Ó±àÒë¼´¿É£¬ ......