Linux Platform Device and Driver
´ÓLinux 2.6ÆðÒýÈëÁËÒ»Ì×еÄÇý¶¯¹ÜÀíºÍ×¢²á»úÖÆ:Platform_deviceºÍPlatform_driver¡£
LinuxÖд󲿷ֵÄÉ豸Çý¶¯£¬¶¼¿ÉÒÔʹÓÃÕâÌ×»úÖÆ, É豸ÓÃPlatform_device±íʾ£¬Çý¶¯ÓÃPlatform_driver½øÐÐ×¢²á¡£
Linux platform driver»úÖÆºÍ´«Í³µÄdevice driver »úÖÆ(ͨ¹ýdriver_registerº¯Êý½øÐÐ×¢²á)Ïà±È£¬Ò»¸öÊ®·ÖÃ÷ÏÔµÄÓÅÊÆÔÚÓÚplatform»úÖÆ½«É豸±¾ÉíµÄ×ÊÔ´×¢²á½øÄںˣ¬ÓÉÄÚºËͳһ¹ÜÀí£¬ÔÚÇý¶¯³ÌÐòÖÐʹÓÃÕâЩ×ÊԴʱͨ¹ýplatform deviceÌṩµÄ±ê×¼½Ó¿Ú½øÐÐÉêÇ벢ʹÓá£ÕâÑùÌá¸ßÁËÇý¶¯ºÍ×ÊÔ´¹ÜÀíµÄ¶ÀÁ¢ÐÔ£¬²¢ÇÒÓµÓнϺõĿÉÒÆÖ²ÐԺͰ²È«ÐÔ(ÕâЩ±ê×¼½Ó¿ÚÊǰ²È«µÄ)¡£
Platform»úÖÆµÄ±¾ÉíʹÓò¢²»¸´ÔÓ£¬ÓÉÁ½²¿·Ö×é³É£ºplatform_deviceºÍplatfrom_driver¡£
ͨ¹ýPlatform»úÖÆ¿ª·¢·¢µ×²ãÇý¶¯µÄ´óÖÂÁ÷³ÌΪ: ¶¨Òå platform_device à ×¢²á platform_device à ¶¨Òå platform_driver à×¢²á platform_driver¡£
Ê×ÏÈҪȷÈϵľÍÊÇÉ豸µÄ×ÊÔ´ÐÅÏ¢£¬ÀýÈçÉ豸µÄµØÖ·£¬ÖжϺŵȡ£
ÔÚ2.6ÄÚºËÖÐplatformÉ豸ÓýṹÌåplatform_deviceÀ´ÃèÊö£¬¸Ã½á¹¹Ì嶨ÒåÔÚkernel\include\linux\platform_device.hÖУ¬
struct platform_device {
const char * name;
u32 id;
struct device dev;
u32 num_resources;
struct resource * resource;
};
¸Ã½á¹¹Ò»¸öÖØÒªµÄÔªËØÊÇresource£¬¸ÃÔªËØ´æÈëÁË×îÎªÖØÒªµÄÉ豸×ÊÔ´ÐÅÏ¢£¬¶¨ÒåÔÚkernel\include\linux\ioport.hÖУ¬
struct resource {
const char *name;
unsigned long start, end;
unsigned long flags;
struct resource *parent, *sibling, *child;
};
ÏÂÃæ¾Ùs3c2410ƽ̨µÄi2cÇý¶¯×÷ΪÀý×ÓÀ´ËµÃ÷£º
/* arch/arm/mach-s3c2410/devs.c */
/* I2C */
static struct resource s3c_i2c_resource[] = {
[0] = {
.start = S3C24XX_PA_IIC,
.end = S3C24XX_PA_IIC + S3C24XX_SZ_IIC - 1,
 
Ïà¹ØÎĵµ£º
ÔÚlinux»·¾³Ï±à³ÌÓÐÒ»¸öºÜÈÃÈËÍ·ÌÛµÄÎÊÌâ¾ÍÊÇÐźŶÔϵͳµ÷ÓõĸÉÈÅ£¬ÔÚϵͳµ÷Óùý³ÌÖÐÈç¹ûÊܵ½ÐźŵĸÉÈÅ£¬
²¿·Öϵͳµ÷ÓûὫerrnoÉèÖóÉEINTR£¬ÎÒÃDz»µÃ²»±àдÏÂÃæµÄ´íÎó´¦Àí´úÂëÀ´·ÀÖ¹ÕâÖÖÇé¿öµÄ·¢Éú£º
syscall:
int ret = syscall(...);
if (ret < 0 && EINTER == errno)
goto syscall;
el ......
×ªÔØ android sdk 1.5 °²×°ÓëÅäÖÃ
²Î¿¼ ubuntu 8.10 °²×° Android
1.ÏÂÔØandroid sdk
ÏÂÔØµØÖ·ÈçÏ£º
http://dl.google.com/android/android-sdk-windows-1.5_r2.zip
http://dl.google.com/android/android-sdk-linux_x86-1.5_r2.zip
2.
ÏÂÔØeclipse 3.4.2
°´¹Ù·½ÎĵµËµ£¬android sdk ¿ÉÒÔÔËÐÐÔÚ ......
ÏȽéÉܼ¸¸ö»ù±¾¸ÅÄ
ºǫ́½ø³Ì£ºÔÚºǫ́ÔËÐеÄÎÞÐëÓëÓû§½»»¥µÄ³ÌÐò¡£ÔÚ¶àÈÎÎñ²Ù×÷ϵͳÉÏÔËÐжà¸öºǫ́½ø³Ì£¬ÓÐЩºǫ́½ø³Ì£¨ÀýÈçÊØ»¤³ÌÐò£©´ÓÀ´¶¼²»ÐèÒªÓû§ÊäÈ룬ÆäËüһЩ½ø³ÌÖ»ÊÇÔÚÓû§Ã¦ÓÚĿǰÔËÐÐÓÚǰ̨µÄ³ÌÐòʱ²ÅÁÙʱ´¦ÓÚºǫ́¡£
ÊØ»¤½ø³ÌÊÇÒ»ÖÖºǫ́½ø³Ì¡£crond½ø³ÌÊÇÖÚ¶àÊØ»¤½ø³ÌÖеÄÒ»ÖÖ£¬¿´¿´cronÕâ¸öµ¥´ÊÔÚ×ÖµäÀïà ......
Èç¹ûÄã¼Èû×öϵͳÆô¶¯ÈíÅÌ£¬Í¬Ê±¶àϵͳµÄÒýµ¼LILO ºÍGRUB ÓÖ±»É¾³ý£¬ÄÇôֻÄÜʹÓÃLinux ϵͳ°²×°ÅÌÀ´»Ö¸´rootµÄÃÜÂ룬²½ÖèÈçÏ¡£ Ò». liloÒýµ¼ÔÚ³öÏÖ lilo: Ìáʾʱ¼üÈë linux single Boot: linux single »Ø³µ¿ÉÖ±½Ó½øÈëlinuxµ¥Óû§Ä£Ê½ vi /etc/passwd ɾ³ýrootÏîÖеÄÃÜÂë (ÕâÀïÒ²¿ÉÒÔÖ±½ÓʹÓÃpasswdÃüÁîÖØÐÂÉèÖÃrootµÄÃÜÂë ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
ÎÒÃÇ˵¾ä´ó°×»°£¬Ëùν“ÓÎ˵Õß”£¨
lobbist
£¬
lobber
£©¾ÍÊǹŴúµÄ“說¿Í”£¬Ö»ÊÇÈËÃÇÆ½ÈÕ²»ºÃÒâ˼Õâô˵¶øÒÑ¡£µ±½ñ£¬¸ÊÔ¸×öÒ»Ãû
Linux
ÓÎ˵ÕßÊǺܹâÈÙµÄÊÂÇé¡£´Ë»°µ±Õ棿 ......