Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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É豸Çý¶¯Ñ§Ï°£­Davinci¿ª·¢°åÉÏÔËÐеÄhelloÄ£¿é


LinuxÉ豸Çý¶¯Ñ§Ï°£­Davinci¿ª·¢°åÉÏÔËÐеÄhelloÄ£¿é
 
¿´Á˺ܶà¸öhello worldÁË£¬×Ô¼ºÀ´Ð´Ò»¸öÔÚdavinci°å¿éÉÏÅܵİɡ£
Ö÷ÌåºÜ¼òµ¥£¬¾ÍÊÇÒ»¸öCÎļþhello_davinci.c¡£
/*================hello_davinci.c==============*/
#include <linux/module.h>  /*ËùÓÐÄ£¿é¶¼ÐèÒªµÄÍ·Îļþ*/
#include <lin ......

Linux²é¿´È«²¿½ø³ÌµÄÃüÁî

ÔÚ³¬¼¶Óû§ÏÂÏÔʾLinuxϵͳÖÐÕýÔÚÔËÐеÄÈ«²¿½ø³Ì£¬Ó¦Ê¹ÓõÄÃüÁî¼°²ÎÊýÊÇ ps -aux ¡£
Linux psÃüÁîÏê½â£º
    1)ps a ÏÔʾÏÖÐÐÖն˻úϵÄËùÓгÌÐò,°üÀ¨ÆäËûÓû§µÄ³ÌÐò.
    2)ps -A ÏÔʾËùÓгÌÐò.
    3)ps c Áгö³ÌÐòʱ,ÏÔʾÿ¸ö³ÌÐòÕæÕýµÄÖ¸ÁîÃû³Æ,¶ø²»°üº¬Â·¾¶,²ÎÊý»ò³ ......

fedora/linux yumÔ´ÏêϸÉèÖÃ(Ç¿ÁÒÍƼö)

¾­¹ý¼è¿àµÄ·Ü¶·£¬ÖÕÓڸ㶨ÁËfedoraϵͳ´Ó°²×°µ½3DÌØЧ(±¾ÈË°²×°µÄÊÇfedora
11)£¬ÎªÁË·½±ãºóÀ´µÄlinuxer£¬ÌØÁôϱ¾È˵ÄÈ«¹ý³ÌÒÔ¹©²Î¿¼¡£ÒÔϲ½ÖèÓеÄÀ´×ÔÓÚgoogleËÑË÷£¬Óв¿·ÖÀ´×ÔÓÚ¼ÎÓÓÖÐÎIJ©¿Í
£¨http://www.my-guides.net/en/content/view/164/26/£©£¬²¢¸Ðл¸÷·½Ç°±²µÄ±Ê¼£¡£
1.Ìí¼Órpm fusionÔ´
rpm -ivh
http://do ......

linuxÉèÖû·¾³±äÁ¿

1¡¢ÒýÑÔ
    ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔز¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³Æʱ³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ»ùÓ ......

Linux: S3C2410µÄRTCÇý¶¯

----------------------------------------------------------------------------------------------------------------------------------------
/**/
/*
********************************************************************************************************
*  @Description:s3c2410µÄrtcÇý¶¯µÄʵ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ