Linux I2CºËÐÄ¡¢×ÜÏßÓëÉ豸Çý¶¯
×¢:
ÔÚlinux2.6.32°æ±¾ÖÐÓÐÕâÑùµÄ´úÂëÓë×¢ÊÍ:
struct i2c_driver {
unsigned int class;
/* Notifies the driver that a new bus has appeared or is about to be
* removed. You should avoid using this if you can, it will probably
* be removed in a near future.
*/
int (*attach_adapter)(struct i2c_adapter *);
int (*detach_adapter)(struct i2c_adapter *);
/* Standard driver model interfaces */
int (*probe)(struct i2c_client *, const struct i2c_device_id *);
int (*remove)(struct i2c_client *);
...
}
ÎÒµÄÀí½âÊÇ.а汾ÖÐÓÃprobeºÍremove´úÌæÁËÔÀ´µÄattach_adapterºÍdetach_adapter.
I2C×ÜÏß½ö½öʹÓÃSCL¡¢SDAÁ½¸ùÐźÅÏß¾ÍʵÏÖÁËÉ豸֮¼äµÄÊý¾Ý½»»¥£¬¼«´óµØ¼ò»¯¶ÔÓ²¼þ×ÊÔ´ºÍPCB°å²¼Ï߿ռäµÄÕ¼Óá£Òò´Ë£¬I2C×ÜÏß±»·Ç³£¹ã·ºµØÓ¦ÓÃÔÚEEPROM¡¢ÊµÊ±ÖÓ¡¢Ð¡ÐÍLCDµÈÉ豸ÓëCPU ......
Linux I2CºËÐÄ¡¢×ÜÏßÓëÉ豸Çý¶¯
×¢:
ÔÚlinux2.6.32°æ±¾ÖÐÓÐÕâÑùµÄ´úÂëÓë×¢ÊÍ:
struct i2c_driver {
unsigned int class;
/* Notifies the driver that a new bus has appeared or is about to be
* removed. You should avoid using this if you can, it will probably
* be removed in a near future.
*/
int (*attach_adapter)(struct i2c_adapter *);
int (*detach_adapter)(struct i2c_adapter *);
/* Standard driver model interfaces */
int (*probe)(struct i2c_client *, const struct i2c_device_id *);
int (*remove)(struct i2c_client *);
...
}
ÎÒµÄÀí½âÊÇ.а汾ÖÐÓÃprobeºÍremove´úÌæÁËÔÀ´µÄattach_adapterºÍdetach_adapter.
I2C×ÜÏß½ö½öʹÓÃSCL¡¢SDAÁ½¸ùÐźÅÏß¾ÍʵÏÖÁËÉ豸֮¼äµÄÊý¾Ý½»»¥£¬¼«´óµØ¼ò»¯¶ÔÓ²¼þ×ÊÔ´ºÍPCB°å²¼Ï߿ռäµÄÕ¼Óá£Òò´Ë£¬I2C×ÜÏß±»·Ç³£¹ã·ºµØÓ¦ÓÃÔÚEEPROM¡¢ÊµÊ±ÖÓ¡¢Ð¡ÐÍLCDµÈÉ豸ÓëCPU ......
²»ÖªµÀÔÚʲçÛʱºò£¬×ªÔØLinux ³öÏÖÁË module ÕâÖÖ¶«Î÷£¬µÄÈ·£¬ËüÊÇ Linux µÄÒ»´ó¸ïС£ÓÐÁË module Ö®ºó£¬Ð´
device driver ²»ÔÙÊÇÒ»Ïî¶ñÃΣ¬ÐÞ¸Ä kernel Ò²²»ÔÙÊÇÒ»¼þÍ´¿àµÄÊÂÁË¡£ÒòΪÄã²»ÐèҪÿ´ÎÒª²âÊÔ driver ¾ÍÖØÐÂ
compile kernel Ò»´Î¡£ÄǼòÖ±ÊÇ»áÀÛËÀÈË¡£Module ¿ÉÒÔÔÊÐíÎÒÃǶ¯Ì¬µÄ¸Ä±ä kernel£¬¼ÓÔØ device
driver£¬¶øÇÒËüÒ²ÄÜËõ¶ÌÎÒÃÇ driver development µÄʱ¼ä¡£ÔÚÕâÆªÎÄÕÂÀÎÒ½«Òª¸ú¸÷λ½éÉÜһϠmodule
µÄÔÀí£¬ÒÔ¼°ÈçºÎдһ¸ö module¡£
module ·Òë³ÉÖÐÎľÍÊÇÄ£¿é£¬²»¹ý£¬ÊÂʵÉÏÈ¥·ÒëÕâ¸ö×ÖÒ»µã¶¼Ã»ÒâÒå¡£ÔÚ½²Ä£¿é֮ǰ£¬ÎÒÏȾÙÒ»¸öÀý×Ó¡£ÏàÐźܶàÈ˶¼Óùý RedHat¡£ÔÚ
RedHat ÀÎÒÃÇ¿ÉÒÔÖ´ÐÐ sndconfig£¬Ëü¿ÉÒÔ°ïÎÒÃÇ config Éù¿¨¡£config
ÍêÖ®ºóÈç¹û×½µÃµ½ÄãµÄÉù¿¨£¬ÄÇÄãµÄÉù¿¨ÂíÉϾͿÉÒÔ¶¯ÁË£¬¶øÇÒ»¹²»ÓÃÖØÐ¼¤»î¼ÆËã»ú¡£ÕâÊÇÔõçÛ×öµÄÄØ ? ¾ÍÊÇ¿¿module¡£module
ÆäʵÊÇÒ»°ãµÄ³ÌÐò¡£µ«ÊÇËü¿ÉÒÔ±»¶¯Ì¬Ôص½ kernel Àï³ÉΪ kernelµÄÒ»²¿·Ö¡£Ôص½ kernel ÀïµÄ module Ëü¾ßÓиú
kernel Ò»ÑùµÄȨÁ¦¡£¿ÉÒÔ access ÈκΠkernel µÄ data structure¡£ÄãÌý¹ý kdebug Âð ? ËüÊÇÓÃÀ´
debug kernel µÄ¡£Ëü¾ÍÊÇÏȽ«Ëü±¾ÉíµÄÒ»¸ö module ÔØµ½ kernel À¶øÔÚ u ......
ǰÑÔ:
ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý.
1.ÎļþµÄ´´½¨ºÍ¶Áд
2.ÎļþµÄ¸÷¸öÊôÐÔ
3.Ŀ¼ÎļþµÄ²Ù×÷
4.¹ÜµÀÎļþ
--------------------------------------------------------------------------------
1¡£ÎļþµÄ´´½¨ºÍ¶Áд
ÎÒ¼ÙÉèÄãÒѾ֪µÀÁ˱ê×¼¼¶µÄÎļþ²Ù×÷µÄ¸÷¸öº¯Êý(fopen,fread,fwriteµÈµÈ).µ±È»Èç¹ûÄã²»Çå³þµÄ»°Ò²²»Òª×ż±.ÎÒÃÇÌÖÂÛµÄϵͳ¼¶µÄÎļþ²Ù×÷ʵ¼ÊÉÏÊÇΪ±ê×¼¼¶Îļþ²Ù×÷·þÎñµÄ.
µ±ÎÒÃÇÐèÒª´ò¿ªÒ»¸öÎļþ½øÐжÁд²Ù×÷µÄʱºò,ÎÒÃÇ¿ÉÒÔʹÓÃϵͳµ÷Óú¯Êýopen.ʹÓÃÍê³ÉÒÔºóÎÒÃǵ÷ÓÃÁíÍâÒ»¸öcloseº¯Êý½øÐйرղÙ×÷.
#include
#include
#include
#include
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);
int close(int fd);
openº¯ÊýÓÐÁ½¸öÐÎʽ.ÆäÖÐpathnameÊÇÎÒÃÇÒª´ò¿ªµÄÎļþÃû(°üº¬Â·¾¶Ãû³Æ,ȱʡÊÇÈÏΪÔÚµ±Ç°Â·¾¶ÏÂÃæ).flags¿ÉÒÔÈ¥ÏÂÃæµÄÒ»¸öÖµ»òÕßÊǼ¸¸öÖµµÄ×éºÏ.&nbs ......
ǰÑÔ:
ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý.
1.ÎļþµÄ´´½¨ºÍ¶Áд
2.ÎļþµÄ¸÷¸öÊôÐÔ
3.Ŀ¼ÎļþµÄ²Ù×÷
4.¹ÜµÀÎļþ
--------------------------------------------------------------------------------
1¡£ÎļþµÄ´´½¨ºÍ¶Áд
ÎÒ¼ÙÉèÄãÒѾ֪µÀÁ˱ê×¼¼¶µÄÎļþ²Ù×÷µÄ¸÷¸öº¯Êý(fopen,fread,fwriteµÈµÈ).µ±È»Èç¹ûÄã²»Çå³þµÄ»°Ò²²»Òª×ż±.ÎÒÃÇÌÖÂÛµÄϵͳ¼¶µÄÎļþ²Ù×÷ʵ¼ÊÉÏÊÇΪ±ê×¼¼¶Îļþ²Ù×÷·þÎñµÄ.
µ±ÎÒÃÇÐèÒª´ò¿ªÒ»¸öÎļþ½øÐжÁд²Ù×÷µÄʱºò,ÎÒÃÇ¿ÉÒÔʹÓÃϵͳµ÷Óú¯Êýopen.ʹÓÃÍê³ÉÒÔºóÎÒÃǵ÷ÓÃÁíÍâÒ»¸öcloseº¯Êý½øÐйرղÙ×÷.
#include
#include
#include
#include
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);
int close(int fd);
openº¯ÊýÓÐÁ½¸öÐÎʽ.ÆäÖÐpathnameÊÇÎÒÃÇÒª´ò¿ªµÄÎļþÃû(°üº¬Â·¾¶Ãû³Æ,ȱʡÊÇÈÏΪÔÚµ±Ç°Â·¾¶ÏÂÃæ).flags¿ÉÒÔÈ¥ÏÂÃæµÄÒ»¸öÖµ»òÕßÊǼ¸¸öÖµµÄ×éºÏ.&nbs ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
Linux
·¢ÐаæÓë
Linux
²úÆ·Á½ÕßÏà²îºÜ´ó£¬ÓÐʱÈÝÒ×»ìÏý£¬·¢ÉúÎó½â£¬ÉõÖÁÒªÄÖ³ö´óЦ»°À´¡£ÎªÊ²Ã´£¿
´Ó×ÖÃæÉÏÀ´½²£¬·¢Ðа棨
Distribution
£©ºÍ²úÆ·£¨
Product
£©£¬Ç°ÕßÊÇ·¢ÐÐÎºóÕßÊÇÉú²úÆ·£»Ç°ÕßÇ¿µ÷µÄÊÇÎïµÄ·¢Ðйý³Ì£¬ºóÕßÇ¿µ÷µÄÊÇÉú²úµÄ×îÖÕ½á¹û¡£·¢ÐÐÐèÒªÓз¢ÐеĹæÔò£¬²úÆ·ÐèÒªÓÐʹÓõÄÐí¿É¡£¾ßÌå˵À´£¬
Linux
·¢ÐаæÐèÒªÓз¢ÐеĹæÔò£¬¶ø
Linux
µÄ²úÆ·ÔòÐèÒªÓÐʹÓõÄÐí¿É¡£
ÔÚ¶íÂÞ˹£¬µ½´¦¿É¼ûÒ»ÖÖ¹ÚÃûΪ“
ALT”
µÄ
Linux
·¢Ðа棬ÎïÀíÔØÌå¼Û¸ñºÜµÍ£¬¿ÉÒÔ×ÔÓɵØÔÙ·Ö·¢£¬Ë͸øÁÚ¾Ó»òÅóÓÑ¡£ÔÚÖйú£¬È±ÉÙÕâÖÖ¹úÄÚ·¢²¼µÄ
Linux
·¢Ðа棬ֻÓÐÒ»ÖÖ¹ú²úµÄ
Linux
²úÆ·£¬Ìṩ¸ø×îÖÕÓû§Ê¹Ó㬲»µÃÔÙ¼ÌÐøÍâ´«£¨¼´¼ÌÐø×ÔÓɵØÔÙ·Ö·¢£©¡£ºÜÃ÷ÏÔµÄÊÂʵÊÇ£¬
Linux
²úÆ·¶ÂÈûÁË
Linux
×ÔÓÉ´«²¥µÄµÀ·£¬Óë´ËÏà·´£¬
Linux
·¢Ðаæ´Ù½øÁË
Linux
µÄ´óÆÕ¼°¡£
3
ÔÂ
8
ÈÕÉÏÎç
11
µã£¬ÉîÛÚÎÚ°îÍй«Ë¾×ܲø°¾©£¬ÎÒÃÇÔÚijÐǰͿˣ¨ ......
µÚÊ®¶þÕ Îļþ¹ÜÀí¼°LinuxʵÏÖÎÊÓë´ð
12.1 ʲôÊÇÎļþ£¿Ëü°üº¬ÄÄЩÄÚÈÝ£¿ÓÐÊ²Ã´ÌØµã£¿
´ð£ºÎļþÊÇÐÅÏ¢µÄÒ»ÖÖ×éÖ¯ÐÎʽ£¬ÊÇ´æ´¢ÔÚÍâ´æÉϵľßÓбêʶÃûµÄÒ»×éÏà¹ØÐÅÏ¢¼¯ºÏ¡£Îļþ°üº¬µÄÄÚÈÝÓУºÔ´³ÌÐò¡¢¶þ½øÖÆ´úÂë¡¢Îı¾Îĵµ¡¢Êý¾Ý¡¢±í¸ñ¡¢ÉùÒôºÍͼÏóµÈ¡£
Îļþ¾ßÓеÄÌØµãÈçÏ£º
¢Ù Îļþ¾ßÓб£´æÐÔ£¬Ëü±»´æ´¢ÔÚijÖÖ´æ´¢½éÖÊÉÏ£¬³¤ÆÚ±£´æºÍ¶à´ÎʹÓá£
¢Ú ÎļþÊǰ´Ãû´æÈ¡µÄ£¬Ã¿¸öÎļþ¾ßÓÐΨһµÄ±êʶÃû£¬Í¨¹ý±êʶÃûÀ´´æÈ¡ÎļþÖеÄÐÅÏ¢£¬¶ø²»ÐèÒªÁ˽âÎļþÔÚ´æ´¢½éÖÊÉϵľßÌåÎïÀíλÖá£
¢Û ÎļþµÄÄÚÈÝÊÇÒ»×éÐÅÏ¢µÄ¼¯ºÏ£¬ÐÅÏ¢¿ÉÒÔÊÇÔ´´úÂë³ÌÐò¡¢¶þ½øÖÆ´úÂë¡¢ÎļþÎĵµ¡¢Êý¾Ý±í¸ñ¡¢ÉùÒôºÍͼÏóµÈ¡£
12.2ÎļþϵͳҪ½â¾öÄÄЩÎÊÌ⣿ÐéÄâÎļþϵͳҪ½â¾öÄÄЩÎÊÌ⣿
´ð£ºÎļþϵͳµÄÖ÷ҪĿ±êÊÇÌá¸ß´æ´¢¿Õ¼äµÄÀûÓÃÂÊ£¬ËüÒª½â¾öµÄÖ÷ÒªÎÊÌâÓУºÍê³ÉÎļþ´æ´¢¿Õ¼äµÄ¹ÜÀí£¬ÊµÏÖÎļþÃûµ½ÎïÀíµØÖ·µÄת»»£¬ÊµÏÖÎļþºÍĿ¼µÄ²Ù×÷£¬ÌṩÎļþ¹²ÏíÄÜÁ¦ºÍ°²È«´ëÊ©£¬ÌṩÓѺõÄÓû§½Ó¿Ú¡£ÎļþϵͳÏòÓû§ÌṩÁËÓйØÎļþºÍĿ¼²Ù×÷µÄ¸÷ÖÖ¹¦ÄܽӿںÍϵͳµ÷Óã¬ÈçÃüÁî½Ó¿Ú¡¢³ÌÐò½Ó¿ÚºÍ½»»¥½Ó¿ÚµÈ¡£
ÐéÄâÎļþϵͳµÄÖ÷Òª¹¦ÄÜÊÇ¿ÉÒÔʹ¶àÖÖ±¾µØµÄ»òÕßÔ¶³ÌµÄÎļþϵͳ¹²´æÓÚͬһ̨»úÆ÷ÉÏ ......
Ò»²½Ò»Ñ§LinuxÓëWindows ¹²ÏíÎļþSamba £¨v0.2b£©
¿´ÁËÕâÆªÎÄÕ£¬¸Ð¾õͦºÃ£¬ËµµÄÒ²±È½ÏÏêϸ£¬×Ô¼º¶¯ÊÖʵÏÖ£¬Ò»µãÎÊÌâҲûÓУ¬¸ø´ó¼Ò·ÖÏí
×÷Õߣº
±±ÄÏÄϱ±£¬ÕýÔÚÔö¼ÓÖÐ... ... ÐèÒªÄúµÄ²ÎÓ룻
À´×Ô£º
LinuxSir.Org
¼ò½é£º
±¾ÎÄÖ»Êǽ²Ò»½²ÎÒÃÇ×î³£ÓõÄLinuxÓëWindows¹²ÏíÎļþ£¬Ö÷ÒªÊÇΪÐÂÊÖָһָ·¡£ÈçºÎ½¨Á¢×î¼òµ¥µÄSamba·þÎñÆ÷£¬²¢½²ÊöÓöµ½ÎÊÌâÓ¦¸Ã´ÓºÎ´¦Ñ°ÕÒ½â¾ö·½°¸£»ÕýÔÚ¸üÐÂÖ®ÖУ¬Ï£ÍûÄúµÄ²Î¼Ó ... ... лл£»
Ŀ¼
0.1 ²é¿´ÎļþÄÚÈݺͱà¼ÎļþµÄ¹¤¾ß£»
0.2 ¹ØÓÚÎļþºÍĿ¼Ïà¹Ø£»
03 Óû§ºÍÓû§×éÏà¹Ø£»
04 ½ø³Ì¹ÜÀí£»
0¡¢¼ÜÉèSamba ·þÎñÆ÷µÄǰÌ᣻
3.5.1 ÔÚLinuxϵͳÖÐ²é¿´ÍøÂçÖÐWindows¹²ÏíÎļþ¼°LinuxÖеÄSamba¹²ÏíÎļþ£»
3.5.2 ÔÚWindowsÖзÃÎÊLinux Samba·þÎñÆ÷¹²ÏíÎļþµÄ°ì·¨£»
3.5.3 smbfsÎļþϵͳµÄ¹ÒÔØ£»
3.1 Samba ÓÐÁ½¸ö·þÎñÆ÷£¬Ò»¸öÊÇsmbd£¬ÁíÒ»¸öÊÇnmbd£»
3.2 ²é¿´Samba ·þÎñÆ÷µÄ¶Ë¿Ú¼°·À»ðǽ£»
3.3 ²é¿´Samba ·þÎñÆ÷µÄÅäÖÃÎļþ£»
3.4 Samba ÔÚLinux ÖеÄһЩ¹¤¾ß£¨·þÎñÆ÷¶ËºÍ¿Í»§¶Ë£©£»
3.5 ÔÚLinux Öеij£Óù¤¾ß£¬Windows²é¿´Linux¹²ÏíµÄ·½·¨ £»
µÚÒ»²½£º ¸ü¸Äsmb.conf
µÚ¶þ²½£º½¨Á¢ÏàӦĿ¼²¢ÊÚȨ£ ......