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
Ïà¹ØÎĵµ£º
ÏȽéÉܼ¸¸ö»ù±¾¸ÅÄ
ºǫ́½ø³Ì£ºÔÚºǫ́ÔËÐеÄÎÞÐëÓëÓû§½»»¥µÄ³ÌÐò¡£ÔÚ¶àÈÎÎñ²Ù×÷ϵͳÉÏÔËÐжà¸öºǫ́½ø³Ì£¬ÓÐЩºǫ́½ø³Ì£¨ÀýÈçÊØ»¤³ÌÐò£©´ÓÀ´¶¼²»ÐèÒªÓû§ÊäÈ룬ÆäËüһЩ½ø³ÌÖ»ÊÇÔÚÓû§Ã¦ÓÚÄ¿Ç°ÔËÐÐÓÚǰ̨µÄ³ÌÐòʱ²ÅÁÙʱ´¦ÓÚºǫ́¡£
ÊØ»¤½ø³ÌÊÇÒ»ÖÖºǫ́½ø³Ì¡£crond½ø³ÌÊÇÖÚ¶àÊØ»¤½ø³ÌÖеÄÒ»ÖÖ£¬¿´¿´cronÕâ¸öµ¥´ÊÔÚ×ÖµäÀïà ......
1. ¹Ì¶¨Ò»¸öMACµØÖ·£¬ÌرðÊÇÔÚʹÓöà¸öÐéÄâ»úµÄʱºò
linux»·¾³ÏÂ:
ÓÃrootÉí·ÝµÇ¼£¬ÔÚ/etc/rc.d/rc.localÀï¼ÓÉÏÕâÈý¾ä
ifconfig eth0 down
ifconfig eth0 hw ether 00:0C:18:EF:FF:ED
ifconfig eth0 up
ÕâÑùÖØÐÂrebootºó¾Í²»ÅÂMAC¸´ÔÁË¡£
2. ifconfigÃüÁתÔØhttp://www.cnblogs.com/taobataoma/archive/2007/1 ......
¶ÀÌصĿª·¢Ä£Ê½Ôì¾ÍÁ˽ñÌì°Ù¼ÒÕùÃùµÄLinux£¬¸÷¸ö·¢ÐаæµÄÃû×Ö¶¼´ú±íÄÄЩº¬ÒåÄØ£¿ÏÂÃæÊÇһЩ³£Óõİ汾£¬¸ÐÐËȤµÄÅóÓÑÒ»ÆðÀ´¿´£º 1-UbuntuÕâ»òÐíÊǽñÌì×î³£¼ûµÄÒ»¸öLinux·¢ÐаæÁË£¬UbuntuÊÇÒ»¸öÄϷǵÄÃñ×å¹ÛÄ×ÅÑÛÓÚÈËÃÇÖ®¼äµÄÖҳϺÍÁªÏµ¡£¸Ã´ÊÀ´×ÔÓÚ×æ³ÓïºÍ¿ÆÈøÓï¡£´óÒâÊÇ“È˵À´ýÈË”(¶ÔËûÈËÈÊ´È)¡£ÁíÒ»ÖÖ·Ò ......
´ÓLinux 2.6ÆðÒýÈëÁËÒ»Ì×еÄÇý¶¯¹ÜÀíºÍ×¢²á»úÖÆ:Platform_deviceºÍPlatform_driver¡£
LinuxÖд󲿷ֵÄÉ豸Çý¶¯£¬¶¼¿ÉÒÔʹÓÃÕâÌ×»úÖÆ, É豸ÓÃPlatform_device±íʾ£¬Çý¶¯ÓÃPlatform_driver½øÐÐ×¢²á¡£
Linux platform driver»úÖƺʹ«Í³µÄdevice driver »úÖÆ(ͨ¹ýdriver_registerº¯Êý½øÐÐ×¢²á)Ïà±È£¬Ò»¸öÊ®·ÖÃ÷ÏÔµÄÓ ......
ÒªÔÚǶÈëʽLinuxÏÂʹÓö¯Ì¬ÓïÑÔ£¬Ê×ÏÈÒª½â¾öµÄÊÇÓïÑÔ½âÊÍÆ÷»òÖ´ÐÐÒýÇæµÄ½»²æ±àÒëÎÊÌâ¡£
½»²æ±àÒëͨ³£ÓÐÒÔϼ¸ÖÖ;¾¶£º
1. Ö±½Óͨ¹ý½»²æ±àÒ빤¾ß£¬ÊÖ¹¤ÅäÖý»²æ±àÒë¡£½»²æ±àÒ빤¾ß¿ÉÒÔÀûÓÃÕâ¸ö½Å±¾À´×Ô¶¯Éú³É£º
http://kegel.com/crosstool/
´Ë·½·¨µÄºÃ´¦ÊǼò±ã¿ì½Ý£¬Ò»µ©crosstool×öºÃÒÔºó£¬ÐèҪʲô°üÖ±½Ó±àÒë¼´¿É£¬ ......