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

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

Ö÷Ì⣺ linuxÄÚºËÄ£¿éµÄ³ÌÐò½á¹¹--Ä£¿é¼ÓÔØº¯Êý(±ØÐë)£¬Ä£¿éÐ¶ÔØº¯Êý(±ØÐë)£¬Ä£¿éÐí¿ÉÖ¤ÉùÃ÷(±ØÐë)£¬Ä£¿é²ÎÊý(¿ÉÑ¡)£¬Ä£¿éµ¼³ö·ûºÅ(¿ÉÑ¡)£¬Ä£¿é×÷ÕߵĵÈÐÅÏ¢ÉùÃ÷(¿ÉÑ¡)
Ò»¸ölinuxÄÚºËÄ£¿éÖ÷ÒªÓÉÒÔϼ¸¸ö²¿·Ö×é³É¡£
1¡¢Ä£¿é¼ÓÔØº¯Êý"ÓÃmodule_init()À´Ö¸¶¨"(±ØÐë)
   µ±Í¨¹ýinsmodºÍmodprobeÃüÁî¼ÓÔØÄÚºËÄ£¿éʱ£¬Ä£¿éµÄ¼ÓÔØº¯Êý»á×Ô¶¯±»ÄÚºËÖ´ÐУ¬Íê³É±¾Ä£¿éµÄÏà¹Ø³õʼ»¯¹¤×÷¡£
linuxÄ£¿é¼ÓÔØº¯ÊýÒ»°ãÒÔ __init±íʾÉùÃ÷¡£µäÐÍÉùÃ÷ÈçÏÂ::
static int __init  initialization_function(void)
{
       /*³õʼ»¯´úÂë*/
}
module_init(initialization_function);
    Ä£¿é¼ÓÔØº¯Êý±ØÐëʹÓÃmodule_init(º¯ÊýÃû)µÄÐÎʽ±»Ö¸¶¨¡£Ëü·µ»ØÕûÐÍÖµ£¬Èô³õʼ»¯³É¹¦£¬Ó¦·µ»Ø0£¬¶ø³õʼ»¯Ê§°Üʱ£¬Ó¦·µ»Ø´íÎó±àÂë¡£ÔÚlinuxÄÚºËÖУ¬´íÎó±àÂëÊÇÒ»¸ö¸ºÖµ£¬ÔÚ<linux/errno.h>Öж¨Ò壬°üÀ¨-ENODEV¡¢-ENOMEMÖ®ÀàµÄ·ûºÅÖµ¡£·µ»ØÏàÓ¦µÄ´íÎó±àÂëÊÇÖַdz£ºÃµÄϰ¹ß£¬Ö»ÓÐÕâÑù£¬Ó¦ÓóÌÐò²ÅÄÜÀûÓÃperrorµÈ·½·¨°ÑËûÃÇת»»³ÉÓÐÒâÒåµÄ´íÎóÐÅÏ¢×Ö·û´®¡£
    ÔÚ2.6ÄÚºËÖУ¬¿ÉÒÔʹÓÓrequest_module(const char *fmt,...)º¯Êý”¼ÓÔØÄÚºËÄ£¿é£¨×¢Òâ£ºÇ°Ãæ¼ÓÔØÄ£¿é¶¼ÊÇͨ¹ýinsmodºÍmodprobeÀ´ÊµÏֵģ©£¬Çý¶¯¿ª·¢ÈËÔ±¿ÉÒÔͨ¹ýµ÷ÓÃ::
request_module(module_name);
»ò
request_module("char-major-%d-%d",MAJOR(dev),MINOR(dev));
À´¼ÓÔØÆäËûÄÚºËÄ£¿é¡£
   ÔÚlinuxÄÚºËÖУ¬ËùÓбíʾΪ__initµÄº¯ÊýÔÚÁ¬½ÓµÄʱºò·ÅÔÚ.init.textÕâ¸öÇø¶ÎÄÚ£¬´ËÍ⣬ËùÓеÄ__initº¯ÊýÔÚ¶Î.initcall.initÖл¹±£´æÁËÒ»·Ýº¯ÊýÖ¸Õ룬ÔÚ³õʼ»¯Ê±£¬Äں˻áͨ¹ýÕâЩָÕëµ÷ÓÃÕâЩ__initº¯Êý£¬²¢ÔÚ³õʼ»¯Íê³ÉºóÊÍ·ÅinitÇø¶Î(.init.text,.initcall.initµÈ)¡£
////////////////////////////////////////////////////////////////////
2¡¢Ä£¿éÐ¶ÔØº¯Êý"ÓÃmodule_exit()À´Ö¸¶¨"(±ØÐë)
   µ±Í¨¹ýrmmodºÍmodprobe -rÃüÁîÐ¶ÔØÄÚºËÄ£¿éʱ£¬Ä£¿éµÄÐ¶ÔØº¯Êý»á×Ô¶¯±»ÄÚºËÖ´ÐУ¬Íê³ÉÓëÄ£¿é¼ÓÔØº¯ÊýÏà·´µÄ¹¦ÄÜ¡£
   linuxÄÚºËÄ£¿éÓÚÔÚº¯ÊýÒ»°ãÒÔ__exit±íʾ˵Ã÷£¬µäÐ͵ÄÄ£¿éÐ¶ÔØº¯ÊýµÄÐÎʽÈçÏÂ::
static void __exit  cleanup_function(void)
{
         /*ÊÍ·Å´úÂë*/
}
module_exit(cleanup_function);
   Ä£¿éÐ¶ÔØº¯ÊýÔÚÄ£¿éÐ


Ïà¹ØÎĵµ£º

LinuxÆô¶¯¹ý³ÌÆÊÎö

LinuxÆô¶¯¹ý³ÌµÄÆÊÎöÄܰïÖúÄÇЩÏëÉîÈëѧϰLinuxÓû§½¨Á¢Ò»¸öÏà¹ØLinuxÆô¶¯¹ý³ÌµÄÇåÎú¸ÅÄ½ø¶ø¿ÉÒÔ½øÒ»²½Ñо¿Linux½ÓÏÂÀ´ÊÇÈçºÎ¹¤×÷µÄ¡£
LinuxÆô¶¯¹ý³ÌÈçÏ£ºµ±Óû§´ò¿ªPCµÄµçÔ´£¬BIOS¿ª»ú×Լ죬°´BIOSÖÐÉèÖÃµÄÆô¶¯É豸(ͨ³£ÊÇÓ²ÅÌ)Æô¶¯£¬½Ó×ÅÆô¶¯É豸Éϰ²×°µÄÒýµ¼³ÌÐò lilo»ògrub¿ªÊ¼Òýµ¼Linux£¬LinuxÊ×ÏȽøÐÐÄں˵ÄÒýµ¼ ......

oracleÏÂÔØµØÖ· for linux or windows


Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XP
http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk1.zip
http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk2.zip
http://download.oracle.com/otn/nt/oracle9i/9201/92010NT_Disk3.zip
Oracle9i ......

linux UART´®¿ÚÇý¶¯


linux UART´®¿ÚÇý¶¯¿ª·¢Îĵµ
ʱ¼ä:2010-01-09 14:24:55À´Ô´:ÍøÂç ×÷Õß:δ֪ µã»÷:482´Î
ÄÚÈݼò½é: ½éÉÜÁËLinuxϵĴ®¿ÚÇý¶¯µÄÉè¼Æ²ã´Î¼°½Ó¿Ú, ²¢Ö¸³ö´®¿ÚÓëTTYÖÕ¶ËÖ®¼äµÄ¹ØÁª²ã´Î(´®¿Ú¿É×÷TTYÖÕ¶ËʹÓÃ), ÒÔ¼°LinuxϵÄÖжϴ¦Àí»úÖÆ/ÖжϹ²Ïí»úÖÆ, »¹Óд®¿Ú»º³å»úÖÆµ±ÖÐÉæ¼°µÄÈíÖжϻúÖÆ; ÆäÖ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ