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

Linux³õʼ»¯ÄÚºËÁÙʱҳ±íÖ®ºóµÄsetup_memoryº¯Êý

»°ËµÔÚlinuxÄں˳õʼ»¯ÍêÄÚºËÁÙʱҳ±íÀ´Ó³Éäǰ8MBÄÚ´æºó£¬ÔÚÓûÍûµÄÇýʹÏ£¬linux¿ªÊ¼×ÅÊÖÇÀÕ¼
896MBÒÔϵÄÄÚ´æÁË¡£È»¶øÇÀ¶áÕâ896MBÄÚ´æ¾ø·ÇÒ×Ê¡£linux»¹ÓÐÐí¶àÂé·³µÄÊÂÒª×ö¡£±ÈÈç˵½ø¹¥ºÍÕ¼ÁìÒÁÀ­¿ËµÈµÈ¡£ÓÚÊÇ
setup_memoryº¯Êý¿ªÊ¼Îªlinux²ß»®ºÍ³ï±¸´ËÊ¡£Ö÷ÒªÈÎÎñÊǽ¨Á¢Ò»ÕÅÓëÎïÀíÄÚ´æÒ³¿òºÅ¶ÔÓ¦µÄλͼ¡£Èç¹û¸ÃÒ³¿ò±»Õ¼ÓÃÔò¶ÔӦλͼÖеÄλ±»ÖÃ
1£¬·ñÔòÖÃ0¡£ÔÚ»ï°éϵͳ½¨Á¢Ç°¶ÔÄÚ´æ½øÐÐÁÙʱ¹ÜÀí¡£ÔÚ³õʼ»¯ÄÚºË×îÖÕÒ³±íʱalloc_bootmem_low_pagesÄÚ´æ·ÖÅ亯Êý¾ÍÓõ½ÁËÕâ¸öλ
ͼ¡£
ºËÐÄÊý¾Ý½á¹¹£º
typedef struct
bootmem_data
{
         
unsigned long node_boot_start; /* Æðʼҳ¿òºÅ0 */
         
unsigned long node_low_pfn; /* Èç¹ûÎïÀíÄÚ´æ´óÓÚ896MB£¬node_low_pfnΪ0x37FFF¡£
Èç¹ûÎïÀíÄÚ´æÐ¡ÓÚµÈÓÚ896MB,node_low_pfnΪÎïÀíÄÚ´æµÄ×î´óÒ³¿òºÅ¡£*/
         
void *node_bootmem_map; /* λͼµÄÆðʼµØÖ· */
/* ÏÂÃæÈý¸ö±äÁ¿µÄ×÷ÓÃÓÃÓÚalloc_bootmem_low_pagesº¯Êý */
         
unsigned long last_offset;
         
unsigned long last_pos;
         
unsigned long last_success;    


}
bootmem_data_t
;
´´½¨Î»Í¼µÄº¯ÊýÁ÷³Ì£º
start_kernel->setup_arch->setup_memory->init_bootmem
->init_bootmem_core

¡£
linux/arch/i386/kernel/setup.c
ÔÚsetup_memory()ÖÐÖ´ÐÐ
start_pfn = PFN_UP(init_pg_tables_end);
/* start_pfnÊÇÖ¸Ó³Éä8MBËùÓÃÒ³±íÖ®ºóµÚÒ»¸öÒ³¿òºÅ¡£PFN_UPµÄ×÷ÓÃÊǰѵØÖ·°´Ò³µÄ´óС½øÐÐ¶ÔÆë¡£Ò²¾ÍÊǵØÖ·ÊÇ4kbµÄÕûÊý±¶´óС¡£*/
find_max_pfn();
/* ÕÒµ½ÎïÀíÄÚ´æÖÐ×î´óÒ³¿òºÅ¡£·ÅÈëmax_pfnÖС£*/
max_low_pfn=find_max_low_pfn();
/* Èç¹ûÎïÀíµØÖ·Ð¡ÓÚµÈÓÚ896MB£¬max_low_pfn=max_pfn¡£´óÓÚ896MBʱ£¬max_low_pfnΪ896MBÄÚ´æ´óСµÄ×î´óÒ³¿òºÅ */
bootmap_size = init_bootmem(start_pfn,max_low_pfn);
½øÈëinit_bootmemÖÐ
unsigned long
__init

init_bootmem
(unsigned long


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

ʵսLinux Bluetooth±à³Ì(Áù) L2CAP±à³ÌʵÀý

ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
 Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......

LinuxÏÂÈí¼þµÄ°²×°ÓëÐ¶ÔØ£¨×ª£©

ÔÚWindowsϰ²×°Èí¼þʱ£¬Ö»ÐèÔËÐÐÈí¼þµÄ°²×°³ÌÐò£¨setup¡¢installµÈ£©»òÕßÓÃzipµÈ½âѹËõÈí¼þ½â¿ª¼´¿É°²×°£¬ÔËÐз´°²×°³ÌÐò£¨uninstall¡¢unware¡¢¡°Ð¶ÔØ¡±µÈ£©¾ÍÄܽ«Èí¼þÇå³ý¸É¾»£¬ÍêȫͼÐλ¯µÄ²Ù×÷½çÃæ£¬¼òµ¥µ½Ö»ÒªÓÃÊó±êÒ»Ö±µã»÷¡°ÏÂÒ»²½¡±¾Í¿ÉÒÔÁË¡£¶øLinuxºÃÏó¾Í²»Ò»ÑùÁË£¬ºÜ¶àµÄ³õѧÕß¶¼±§Ô¹ÔÚLinuxϰ²×°ºÍÐ¶ÔØÈí¼þ·Ç³ ......

LINUXÍøÂç±à³Ì,¼òµ¥µÄÁÄÌì³ÌÐò

·þÎñÆ÷¶Ë£º
   ½¨Á¢socket£¬±¾µØµØÖ·°ó¶¨bind£¬È»ºó½¨Á¢¼àÌý£¬Èç¹ûÓпͻ§¶ËÇëÇóÔòÏìÓ¦Ö®£¬È»ºó½øÐÐÊý¾ÝµÄ·¢ËͺͽÓÊÕ
Ô´´úÂë:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/time.h&g ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ