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

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_P


Ïà¹ØÎĵµ£º

linux socketѧϰ±Ê¼Ç£¨µÚ¶þÕ£©


ÓòºÍµØÖ·×å
    ÓÐÒ»¸öºÜÇ¡µ±µÄ±ÈÓ÷˵Ã÷Ì×½Ó¿Ú±à³Ì£¬Ì׽ӿھͺñȵ绰£¬¶øµç»°ÍøÖеĵ绰ºÅÂë¾ÍºÃÏñÌ×½Ó¿ÚµØÖ·¡£ËµÃ÷Ì×½Ó¿Ú¿ÉÒÔÓÃÌض¨µÄµØÖ·À´±êʾ×Ô¼º¡£²¢²»ÊÇËùÓеÄÌ×½Ó¿Ú¶¼ÐèÒªµØÖ·£¬±ÈÈçÎÞÃûÌ׽ӿھͲ»ÐèÒªµØÖ·£¬ÀýÈ纯Êýsocketpair(2)¾ÍÉú³ÉÁËÒ»¶Ô»¥Ïà¿ÉÒÔÁ¬½Óµ«ÊÇȴûÓеØÖ·µÄÌ×½Ó¿Ú¡£ÊéÖбÈÓ÷˵¾Í ......

Linux /devĿ¼

(1)dev
ÊÇÉ豸(device)µÄÓ¢ÎÄËõд¡£Õâ¸öĿ¼¶ÔËùÓеÄÓû§¶¼Ê®·ÖÖØÒª¡£ÒòΪÔÚÕâ¸öĿ¼Öаüº¬ÁËËùÓÐLinuxϵͳÖÐʹÓõÄÍⲿÉ豸¡£µ«ÊÇÕâÀï²¢²»ÊǷŵÄÍⲿÉ豸µÄÇý¶¯³ÌÐò¡£ÕâÒ»µãºÍÎÒÃdz£ÓõÄwindows,
dos²Ù×÷ϵͳ²»Ò»Ñù¡£Ëüʵ¼ÊÉÏÊÇÒ»¸ö·ÃÎÊÕâЩÍⲿÉ豸µÄ¶Ë¿Ú¡£ÎÒÃÇ¿ÉÒԷdz£·½±ãµØÈ¥·ÃÎÊÕâЩÍⲿÉ豸£¬ºÍ·ÃÎÊÒ»¸öÎļþ£¬Ò»¸ö ......

LinuxÏÂQTͼÐνçÃ濪·¢£¨Ò»£©——¸ÅÊö(1)


QtÊÇÒ»¸ö¿çƽ̨µÄC++ͼÐÎÓû§½çÃæ¿â,.ÓÉŲÍþTrollTech¹«Ë¾³öÆ·£¬Ä¿Ç°°üÀ¨Qt/X11£¬»ùÓÚFrambufferµÄQt Embedded,¿ìËÙ¿ª·¢¹¤¾ßQt Designer¼¸¹ú¼Ê»¯¹¤¾ßQt LinguistµÈ£®QtÖ§³ÖUnix¼°Linuxϵͳ,»¹Ö§³ÖWindows NT/Windows 2k¼°Qindows 95/98ƽ̨.QtµÄÁ¼ºÃ·â×°»úÖÆʹÆäÄ£¿é»¯³Ì¶È·Ç³£¸ß,¿ÉÖØÓÃÐÔ ......

linux c alarm(0)µÄº¬Òå

Linux C¡¡¡¡alarmº¯Êý---Çë¿´×îºó
¡¡¡¡alarmÒ²³ÆΪÄÖÖÓº¯Êý£¬Ëü¿ÉÒÔÔÙ½ø³ÌÖÐÉèÖÃÒ»¸ö¶¨Ê±Æ÷£¬µ±¶¨Ê±Æ÷Ö¸¶¨µÄʱ¼äµ½Ê±£¬ËüÏò½ø³Ç·¢ËÍSIGALARMÐźš£Òª×¢ÒâµÄÊÇ£¬Ò»¸ö½ø³ÌÖ»ÄÜÓÐÒ»¸öÄÖÖÓʱ¼ä£¬Èç¹ûÔÚµ÷ÓÃalarm֮ǰÒÑÉèÖùýÄÖÖÓʱ¼ä£¬ÔòÈκÎÒÔÇ°µÄÄÖÖÓʱ¼ä¶¼±»ÐÂÖµËù´úÌæ¡£
ËùÐèÍ·Îļþ
¡¡¡¡#include<unistd.h>
º¯Ê ......

LinuxÖеÄÄÚ´æÒ³±í´´½¨Ö®memtable_init()º¯Êý·ÖÎö

    ±¾º¯ÊýµÄ·ÖÎöºÜÄѾßÌ壬ÒòΪÉæ¼°Á˺ܶàarmµÄ´¦ÀíÆ÷ÐͺźÍÿ¸öÐͺŶÔÓ¦µÄcacheºÍwrite bufferµÄ¹¤×÷·½Ê½£¬ÕâƬÎÄÕÂÖ»ÊÇ×ö¼òµ¥µÄ¼Ç¼£¬·½±ãÒÔºóÁ˽â¸üÉîºó»ØÀ´ÔÙÀ´ÍêÉÆÕâ¸öº¯Êý¡£
     Õâ¸öº¯ÊýµÄµ÷Óùý³ÌÈ磺start_kernel()->setup_arch()->paging_init()->memtable_init( ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ