Linux Kconfig¼°Makefileѧϰ
ÄÚºËÔ´ÂëÊ÷µÄĿ¼Ï¶¼ÓÐÁ½¸öÎĵµKconfig £¨2.4°æ±¾ÊÇConfig.in£©ºÍMakefile¡£·Ö²¼µ½¸÷Ŀ¼µÄKconfig¹¹³ÉÁËÒ»¸ö·Ö²¼Ê½µÄÄÚºËÅäÖÃÊý¾Ý¿â£¬Ã¿¸öKconfig·Ö±ðÃèÊöÁËËùÊôĿ¼ԴÎĵµÏà¹ØµÄÄÚºËÅäÖò˵¥¡£ÔÚÄÚºËÅäÖÃmake menuconfigʱ£¬´ÓKconfigÖжÁ³ö²Ëµ¥£¬Óû§Ñ¡Ôñºó±£´æµ½.configµÄÄÚºËÅäÖÃÎĵµÖС£ÔÚÄں˱àÒëʱ£¬Ö÷Makefileµ÷ÓÃÕâ¸ö.config£¬¾ÍÖªµÀÁËÓû§µÄÑ¡Ôñ¡£
ÉÏÃæµÄÄÚÈÝ˵Ã÷ÁË£¬Kconfig¾ÍÊǶÔÓ¦×ÅÄں˵ÄÅäÖò˵¥¡£¼ÙÈçÒªÏëÌí¼ÓеÄÇý¶¯µ½Äں˵ÄÔ´ÂëÖУ¬Äܹ»ÐÞ¸ÄKconfig,ÕâÑù¾ÍÄܹ»Ñ¡ÔñÕâ¸öÇý¶¯£¬¼ÙÈçÏëʹÕâ¸öÇý¶¯±»±àÒ룬ҪÐÞ¸ÄMakefile¡£ËùÒÔ£¬Ìí¼ÓеÄÇý¶¯Ê±ÐèÒªÐ޸ĵÄÎĵµÓÐÁ½ÖÖ£¨×¢Òâ²»Ö»ÊÇÁ½¸ö£©
*Kconfig
*Makefile
---------------------------------------------------------------------------------------------
Kconfig
1.ÏÈÁ˽âÒ»ÏÂKconfigµÄÓï·¨£º
Ò»¸öµäÐ͵ÄÄÚºËÅäÖò˵¥ÈçÏ£º
menu "Network device support"
config NETDEVICES
bool "Enable Net Devices"
depends on NET
default y
help
This is help desciption¡£
...
endmenu
°üº¬ÔÚmenu/endmenuÖеÄÄÚÈÝ»á³ÉΪNetwork device supportµÄ×Ӳ˵¥¡£Ã¿Ò»¸ö×Ӳ˵¥Ïî¶¼ÊÇÓÉconfigÀ´¶¨ÒåµÄ¡£congfigÏ·½µÄÄÇЩbool¡¢depends on¡¢default¡¢helpµÈΪconfigµÄÊôÐÔ£¬ÓÃÓÚ¶¨Òå¸Ã²Ëµ¥ÏîµÄÀàÐÍ¡¢ÒÀÀµÏĬÈÏÖµ¡¢°ïÖúÐÅÏ¢µÈ¡£
2. ²¹³ä˵Ã÷Ò»ÏÂÀàÐͶ¨Ò岿·Ö£º
ÿ¸öconfig²Ëµ¥Ïî¶¼ÒªÓÐÀàÐͶ¨Òå: bool²¼¶ûÀàÐÍ¡¢ tristateÈý̬(ÄÚ½¨¡¢Ä£¿é¡¢ÒƳý)¡¢string×Ö·û´®¡¢ hexÊ®Áù½øÖÆ¡¢ integerÕûÐÍ¡£
ÀýÈ磺
config HELLO_MODULE
bool "hello test module"
bool ÀàÐ͵ÄÖ»ÄÜÑ¡Öлò²»Ñ¡ÖУ¬ÏÔʾΪ[ ]; tristateÀàÐ͵IJ˵¥Ïî¶àÁ˱àÒë³ÉÄÚºËÄ£¿éµÄÑ¡ÏÏÔʾΪ< > , ¼ÙÈçÑ¡Ôñ±àÒë³ÉÄÚºËÄ£¿é£¬Ôò»áÔÚ.configÖÐÉú³ÉÒ»¸ö CONFIG_HELLO_MODULE=mµÄÅäÖ㬼ÙÈçÑ¡ÔñÄÚ½¨£¬¾ÍÊÇÖ±½Ó±àÒë³ÉÄÚºËÓ°Ï죬¾Í»áÔÚ.configÖÐÉú³ÉÒ»¸ö CONFIG_HELLO_MODULE=yµÄÅäÖÃ. hexÊ®Áù½øÖÆÀàÐÍÏÔʾΪ£¨ £©¡£
3. Ŀ¼²ã´Îµü´ú
ÔÚKconfigÖÐÓÐÀàËÆÓï¾ä£ºsource "drivers/usb/Kconfig"
ÓÃÀ´°üº¬£¨»òǶÌ×£©ÐµÄKconfigÎļþ£¬ÕâÑù±ã¿ÉÒÔʹ¸
Ïà¹ØÎĵµ£º
Ŀ ¼
1.1 ǰÑÔ£º... 4
1.2 °²×°¼°ÅäÖò½Ö裺... 4
1.2.1 £º°²×°×¼±¸... 4
1.2.2 £º°²×°·½Ê½Ñ¡Ôñ... 4
1.2.3 £º¹âÅ̼ì²â... 5
1.2.4 £º»¶Ó½çÃæ... 5
1.2.5 £ºÑ¡Ôñ°²×°¹ý³ÌµÄÓïÑÔ¡£... 6
1.2.6 £º¼üÅ̺ÍÊó±êÉèÖÃ... 6
1.2.7 £º´ÅÅÌ·ÖÇø·½Ê½Ñ¡Ôñ... 7
1.2.8 £º¸ñʽ»¯È·ÈÏÐÅÏ¢... 8
1.2.9 £º½¨·ÖÇø... 8
1. ......
system.mapÄÚÈݸñʽΪ£ºÏßÐÔµØÖ· ÀàÐÍ ·ûºÅ
¾ßÌåÄÚÈÝÈçÏ£º
00100000 A phys_startup_32
c0100000 T startup_32
c0100000 A _text ×¢:±í ......
ÄãÊÇ·ñÏë½øÈëǶÈëʽ¸ßнÁìÓò£¬È´¸Ð¾õÎÞ´ÓÏÂÊÖ£¿
ÄãÊÇ·ñÔÚ¿´Êé¡¢²é×ÊÁÏ¡¢ÂÛ̳ÌáÎÊÖлºÂý¶ø³ÔÁ¦µÄǰÐУ¿
ʱ¼ä±ãÊdzɱ¾£¡Ñ§Ï°µÄ·ÉÏ£¬ÎÒÃǸüÐèҪר¼ÒϵͳµÄÖ¸Òý£¬ÕâÑù»áʰ빦±¶£¡
»ªÇåÔ¶¼û—ǶÈëʽLinuxÈëÃÅʵսÃâ·ÑÌåÑéÈÕ£¬Ò»ÌìµÄʱ¼ä£¬½â¾öÄúµÄ·³ÄÕ£¬¾ø¶Ô³¬ÖµµÄ»Ø±¨£¡
ÓÅÊÆ/ÌØÉ«£º
¡ñ ÄÚÈÝ£¬´«ÊÚ×îϵͳ£¬×îʵÓÃµÄ ......
±¾ÎĽéÉÜÔÚGNU/Linux»·¾³ÏÂÒ»¸öC³ÌÐòÓÉÔ´´úÂëµ½³ÌÐò£¬µ½¼ÓÔØÔËÐУ¬×îºóÖÕÖ¹µÄ¹ý³Ì¡£Í¬Ê±ÒԴ˹ý³ÌÎªÔØÌ壬½éÉÜGNU/Linuxƽ̨ÏÂÈí¼þ¿ª·¢¹¤¾ßµÄʹÓá£
±¾ÎÄÒÔÎÒÃÇ×î³£¼ûµÄhello, world!ΪÀý£º
#include <stdio.h>
main ()
{
printf(“hello, world!\n” ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
Linux
·¢ÐаæÓжàÉÙ£¿ÊDz»ÊÇÌ«¶àÁË£¿Êµ¼ÊÇé¿ö¾¿¾¹ÔõÑù£¿
×òÌìÉÏÎ磬Îһص½ÈËÃñ´óѧУ԰£¬¼ûµ½¼¸Î»
20
¶àÄêǰµÄÀÏͬÊ£¬ËûÃÇÈÔÈ»¼áÊØ¹¤×÷¸Úλ ......