linux½Å±¾(shell)±à³Ì
http://blog.csdn.net/compiler_hdz/archive/2006/01/10/575113.aspx
ÏÈ¿´Ò»¸ö“hello world!”µÄÀý×Ó£º
ÔÚij¸öĿ¼ÏÂн¨Ò»¸öÎļþ£¬½Ðhello.sh£¬ÇÃÈëÒÔÏ´úÂ룺
#!/bin/sh
echo "hello world!"
ºÃ£¬¾ÍÕâЩ¡£±£´æ£¬ÔÚÃüÁîÌáʾ·ûϽøÈë±£´æ“hello.sh”µÄĿ¼£¬ÕâÑùÖ´ÐУº
#sh hello.sh£¨»Ø³µ£©
¿´µ½ÁË°É£¿¹þ¹þ£¬²»¹ýÄã¸ßÐ˵IJ»ÒªÌ«ÔçÁË£¬Ö»²¢²»ÄÜ˵Ã÷ʲô£¬¾ÍÏóÄãÔÚÆäËû±à³Ì»·¾³ÖÐ×öµÄ“hello world.”Ò»Ñù£¬Àë¸ßÊֵľàÀ뻹Զ×ÅÄØ¡£
ÎÒÃÇÏÈ¿´¿´bash½Å±¾ÖбäÁ¿µÄʹÓá£
ÐÞ¸ÄÉÏÃæµÄ“hello world!”µÄÀý×Ó£¬¸Ä³ÉÏÂÃæµÄÑù×Ó£º
#!/bin/bash
# This is a very simple example
str="hello world!"
echo $str
±£´æºó°´ÕÕÉÏÃæµÄ·½·¨Ö´Ðиýű¾£¬Ä㽫¿´µ½ºÍÒÔÇ°Ò»ÑùµÄЧ¹û¡£ÎÒÃÇ¿´¿´Ã¿Ò»¾äµÄÒâÒ壺
µÚ
Ò»ÐУ¬#! ÊÇ˵Ã÷ hello.sh Õâ¸öÎļþµÄÀàÐ͵ģ¬ÓеãÀàËÆ Windows ϵͳÏÂÓÃÎļþºó׺À´±íʾ²»Í¬ÎļþÀàÐ͵ÄÒâ˼¡£Linux
ϵͳ¸ù¾Ý "#!" ¼°¸Ã×Ö´®ºóÃæµÄÐÅϢȷ¶¨¸ÃÎļþµÄÀàÐÍ¡£ÔÚ BASH ÖÐ µÚÒ»ÐÐµÄ "#!" ¼°ºóÃæµÄ "/bin/bash"
¾Í±íÃ÷¸ÃÎļþÊÇÒ»¸ö BASH ³ÌÐò£¬ÐèÒªÓÉ /bin Ŀ¼Ï嵀 bash ³ÌÐòÀ´½âÊÍÖ´ÐС£BASH Õâ¸ö³ÌÐòÒ»°ãÊÇ´æ·ÅÔÚ /bin
Ŀ¼Ï¡£ÕâÒ»ÐеÄд·¨Êǹ̶¨µÄ¡£
µÚ¶þÐÐµÄ "# This is a ..." ¾ÍÊÇ BASH ³ÌÐòµÄ×¢ÊÍ£¬ÔÚ BASH ³ÌÐòÖдӓ#”ºÅ£¨Ã»ÓГ!”ºÅ£©¿ªÊ¼µ½ÐÐβµÄ²¿·Ö¾ù±»¿´×÷ÊdzÌÐòµÄ×¢ÊÍ£¬Ï൱ÓÚC/C++ÓïÑÔÖеē//”¡£
µÚÈýÐÐÊÇΪһ¸öÃû³ÆΪ str µÄ±äÁ¿¸³Öµ¡£
µÚËÄÐÐµÄ echo Óï¾äµÄ¹¦ÄÜÊÇ°Ñ echo ºóÃæµÄ×Ö·û´®»ò±äÁ¿µÄÄÚÈÝÊä³öµ½±ê×¼Êä³öÖÐÈ¥¡£ÐèҪעÒâµÄÊÇ BASH Öеľø´ó¶àÊýÓï¾ä½áβ´¦¶¼Ã»Óзֺš£
¶Ô
ÓÚµÚÈýÐУ¬¿ÉÄÜÓÐÈË»áÎÊ£ºÔÚC/C++ÖУ¬±äÁ¿¶¼ÊôÓÚij¸öÀàÐÍ£¬ÔÚÕâ±äÁ¿ str µÄÀàÐÍÊÇʲôÄØ£¿ÔÚ BASH ÖбäÁ¿¶¨ÒåÊDz»ÐèÒªµÄ£¬Ã»ÓÐ
"int i"
ÕâÑùµÄ¶¨Òå¹ý³Ì¡£Èç¹ûÏëÓÃÒ»¸ö±äÁ¿£¬Ö»ÒªËûûÓÐÔÚÇ°Ãæ±»¶¨Òå¹ý£¬¾ÍÖ±½Ó¿ÉÒÔÓ㬵±È»ÄãʹÓøñäÁ¿µÄµÚÒ»ÌõÓï¾äÓ¦¸ÃÊǶÔËû¸³³õÖµÁË£¬Èç¹ûÄã²»¸³³õֵҲû¹Ø
ϵ£¬Ö»²»¹ý¸Ã±äÁ¿ÊÇ¿Õ£¨ ×¢Ò⣺ÊÇ NULL£¬²»ÊÇ 0 £©¡£
¹ØÓÚ±äÁ¿µÄʹÓã¬Òª×¢ÒâÒÔϼ¸µã£º
Ò»£¬±äÁ¿¸³ÖµÊ±£¬“=”×óÓÒÁ½±ß¶¼²»ÄÜÓпոñ£»
¶þ£¬BASH ÖеÄÓï¾ä½áβ²»Ð
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,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 ......
ÎÒÃÇÖªµÀĬÈÏÍâÉèI/O×ÊÔ´ÊDz»ÔÚLinuxÄں˿ռäÖеģ¨Èçsram»òÓ²¼þ½Ó¿Ú¼Ä´æÆ÷µÈ£©£¬ÈôÐèÒª·ÃÎʸÃÍâÉèI/O×ÊÔ´£¬±ØÐëÏȽ«ÆäµØÖ·Ó³Éäµ½Äں˿ռäÖÐÀ´£¬È»ºó²ÅÄÜÔÚÄں˿ռäÖзÃÎÊËü¡£
LinuxÄں˷ÃÎÊÍâÉèI/OÄÚ´æ×ÊÔ´µÄ·½Ê½ÓÐÁ½ÖÖ£º¶¯Ì¬Ó³Éä(ioremap)ºÍ¾²Ì¬Ó³Éä(map_desc)¡£
Ò»¡¢¶¯Ì¬Ó³Éä(ioremap)·½Ê½
¶ ......
man -k [keyword ] ÔÚwhatis Êý¾Ý¿âÖвéÕҹؼü×Ö£»
•man -f [keyword ] ͬÉÏ£¬µ«keyword Ϊһ¸öÕû×Ö(whole word)
•man -a [keyword ] ͨ³£man »áÏÔʾµÚÒ»¸öÕÒµ½µÄkeywordµÄman page£¬µ« ......
gccµÄ±àÒë¹ý³Ì·ÖΪËIJ½£¬·Ö±ðΪ£º
(1)Ô¤±àÒë (Pre-Processing)
(2)±àÒë (Compiling)
(3)»ã±à (Assembling)
(4)Á´½Ó (Linking)
ÒÔhello.cΪÀý˵Ã÷£º
#include<stdio.h>
int main(void)
{
printf("Hello World!");
return 0;
}
(1)Ô¤±àÒë½×¶Î (Pre-Processing)
&nbs ......