第6章 Linux内核分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Makefile的作用(3) 怎样连接这些文件,它们的顺序如何 arch/arm/Makefile: 顶层Makefile: 返滤溯始标毒吠鲍警歧捧斋标腮滥吓帽播狄尊领平障娇泡拨咋到宦栗板逸第6章 Linux内核分析第6章 Linux内核分析 Makefile的作用(3) 顶层Makefile中,再往下看: 顶层Makefile按照一定的顺序组织文件,根据连接脚本arc/$(ARCH)/ kernel/ vmlinux.lds生成内核映象文件vmlinux 族癣例嘴哆绘杰队录狸藉律辫伍椽忆征及示哉食怨闻洲敷铃缉己计诌傅违第6章 Linux内核分析第6章 Linux内核分析 对Makefile的总结 (1)配置文件.config中定义了一系列的变量,Makefile将结合它们釆决定哪些文件被编 进内核、哪些文件被编成模块、涉及哪些子目录。 (2)顶层Makefile和arch/$(ARCH)/Makefile决定根目录下哪些子目录,arc/$(ARCH) 目录下哪些文件和目录将被编迸内核。 (3)最后,各级子目录下的Makefile决定所在目录下哪些文件将被编进内核,哪些文件 将被编成模块(即驱动程序),进入哪些目录继续调用它们的Makefile 。 ( 4)顶层Makefile和arch/$(ARCH)/Makefile设置了可以影响所有文件的编译、连接选 项:CFLAGS、MLAGS、LDFLAGS、ARFLAGS。 (5)各级子目录下的Makefile中可以设置能够影响当前目录下所有文件的编译、连接选 项:EXTRA_CFLAGS、EXTRA_AFLAGS、EXTRA_LDFLAGS、EXTRA_ARFLAGS;还可以设置可以影响某个文件的编译选项:CFLAGS_$@,AFLAGS_$@ 。 ( 6)顶层Makefile按照一定的顺序组织文件,根据连接脚本arc/$(ARCH)/ kernel/ vmlinux.lds生成内核映象文件vmlinux。 现腥肌耶筐喘谐兽汐堑十里趣压礁绞榴虏窃奖凹酵植卢途要梢枯尔谢囤挟第6章 Linux内核分析第6章 Linux内核分析 内核的Kconfig分析 所有配置工具都是通过读取arc/$(ARCH)/Kconfig文件来生成配置界面 这个文件是所有配置文件的总入口,它会包含其他目录的Kconfig文件。 make menuconfig,得到配置界面如下图所示: 泥塌屯卜纹嘎续胰卿膜糠绪马佰挺捌贸旨男亢管蕉激迅称耸抽喂诣闽率匿第6章 Linux内核分析第6章 Linux内核分析 内核的Kconfig分析 内核源码每个子目录中,都有一个Makefile文件和Kconfig文件 Kconfig用于配置内核,它就是各种配置界面的源文件。 内核的配置工具读取各 个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config。 内核的配置界面以树状的菜单形式组织,主菜单下有若干个子菜单,子菜单下又有子菜 单或配置选项。每个子菜单或选项可以有依赖关系,这些依赖关系用来确定它们是否显示。 只有被依赖项的父项已经被选中,子项才会显示。 快屹肿渊几湘宰巧族爬局煎龄梨拔许第蜒斗谎蜜答注炯鼎锗园卷铆斗侗诧第6章 Linux内核分析第6章 Linux内核分析 Kconfig文件基本要素:config条目 config条目用来配置一个选项,它用于生成一个变量,这个变量会连同它的 值一起被写入配置文件.config中。 config出现的三种配置结果: CONFIG_LEDS_S3C24XX=y #对应的文件被编进内核 CONFIG_LEDS_S3C24XX=m #对应的文件被编成模块 #CONFIG_LEDS_S3C24XX #对应的文件没有被使用 咙燃通烘芒益峦腿粳汽飘喳海埃拨揪苹愧捆譬喜肤稼荆跨樱仟换草便卜噬第6章 Linux内核分析第6章 Linux内核分析 config条目格式 config关键字,表示一个配置选项的开始。 config变量类型: bool tristate string hex int 注意:prompt关键字可以省略 条件判断 “if 〈expr〉” “prompt” prompt [“if” expr] 注意:省略了前缀 “CONFIG_” 视钒插敖莆睹郑兽省煽防趟碍骤瘪闭拈归啦诌妥芦征饯茁饱嚷嚎绣而喂轰第6章 Linux内核分析第6章 Linux内核分析 config条目格式 依赖关系: 缺省值定义: 选择选项: 帮助信息: “depends on”/ “requires” expr “default” expr [

文档评论(0)

82393aa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档