第二章-Linux内核及内核编程.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章-Linux内核及内核编程概要1

Linux内核及编程 Makefile的作用 顶层Makefile按照一定的顺序组织文件,根据连接脚本arc/$(ARCH)/ kernel/ vmlinux.lds生成内核映象文件vmlinux。 obj–y用来定义哪些文件被编进( built-in)内核。 obj-m用来定义哪些文件被编译成可加载模块( Loadable module )。 lib-y用来定义哪些文件被编成库文件。 obj-y、obj-m还可以用来指定要进入的下一层子目录。 Linux内核及编程 Makefile的主要语法 目标定义 定义哪些内容作为模块编译,哪些要编译并连接进内核。 更常见的做法:根据.config文件中的CONFIG变量来决定文件编译方式,如: obj-y += foo.c:表示要由foo.c或者foo.s文件编译得到foo.o并连接进内核。 obj-$ (CONFIG_ISDN) += isdn.o obj-$(CONFIG_ISDN_PPP_BSDCOMP)+=isdn_bsdc.o Linux内核及编程 Makefile的主要语法 多文件模块的定义 采用模块名加-y或-bojs后缀来定义模块的组成文件。 目录层次迭代 当CONFIG_EXT2_FS的值为y或m时,kbuild将会把ext2目录列入向 下迭代的目标中。 obj-$(CONFIG_EXT2_FS) += ext2.o ext2-y := balloc.o dir.o file.o obj-$ (CONFIG_EXT2_FS) += ext2/ Linux内核及编程 Kconfig分析 一个文本形式的文件,其中主要作用是在内核配置时候,作为配置选项,是各种配置界面的源文件。 内核的配置工具读取各 个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config。 内核的配置界面以树状的菜单形式组织,主菜单下有若干个子菜单,子菜单下又有子菜 单或配置选项。每个子菜单或选项可以有依赖关系,这些依赖关系用来确定它们是否显示。 只有被依赖项的父项已经被选中,子项才会显示。 内核源码每个子目录中,都有一个Makefile文件和Kconfig文件。 Linux内核及编程 Kconfig基本要素 config条目 config条目用来配置一个选项,它用于生成一个变量,这个变量会连同它的 值一起被写入配置文件.config中。 config出现的三种配置结果: config关键字,表示一个配置选项的开始。 CONFIG_LEDS_S3C24XX=y #对应的文件被编进内核 CONFIG_LEDS_S3C24XX=m #对应的文件被编成模块 #CONFIG_LEDS_S3C24XX #对应的文件没有被使用 Linux内核及编程 Kconfig基本要素 config变量类型: bool布尔类型、 tristate三态(内建、模块、移除)、string字符串、 hex十六进制、 integer整型。 条件判断: 依赖关系: 缺省值定义: 注意:省略了前缀 “CONFIG_” “if 〈expr〉” “prompt” prompt [“if” expr] 注意:prompt关键字可以省略 “depends on”/ “requires” expr “default” expr [“if” expr] Linux内核及编程 Kconfig基本要素 选择选项: 帮助信息: “select” symbol [“if” expr] “help” or “---help---” Linux内核及编程 Kconfig基本要素 menu条目 所有处在“menu”和“endmenu”之间的菜单入口都会成为“Floating point emulation”子菜单。而且,所有子菜单选项都会继承父菜单的依赖关系。 menu “Floating point emulation” config FPE_NWFPE …… config FPE_NWFPE_XP …… …… endmenu Linux内核及编程 Kconfig基本要素 choice条目 :将多个类似的配置选项组合在一起,供用户单选或多选,格式如下: “choice” choice options choice block “endchoice” choice prompt “ARM system type” default ARCH_VERSATILE config ARCH_AAEC2000 … config ARCH_INTEGRATOR … endchoice Linux内核及编程

文档评论(0)

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

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

1亿VIP精品文档

相关文档