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

Linux I2CºËÐÄ¡¢×ÜÏßÓëÉ豸Çý¶¯

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Çý¶¯Ìåϵ½á¹¹£¬ÔÚLinuxϵͳÖУ¬I2CÇý¶¯ÓÉ3²¿·Ö×é³É£¬¼´I2CºËÐÄ¡¢I2C×ÜÏßÇý¶¯ºÍI2CÉ豸Çý¶¯¡£Õâ3²¿·ÖÏ໥Э×÷£¬ÐγÉÁ˷dz£Í¨ÓᢿÉÊÊÓ¦ÐÔºÜÇ¿µÄI2C¿ò¼Ü¡£
±¾ÕµÚ1½Ú½«¶ÔLinux I2CÌåϵ½á¹¹½øÐзÖÎö£¬½²Ã÷3¸ö×é³É²¿·Ö¸÷×ԵŦÄܼ°Ï໥ÁªÏµ¡£
µÚ2½Ú½«¶ÔLinux I2CºËÐĽøÐзÖÎö£¬½âÊÍi2c-core.cÎļþµÄ¹¦ÄܺÍÖ÷Òªº¯ÊýµÄʵÏÖ¡£
µÚ3¡¢4½Ú½«·Ö±ðÏêϸ½éÉÜI2C×ÜÏßÇý¶¯ºÍI2CÉ豸Çý¶¯µÄ±àд·½·¨£¬¸ø³ö¿É¹©²Î¿¼µÄÉè¼ÆÄ£°å¡£
µÚ5¡¢6½Ú½«ÒÔµÚ3¡¢4½Ú¸ø³öµÄÉè¼ÆÄ£°åΪ»ù´¡£¬½²½âS3C2410 ARM´¦ÀíÆ÷I2C×ÜÏßÇý¶¯¼°¹Ò½ÓÔÚÉϵÄSAA7113HÊÓƵģÄâ/Êý×Öת»»Ð¾Æ¬É豸Çý¶¯µÄ±àд·½·¨¡£
15.1 Linux I2CÌåϵ½á¹¹
LinuxµÄI2CÌåϵ½á¹¹·ÖΪ3¸ö×é³É²¿·Ö£º
1  I2CºËÐÄ
I2C
ºËÐÄÌṩÁËI2C×ÜÏßÇý¶¯ºÍÉ豸Çý¶¯µÄ×¢²á¡¢×¢Ïú·½·¨£¬I2CͨÐÅ·½·¨£¨¼´“algorithm”£¬±ÊÕßÈÏΪֱÒëΪ“ÔËËã·½·¨”²¢²»ºÏÊÊ£¬ÎªÃâÒýÆðÎó½â£¬
ÏÂÎĽ«Ö±½ÓʹÓÓalgorithm”£©ÉϲãµÄ¡¢Óë¾ßÌåÊÊÅäÆ÷Î޹صĴúÂëÒÔ¼°Ì½²âÉ豸¡¢¼ì²âÉ豸µØÖ·µÄÉϲã´úÂëµÈ¡£
2   I2C×ÜÏßÇý¶¯
I2C×ÜÏßÇý¶¯ÊǶÔI2CÓ²¼þÌåϵ½á¹¹ÖÐÊÊÅäÆ÷¶ËµÄʵÏÖ£¬ÊÊÅäÆ÷¿ÉÓÉCPU¿ØÖÆ£¬ÉõÖÁÖ±½Ó¼¯³ÉÔÚ


Ïà¹ØÎĵµ£º

Ìá¸ßLinux¹ÜÀíЧÂʵÄÈý¸ö¼¼ÇÉ


¹ÜÀíÔ±ÏëÒªÌá¸ßLinux¹ÜÀíЧÂÊÊÇÒª×ñѭһЩ¹ÜÀí¼¼Çɵģ¬ÕâÀï¼òµ¥½éÉÜÓйØLinux¹ÜÀíЧÂʵÄÈý¸ö¼¼ÇÉ£ºÐ¶ÔØÎÞÏìÓ¦µÄ DVD Çý¶¯Æ÷¡¢»Ö¸´³öÏÖÎÊÌâµÄÆÁÄ»¡¢ÆÁĻЭ×÷¡£ÏàÐÅËûÃÇ»á¶Ô¹ÜÀíԱЧÂÊÓÐÌá¸ß¡£
¼¼ÇÉ 1£ºÐ¶ÔØÎÞÏìÓ¦µÄ DVD Çý¶¯Æ÷
ÍøÂçÐÂÊֵľ­Àú£º°´Ï·þÎñÆ÷£¨ÔËÐлùÓÚ Redmond µÄ²Ù×÷ϵͳ£©DVD Çý¶¯Æ÷É쵀 Eject °´Å¥Ê±£¬ ......

½«Linux´úÂëÒÆÖ²µ½WindowsµÄ¼òµ¥·½·¨(1)

Ò»£®Ç°ÑÔ
¡¡¡¡LinuxÓµÓзḻ¸÷ÖÖÔ´´úÂë×ÊÔ´,µ«ÊǴ󲿷ִúÂëÔÚWindowsƽ̨Çé¿öÊÇÎÞ·¨Õý³£±àÒëµÄ¡£Windowsƽ̨¸ù±¾ÎÞ·¨Ö±½ÓÀûÓÃÕâЩԴ´úÂë×ÊÔ´¡£Èç¹ûÏëҪʹÓÃÍêÕûµÄ´úÂ룬¾ÍÒª×öÒÆÖ²¹¤×÷¡£ÒòΪC/C++ LibraryµÄ²»Í¬ºÍÆäËûµÄһЩԭÒò£¬ÒÆÖ²C/C++´úÂëÊÇÒ»ÏîÀ§ÄѵŤ×÷¡£±¾ÎĽ«ÒÔÒ»¸öʵ¼ÊµÄÀý×Ó£¨Tar£©À´ËµÃ÷ÈçºÎ°ÑLinux´úÂëÒÆÖ² ......

Linux»»ÐÐÎÊÌâ

WindowsÓëLinuxÖеĻ»ÐÐÊDz»Ò»ÑùµÄ£¬ÒѾ­Óöµ½¹ýºÃ¼¸´ÎÎÊÌâÁË¡«ÅúÁ¿Ð½¨Óû§µÄʱºò£¬ÐÂÓû§²»ÄܵǼ£¬ÒòΪÎÒµÄÎı¾ÊÇÔÚWindowsÏÂÉú³ÉµÄ£¬»»ÐÐÊÇWindows¸ñʽ£¬¶øLinuxÖÐʹÓÃnewusersÃüÁîµ¼Èëµ½passwdÎļþ£¬ÊÇÖ±½Ó¸´ÖƹýÈ¥µÄ¡«²»ÄÜÒ»ÐÐÒ»Ðеĸİ¡¡«ºÇºÇ£¬¸Õ¸Õѧµ½ÁËÒ»ÕС£
×Ö·ûÎļþÔÚÁ½¸öϵͳ֮¼ä¿½±´Ö®ºó£¬¿ÉÒÔʹÓÃdos2unix» ......

Objective —C µÄµ¥Àýģʽ SingletonʵÏÖ


static
 DataManager 
*
sharedDataManager 
=
 nil;
+
 (DataManager 
*
) sharedManager
{
    @synchronized(self)
 {
        
if
 (sharedDataManager 
==
 nil)
 &nb ......

C unsigned int and int

Ê×ÏȽøÐÐÒ»¸öʵÑ飬·Ö±ð¶¨ÒåÒ»¸ösigned intÐÍÊý¾ÝºÍunsigned intÐÍÊý¾Ý£¬È»ºó½øÐдóС±È½Ï£º
unsigned int a=20;
signed int b=-130;
a>b?»¹ÊÇb>a£¿ÊµÑéÖ¤Ã÷b>a£¬Ò²¾ÍÊÇ˵£­130>20,Ϊʲô»á³öÏÖÕâÑùµÄ½á¹ûÄØ£¿
ÕâÊÇÒòΪÔÚCÓïÑÔ²Ù×÷ÖУ¬Èç¹ûÓöµ½ÎÞ·ûºÅÊýÓëÓзûºÅÊýÖ®¼äµÄ²Ù×÷£¬±àÒëÆ÷»á×Ô¶¯×ª»¯ÎªÎÞ·ûºÅ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ