linux gcc µÄ±àÒë¹ý³Ì Ïê½â
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)
Ôڸý׶Σ¬±àÒëÆ÷½«ÉÏÊö´úÂëÖеÄstdio.h±àÒë½øÀ´£¬²¢ÇÒʹÓÃgcc -E½øÐв鿴(-EÈÃgccÔÚÔ¤´¦Àí½áÊøºóÍ£Ö¹±àÒë)
gcc -E hello.c -o hello.i
²é¿´hello.i¿É¼û£¬gccȷʵ½øÐÐÁËÔ¤´¦Àí£¬Ëü°Ñ"stdio.h"µÄÄÚÈݲåÈëµ½hello.iÎļþÖÐ
(2)±àÒë½×¶Î
ÔÚÕâ¸ö½×¶Î£¬gccÊ×Ïȼì²é´úÂëµÄ¹æ·¶ÐÔ£¬ÊÇ·ñÓÐÓï·¨´íÎóµÈ£¬ÒÔÈ·¶¨´úÂëµÄʵ¼ÊÒª×öµÄ¹¤×÷£¬ÔÚ¼ì²éÎÞÎóºó
gcc°Ñ´úÂë±àÒë³É»ã±àÓïÑÔ£¬¿ÉÒÔʹÓÃ-SÑ¡Ïî½øÐв鿴£¬¸ÃÑ¡ÏîÖ®½øÐбàÒë¶ø²»½øÐлã±à£¬Éú³É»ã±à´úÂë
gcc -S hello.i -o hello.s
(3)»ã±à½×¶Î
¾ÍÊǰѱàÒë½×¶ÎÉú³ÉµÄ.sÎļþת³ÉÄ¿±êÎļþ,¿ÉÒÔʹÓÃÑ¡Ïî-c ,¾ÍÊǰѻã±à´úÂëת»¯³É.oµÄ¶þ½øÖÆÄ¿±ê´úÂëÁË
gcc -c hello.s -o hello.o
(4)Á´½Ó½×¶Î
Ôڳɹ¦±àÒëÖ®ºó¾Í½øÈëÁËÁ´½Ó½×¶Î£¬ÔÚÕâÀïÉæ¼°µ½Ò»¸öÖØÒªµÄ¸ÅÄº¯Êý¿â¡£
¶ÁÕßÖØÐ²鿴Õâ¸öС³ÌÐò£¬ÔÚ¸ÃС³ÌÐòÖÐûÓв¢Ã»Óж¨Òå"printf"µÄº¯ÊýʵÏÖ£¬ÇÒÔÚÔ¤±àÒëÖаüº¬½øµÄ"stdio.h"
ÖÐÒ²Ö»Óиú¯ÊýµÄÉùÃ÷£¬¶øÃ»Óж¨Òå¸Ãº¯ÊýµÄʵÏÖ£¬ÄÇôÔÚÄÄʵÏÖ"printf"º¯ÊýÄÄ£¿£¬×îºó´ð°¸ÊÇ:ϵͳ°ÑÕâЩº¯ÊýʵÏÖ
¶¼±»×öµ½ÃûΪlibc.so.6µÄ¿âÎļþÖÐÈ¥ÁË£¬ÔÚûÓÐÌØ±ðÖ¸¶¨Ê±gcc»áµ½ÏµÍ³Ä¬ÈϵÄËÑË÷·¾¶"/usr/lib"ÏÂÈ¥²éÕÒ
Ò²¾ÍÊÇÁ´½Óµ½libc.so.6¿âº¯ÊýÖÐÈ¥£¬ÕâÑù¾ÍʵÏÖÁË"printf"ÁË£¬¶øÕâÒ²ÊÇÁ´½ÓµÄ×÷ÓÃ
º¯Êý¿âÒ»°ã·ÖΪ¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ£¬¾²Ì¬¿âÊÇÖ¸ÔÚ±àÒëÁ´½Óʱ£¬°Ñ¿âÎļþµÄ´úÂëÈ«²¿¼Óµ½¿ÉÖ´ÐгÌÐòÖÐÈ¥£¬Òò´ËÉú³ÉµÄ
¿ÉÖ´ÐÐÎļþ±È½Ï´ó£¬ÔÚÔËÐÐʱ¾Í²»ÔÙÐèÒª¿âÎļþÁË,ºó׺ÃûΪ.a¡£¶¯Ì¬¿âÓëÖ®Ïà·´£¬ÔÚ±àÒëÁ´½Óʱ²¢Ã»ÓаѿâÎļþµÄ´úÂë
¼ÓÈëµ½¿ÉÖ´ÐÐÎļþÖУ¬¶øÊÇÔÚ³ÌÐòÖ´ÐÐʱÓÉÔËÐÐʱÁ´½ÓÎļþ¼ÓÔØ¿â£¬ÕâÑù¿ÉÒÔ½ÚʡϵͳµÄ¿ªÏú£¬¶¯Ì¬¿âÒ»°ãºó׺ÃûΪ.so¡£
Íê³ÉÁ´½Óºógcc¾Í¿ÉÒÔÉú³É¿ÉÖ´ÐÐÎļþ
gcc hello.o -o hello
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
¡¶¾«Í¨unixÏÂcÓïÑÔ-±à³ÌÓëÏîĿʵ¼ù¡·Ñ§Ï°±Ê¼Ç
1.¿âµÄ·ÖÀà
¿â¿É·ÖΪ¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ¡£
a.¾²Ì¬¿â
¾²Ì¬¿âµÄ´úÂëÔÚ±àÒëʱÁ´½Óµ½Ó¦ÓóÌÐòÖУ¬Òò´Ë±àÒëʱ¿âÎļþ±ØÐè´æÔÚ£¬±ØÐëҪͨ¹ý"-l"²ÎÊý´«µÝ¸ø±àÒëÆ÷¡£Ó¦ÓóÌÐò¿ªÊ¼Ö´ÐÐʱ£¬¿âº ......
ÏÈ˵ÐèÇ󣬹«Ë¾ÓÐһ̨ÐͺÅΪHP LaserJet m1120 mfpµÄ´òÓ¡»ú£¬ÓÉÓÚ²»ÊÇÍøÂç´òÓ¡»úʹÓÃÆðÀ´Ê®·Ö²»±ã£¬¹«Ë¾ÀÏ´óÒªÇó½«Õą̂´òÓ¡»úÁ¬ÔÚ¹«Ë¾µÄÄÚÍølinux·þÎñÆ÷ÉÏ£¨CentOS£©£¬È»ºóÅäÖÃsamba¹²Ïí´òÓ¡»ú¡£ÏÂÃæ¿ª¹¤£¬Ö÷Òª·ÖÈý´ó²½Ö裬Èç·ûºÏÄãµÄÐèÇó£¬Çë¼ÌÐøÔĶÁ¡£
µÚÒ»²½£¬Òª±£Ö¤ÄãµÄ´òÓ¡»úÔÚlinu ......
ÎÒÃÇÖªµÀĬÈÏÍâÉèI/O×ÊÔ´ÊDz»ÔÚLinuxÄں˿ռäÖеģ¨Èçsram»òÓ²¼þ½Ó¿Ú¼Ä´æÆ÷µÈ£©£¬ÈôÐèÒª·ÃÎʸÃÍâÉèI/O×ÊÔ´£¬±ØÐëÏȽ«ÆäµØÖ·Ó³Éäµ½Äں˿ռäÖÐÀ´£¬È»ºó²ÅÄÜÔÚÄں˿ռäÖзÃÎÊËü¡£
LinuxÄں˷ÃÎÊÍâÉèI/OÄÚ´æ×ÊÔ´µÄ·½Ê½ÓÐÁ½ÖÖ£º¶¯Ì¬Ó³Éä(ioremap)ºÍ¾²Ì¬Ó³Éä(map_desc)¡£
Ò»¡¢¶¯Ì¬Ó³Éä(ioremap)·½Ê½
¶ ......