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

LinuxÉ豸Çý¶¯Ö®I2C¼Ü¹¹·ÖÎö

Ò»:Ç°ÑÔ
I2cÊÇphilipsÌá³öµÄÍâÉè×ÜÏß.I2CÖ»ÓÐÁ½ÌõÏß,Ò»Ìõ´®ÐÐÊý¾ÝÏß:SDA,Ò»ÌõÊÇʱÖÓÏßSCL.ÕýÒòΪÕâÑù,Ëü·½±ãÁ˹¤³ÌÈËÔ±
µÄ²¼Ïß.ÁíÍâ,I2CÊÇÒ»ÖÖ¶àÖ÷»ú¿ØÖÆ×ÜÏß.ËüºÍUSB×ÜÏß²»Í¬,USBÊÇ»ùÓÚmaster-slave»úÖÆ,ÈκÎÉ豸µÄͨÐűØÐëÓÉÖ÷»ú·¢Æð²Å¿ÉÒÔ.¶ø
I2C ÊÇ»ùÓÚmulti master»úÖÆ.һͬ×ÜÏßÉÏ¿ÉÔÊÐí¶à¸ömaster.¹ØÓÚI2CЭÒéµÄ֪ʶ,ÕâÀï²»ÔÙ׸Êö.¿É×ÔÐÐÏÂÔØspecÔĶÁ¼´¿É.
¶þ:I2C¼Ü¹¹¸ÅÊö
ÔÚlinuxÖÐ,I2CÇý¶¯¼Ü¹¹ÈçÏÂËùʾ:
Èç
ÉÏͼËùʾ,ÿһÌõI2C¶ÔÓ¦Ò»¸öadapter.ÔÚkernelÖÐ,ÿһ¸öadapterÌṩÁËÒ»¸öÃèÊöµÄ½á¹¹(struct
i2c_adapter),Ò²¶¨ÒåÁËadapterÖ§³ÖµÄ²Ù×÷(struct i2c_adapter).ÔÙͨ¹ýi2c
core²ã½«i2cÉ豸Óëi2c adapter¹ØÁªÆðÀ´.
Õâ¸öͼֻÊÇÌṩÁËÒ»¸ö´ó¸ÅµÄ¿ò¼Ü.ÔÚÏÂÃæµÄ´úÂë·ÖÎöÖÐ,´ÓÏÂÖÁÉϵÄÀ´·ÖÎöÕâ¸ö¿ò¼Üͼ.ÒÔϵĴúÂë·ÖÎöÊÇ»ùÓÚlinux 2.6.26.·ÖÎöµÄ´úÂë»ù±¾Î»ÓÚ: linux-2.6.26.3/drivers/i2c/λÖÃ.
Èý:adapter×¢²á
ÔÚ
kernelÖÐÌṩÁËÁ½¸öadapter×¢²á½Ó¿Ú,·Ö±ðΪi2c_add_adapter()ºÍ
i2c_add_numbered_adapter().ÓÉÓÚÔÚϵͳÖпÉÄÜ´æÔÚ¶à¸öadapter,ÒòΪ½«Ã¿Ò»ÌõI2C×ÜÏ߶ÔÓ¦Ò»¸ö±àºÅ,ÏÂÎÄÖгÆΪ
I2C×ÜÏߺÅ.Õâ¸ö×ÜÏߺŵÄPCIÖеÄ×ÜÏߺŲ»Í¬.ËüºÍÓ²¼þÎÞ¹Ø,Ö»ÊÇÈí¼þÉϱãÓÚÇø·Ö¶øÒÑ.
¶ÔÓÚi2c_add_adapter()¶øÑÔ,ËüʹÓõÄÊǶ¯Ì¬×ÜÏߺÅ,¼´ÓÉϵͳ¸øÆä·ÖÎöÒ»¸ö×ÜÏߺÅ,¶øi2c_add_numbered_adapter()ÔòÊÇ×Ô¼ºÖ¸¶¨×ÜÏߺÅ,Èç¹ûÕâ¸ö×ÜÏߺŷǷ¨»òÕßÊDZ»Õ¼ÓÃ,¾Í»á×¢²áʧ°Ü.
·Ö±ðÀ´¿´Ò»ÏÂÕâÁ½¸öº¯ÊýµÄ´úÂë:
int i2c_add_adapter(struct i2c_adapter *adapter)
{
    int id, res = 0;
retry:
    if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0)
        return -ENOMEM;
    mutex_lock(&core_lock);
    /* "above" here means "above or equal to", sigh */
    res = idr_get_new_above(&i2c_adapter_idr, adapter,
                __i2c_first_dynamic_bus_num, &id);
    mutex_unlock(&core_lock);
    if (res < 0) {
        if (res == -EAGAIN)
            goto retry;
        return res;
    }
    adapter->nr = id;
 


Ïà¹ØÎĵµ£º

linux pppoe

ÊÖÍ·Óиöep9315µÄ°å£¬½ñÌìͻȻÏëÆðÅÜÒ»ÏÂadslÉÏÍø¡£ÍíÉÏ»ØÀ´¾Í¿ªÊ¼¸ã¡£
´Ó10µãµ½ÏÖÔÚ£¬ÖÕÓÚÄܹ»ÅÜÆðÀ´¡£
¸ø´ó¼Ò½è¼øһϡ£
1.±àÒëÄںˣ¬°ÑpppµÄÄÇЩѡÏîÑ¡ÉÏ¡£ (ÎÒÓÃ2.6.8.1µÄkernel£¬cirrus µÄpatch)
2.libpcap-0.9.1 Õâ¸ö°üÊÇpppdÐèÒªµÄ¡£
./configure CC=arm-linux-gcc CFLAGS=-msoft-float --target=arm-linu ......

Linux¶¨Ê±Æ÷ Ïê½â[ת]


[ת]Linux¶¨Ê±Æ÷

ºËÖ÷ÒªÐèÒªÁ½ÖÖÀàÐ͵Äʱ¼ä£º


1.

ÔÚÄÚºËÔËÐÐÆÚ¼ä³ÖÐø¼Ç¼µ±Ç°µÄʱ¼äÓëÈÕÆÚ£¬ÒÔ±ãÄں˶ÔijЩ¶ÔÏóºÍʼþ×÷ʱ¼ä±ê¼Ç£¨

timestamp

£¬Ò²³ÆΪ



ʱ¼ä´Á



£©£¬»ò¹©ÓÃ



»§Í¨¹ýʱ¼ä

syscall ......

ÔÚlinuxÏÂʹÓÃgtkµÄgdk

aishen944-163.com
תÌùÇë×¢Ã÷³ö´¦£¬Ð»Ð»£¡£¡
Æäʵ͸Ã÷ÌùͼµÄÔ­Àí¾ÍÊǽøÐÐxorÔËË㣬
»ù±¾¹«Ê½£ºA  xor A = 0    A xor 0 = A   A xor A xor B  = B
¼ÙÈçÏÖÔÚÓÐÁ½ÕÅͼƬ£¬Ò»ÕÅÊÇÎÒÃÇÒª¶ÔÆä½øÐÐÌùͼµÄͼƬA£¬ ÁíÍâÒ»ÕÅÊÇÒª±»ÌùͼµÄͼƬB
1£¬ ¸´ÖÆͼƬBµÄÒ»·Ý¿½±´ÎªC
2£¬ ½«CÖÐÖ¸¶¨ ......

LinuxÄÚºËѧϰ±Ê¼ÇÖ®Íø¿¨Çý¶¯µÄÏêϸ·ÖÎö

ѧϰӦ¸ÃÊÇÒ»¸öÏÈ°ÑÎÊÌâ¼òµ¥»¯£¬ÔÚ°ÑÎÊÌ⸴ÔÓ»¯µÄ¹ý³Ì¡£Ò»¿ªÊ¼¾Í×ÅÊÖ´¦Àí¸´ÔÓµÄÎÊÌ⣬ÄÑÃâÈà ÈËÓÐÐľªµ¨²ü£¬×½½ó¼ûÖâµÄ¸Ð¾õ¡£¶ÁLinuxÍø¿¨Çý¶¯Ò²ÊÇÒ»Ñù¡£Ädz¤³¤µÄÔ´Âë¼ÐÔÓ×ÅÄÇЩÎÒÃÇÄ°ÉúµÄ±äÁ¿ºÍ·ûºÅ£¬Íû¶øÉúη±ãÊÇÀíËùµ±È»µÄÁË¡£²»Òªµ£ÐÄ£¬ÊÂÇé ×ÜÓнâ¾öµÄ°ì·¨£¬ÏÈ°ÑһЩÎÒÃǹܲ»×ŵĴúÂëÇиî³öÈ¥£¬ÁôϱØÐëµÄ²¿·Ö£¬°Ñ¿ò¼ÜÕ ......

OMAPL137ÖÕÓÚÅÜÁËLinux²¿·Ö

  ½ñÌìÖÕÓÚ°ÑOmapL137µÄ°å×ÓÅÜÆðÁËLinuxºÍÆä´øµÄdemo¡£ºÏÖÚ´ï¶ÔÕâ¸ö°å×Ó¶«Î÷×öµÄºÜÉÙ£¬°Ñomapl137µÄÌص㶼ûÓÐչʾ³öÀ´¡£¿É¾Í¿àÁËÎÒÃÇÕâЩÏëÒªÓÃÕâ¸öƬ×ÓµÄÈËÁË¡£¹úÄÚÍæÕâ¸öµÄÈË»¹²»¶à£¬ËùÓÐ×ÊÁϾÍÓ²×ÅͷƤÂýÂýÄ¥°É¡£
Ç°¶Îʱ¼äubootÊÇÓÉdspÄDZßÓÃnandwrite¹¤³Ìд½øÀ´µÄ£¬ÆäУÑ鷽ʽºÍubootµÄeccУÑéËƺõÓгåÍ»£¬ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ