[ת]LinuxÄÚºËMakefileÎļþ£¨¶þ£©
=== 6 ÌåϵMakefileÎļþ
ÔÚ¿ªÊ¼½øÈë¸÷¸öĿ¼±àÒë֮ǰ£¬¶¥²ãMakefileÎļþÉèÖñàÒë»·¾³ºÍ×öЩ׼±¸¹¤×÷¡£¶¥²ãMakefileÎļþ°üº¬Í¨Óò¿·Ö£¬arch/$(ARCH) /Makefile°üº¬¸ÃÌåϵ¼Ü¹¹ËùÐèµÄÉèÖá£Òò´Ëarch/$(ARCH)/Makefile»áÉèÖÃһЩ±äÁ¿ºÍÉÙÁ¿µÄÄ¿±ê¡£
µ±±àÒëʱ½«°´ÕÕÒÔÏ´ó¸Å²½ÖèÖ´ÐУº
1) ÅäÖÃÄÚºË => ²úÉú .configÎļþ
2) ±£´æÄں˰汾µ½include/linux/version.hÎļþÖÐ
3) ·ûºÅÁ´½Óinclude/asm to include/asm-$(ARCH)
4) ¸üÐÂËùÓÐÄ¿±ê¶ÔÏóµÄÆäËüǰÌáÎļþ
- ¸½¼ÓǰÌáÎļþ¶¨ÒåÔÚarch/$(ARCH)/MakefileÎļþÖÐ
5) µÝ¹é½øÈëinit-* core* drivers-* net-* libs-*ÖеÄËùÓÐ×ÓĿ¼ºÍ±àÒëËùÓеÄÄ¿±ê¶ÔÏó
- ÉÏÃæ±äÁ¿Öµ¶¼ÒýÓõ½arch/$(ARCH)/MakefileÎļþ¡£
6) Á´½ÓËùÓеÄobjectÎļþÉú³ÉvmlinuxÎļþ£¬vmlinuxÎļþ·ÅÔÚ´úÂëÊ÷¸ùĿ¼Ï¡£
×ʼÁ´½ÓµÄ¼¸¸öobjectÎļþÁоÙÔÚarch/$(ARCH)/MakefileÎļþµÄhead-y±äÁ¿ÖС£
7) ×îºóÌåϵMakefileÎļþ¶¨Òå±àÒëºóÆÚ´¦Àí¹æÔòºÍ½¨Á¢×îÖÕµÄÒýµ¼Ó³Ïñbootimage¡£
- °üÀ¨´´½¨Òýµ¼¼Ç¼
- ×¼±¸initrdÓ³ÏñºÍÏà¹Ø´¦Àí
--- 6.1 ±äÁ¿ÉèÖÃ
LDFLAGS $(LD)Ò»°ãÑ¡Ïî
Ñ¡ÏîʹÓÃÓÚÁ´½ÓÆ÷µÄËùÓе÷ÓÃÖС£Í¨³£¶¨Òåemulation¾Í¿ÉÒÔÁË¡£
Example:
#arch/s390/Makefile
LDFLAGS := -m elf_s390
×¢Òâ: EXTRA_LDFLAGSºÍLDFLAGS_$@¿ÉÒÔ½øÒ»²½¶©ÖÆÊ¹ÓÃÑ¡ÏÇë²Î¿¼µÚ7Õ¡£
LDFLAGS_MODULE $(LD)Á´½ÓÄ£¿éµÄÑ¡Ïî
LDFLAGS_MODULEͨ³£ÉèÖÃ$(LD)Á´½ÓÄ£¿éµÄ.koÑ¡ÏĬÈÏΪ"-r"¼´¿ÉÖØ¶¨Î»Êä³öÎļþ¡£
LDFLAGS_vmlinux $(LD)Á´½ÓvmlinuxÑ¡Ïî
LDFLAGS_vmlinux¶¨ÒåÁ´½Ó×îÖÕvmlinuxʱÁ´½ÓÆ÷µÄÑ¡Ïî¡£LDFLAGS_vmlinuxÖ§³ÖʹÓÃLDFLAGS_$@¡£
Example:
#arch/i386/Makefile
LDFLAGS_vmlinux := -e stext
OBJCOPYFLAGS objcopyÑ¡Ïî
&
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
Ò»¡¢ ʲôÊÇϵͳµ÷ÓÃ
ÔÚLinuxµÄÊÀ½çÀÎÒÃǾ³£»áÓöµ½ÏµÍ³µ÷ÓÃÕâÒ»ÊõÓËùνϵͳµ÷Ó㬾ÍÊÇÄÚºËÌṩµÄ¡¢¹¦ÄÜÊ®·ÖÇ¿´óµÄһϵÁеĺ¯Êý¡£ÕâЩϵͳµ÷ÓÃÊÇÔÚÄÚºËÖÐʵÏֵģ¬ÔÙͨ¹ýÒ»¶¨µÄ·½Ê½°Ñϵͳµ÷ÓøøÓû§£¬Ò»°ã¶¼Í¨¹ýÃÅ(gate)ÏÝÈë(trap)ʵÏÖ¡£ÏµÍ³µ÷ÓÃÊÇÓû§³ÌÐòºÍÄں˽»»¥µÄ½Ó¿Ú¡£
¶þ¡¢ ϵͳµ÷ÓõÄ× ......
LinuxÖеȴý¶ÓÁлúÖÆ·ÖÎö
ʲôÊǵȴý¶ÓÁУ¿
ÔÚÈí¼þ¿ª·¢ÖÐÈÎÎñ¾³£ÓÉÓÚijÖÖÌõ¼þûÓеõ½Âú×ã¶ø²»µÃ²»½øÈë˯Ãß״̬£¬È»ºóµÈ´ýÌõ¼þµÃµ½Âú×ãµÄʱºòÔÙ¼ÌÐøÔËÐУ¬½øÈëÔËÐÐ״̬¡£ÕâÖÖÐèÇóÐèÒªµÈ´ý¶ÓÁлúÖÆµÄÖ§³Ö¡£LinuxÖÐÌṩÁ˵ȴý¶ÓÁеĻúÖÆ£¬¸Ã»úÖÆÔÚÄÚºËÖÐÓ¦Óúܹ㷺¡£
......
Æô¶¯armlinux£¬bootloader±ØÐëÌṩÏÂÃæ¼¸²½£º
1£® ÉèÖò¢³õʼ»¯ram
2£® ³õʼ»¯Ò»¸ö´®¿Ú
3£® ¼ì²â´¦ÀíÆ÷ÀàÐÍ
4£® ÉèÖÃÄں˱ê¼ÇÁбí
5£® µ÷ÓÃÄÚºËÓ³Ïñ
1. ÉèÖò¢³õʼ»¯ram
bootloaderÒªÕÒµ½²¢³õʼ»¯ÏµÍ³ÖÐËùÓе ......