linuxµÄplatformÇý¶¯
´Ó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,
&
Ïà¹ØÎĵµ£º
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
¹¥ÈëLinuxϵͳºó£¬ºÜ¶àÈëÇÖÕßÍùÍù¾Í¿ªÊ¼µÃÒâÍüÐÎÁË¡£ÕâÆäÖл¹ÓÐÒ»¸öÔÒò£¬¾ÍÊǼ¼ÊõÐÔÒ²ÒªÇó¸ü¸ßÁË¡£ÏÂÃæ£¬ÎÒÃÇÀ´¿´¿´Ò»Ð©³£Óõľµä¹¤¾ß¡£(δ¾ÔÊÐí£¬Ð»¾ø×ªÔØ£¡)
1¡¢´ÓÕâÀïÑÓÉ죺ºóÃźÍÁ¬½Ó¹¤¾ß
£¨1£©Httptunnel
TunnelµÄÒâ˼ÊÇËíµÀ£¬Í¨³£HTTPTunnel±»³ÆÖ®ÎªHTTP°µµÀ£¬ËüµÄÔÀí¾ÍÊǽ«Êý¾Ýαװ³ÉHTTPµÄÊý¾ÝÐÎʽÀ´ ......
LinuxϵͳϵÄÉ豸ºÍÎļþÅäÖÃ
¡¡Ð½¨Ò»¸öÐéÄâ»úºó£¬³ýÁËʹÓÃĬÈÏÖµ£¬Óû§»¹¿ÉÒÔͨ¹ýÅäÖÃÎļþÐ޸IJÎÊý¡£Õâ¸öÅäÖÃÎļþ£¬Êµ¼ÊÉϾÍÏ൱ÓÚеçÄԵēӲ¼þÅäÖÔ£¬Óû§¿ÉÒÔÔÚÅäÖÃÎļþÖоö¶¨ÐéÄâ»úµÄÓ²ÅÌ¡¢ÄÚ´æ¶à´ó£¬ÊÇ·ñÓв¢¿Ú´®¿Ú¡¢ÊÇ·ñÓÐÍøÂçµÈ¡£µ¥»÷“ÐéÄâ»ú”²Ëµ¥ÏµēÉèÖÔ°´Å¥£¬¾Í¿ ......
ÕâÒ»¶Îʱ¼äÒ»Ö±½øÐÐLinux on floppyµÄ³¢ÊÔ£¬½è´ËÏ£ÍûÄܶÔÈçºÎ¹¹ÔìÒ»¸öLinux·¢Ðа汾¡¢LinuxµÄÆô¶¯¡¢LinuxϵͳµÄ²Ã¼ôÓÐÒ»¸öÉî¿ÌµÄÈÏʶ¡£
ÔÚ½øÐÐÖУ¬ÎÒÓÐһЩ×Ô¼ºµÄÐĵÃÌå»á£¬ÓÈÆäÊÇÈçºÎ¹¹ÔìÒ»¸ö½ÏСµÄLinuxϵͳ¡£ÕâÀïÌù³öÆäÖеÄÒ»²¿·Ö£¬Ï£ÍûÄÜÓë¸÷λ¹²Í¬·ÖÏí¡£Óв»¶ÔµÄµØ·½£¬Ò²Íû¸÷λ¸ßÊÖÄܲ»Áߴͽ̡£
¹¹ÔìLinux on flop ......