linuxʹÓÃÏÂʹÓö¯Ì¬Ó뾲̬¿â
¸Ð¾õ¶ÔÕâ¸öÓÐЩÔΣ¬×öÁ˸öʵÑ飬ŪÇå³þÁË¡£
ʵÑé˼·£¬ÓÃͬһ·Ý´úÂë±àÒëͬʱÉú³É¶¯Ì¬ºÍ¾²Ì¬¿â£¬Í¨¹ý²âÊÔ³ÌÐòµ÷Ó㬿´µ÷ÓõÄÊǶ¯Ì¬¿â»¹ÊǾ²Ì¬¿â¡£
Éú³É¾²Ì¬¿â´úÂ룺
/***********hellod.h*************/
#ifndef _HELLO_S_H
#define _HELLO_S_H
void prints(char *str);
#endif
/*hellod.c*/
#include "hellod.h"
#include <stdio.h>
void printd(char *str)
{
printf("print in static way:%s",str);
}
gcc -c -o hellod.o hellod.c
ar cqs libhellod.a hellod.o
Éú³ÉµÄ¾²Ì¬¿âΪlibhellod.a
Éú³É¶¯Ì¬¿â´úÂë:
½«ÉÏÃæhellod.cÖеĴòÓ¡Óï¾ä£¬´òÓ¡ÊäÈë:print in dynamic way¡£ÒÔʾÇø±ð¡£
gcc -shared -o libhellod.so hellod.c
Éú³ÉµÄ¶¯Ì¬¿âΪlibhellod.so¡£
²âÊÔ´úÂëmain.c
#include "hellod.h"
int main(void)
{
char *text = "hello,world\n";
printd(text);
}
ʹÓþ²Ì¬¿â:gcc -o hello main.c -static -L./ -lhellod
Ö´ÐÐÉú³ÉÎļþ£¬´òÓ¡:print in static way:hello,world
ʹÓö¯Ì¬¿â£º gcc -o hello main.c -L./ -lhellod
Ö´Ðк󣬴òÓ¡ print in dynamic way:hello,world
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Ò»¡¢SHELL¼ò½é ¢ÙʲôÊÇSHELL ´ð£ºÒ»¸ö×÷ΪÓû§ÓëLINUXϵͳ֮¼äµÄ²Ù×÷½Ó¿Ú³ÌÐò£¬ÔÊÐíÓû§Ïò²Ù×÷ϵͳÊäÈëÐèÒªÖ´ÐеÄÃüÁî¡£
Ò»Öָ߼¶¡¢½âÊÍÐԵijÌÐòÓïÑÔ¡£ ¢ÚSHELLµÄÖÖÀà ¢ÛSHELLµÄÖ´ÐÐ
. ......
½ø³ÌÊdzÌÐòÖ´ÐÐʱµÄÒ»¸öʵÀý£¬Êdzä·ÖÃèÊö³ÌÐòÒѾִÐе½ºÎÖ̶ֳȵÄÊý¾Ý½á¹¹µÄ»ã¼¯¡£ÔÚlinuxÖУ¬³£½«½ø³Ì³ÆΪÈÎÎñ£¨task£©»òÕßỊ̈߳¨thread£©¡£½ø³ÌµÄÄ¿µÄ¾ÍÊdzе£·ÖÅäϵͳ×ÊÔ´µÄʵÌå¡£
µ±Ò»¸ö½ø³Ì´´½¨Ê±£¬¼¸ºõÓ븸½ø³ÌÏàͬ¡£½ÓÊܸ¸½ø³ÌµØÖ·¿Õ¼äµÄÒ»¸öÂß¼¿½±´£¬²¢´Ó½ø³Ì´´½¨ÏµÍ³µ÷ÓõÄÏÂÒ»ÌõÖ¸ÁʼִÐÐÓ븸½ø³ÌÏàͬµÄ´ú ......
»¶Ó»Øµ½KernelÖÐ……
¼ÌÐø˵__vet_atagsº¯Êý£¬Õâ¸öº¯ÊýÈԾɶ¨ÒåÔÚarch\arm\kernel\head-common.sÎļþÖУº
/* Determine validity of the r2 atags pointer. The heuristic requires
* that the pointer be aligned, in the first 16k of physical RAM and
* that the ATAG_CORE marker ......