我是靠谱客的博主 拼搏灰狼,最近开发中收集的这篇文章主要介绍Kconfig文件详解1、Kconfig的格式2、tristate和bool的含义3、depends的含义4、help5、Kconfig和.config文件和Makefile三者的关联,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、Kconfig的格式

(1)Kconfig按照一定的格式来书写,menuconfig程序可以识别这种格式,然后从中提取出有效信息组成menuconfig中的菜单项。

(2)将来在做驱动移植等工作时,有时需要自己添加Kconfig中的一个配置项来将某个设备驱动添加到内核的配置项目中,这时候就需要对Kconfig的配置项格式有所了解。

(3)#开头的行是注释行。

(4)menuconfig表示菜单(本身属于一个菜单中的项目,但是其又有子菜单项目)、config表示菜单中的一个配置项(本身并没有子菜单下的项目)。

(5)menuconfig或者config后面用空格隔开的大写字母,表示的就是这个配置项的配置项名字。这个字符串前面添加CONFIG_后就构成了.config中的配置项名字。

(6)一个menuconfig后面跟着的所有config项就是这个menuconfig的子菜单。这就是Kconfig中表示的目录关系。

(7)内核源码目录树中每一个Kconfig都会source引入其所有子目录下的Kconfig,从而保证了所有的Kconfig项目都被包含进menuconfig中。

  • 如果在linux内核中添加一个文件夹,一定要在这个文件夹下创建一个Kconfig文件,然后在这个文件夹的上一层目录的Kconfig中source引入这个文件夹下的Kconfig文件。 source "drivers/input/fingerprint/Kconfig"          

 

2、tristate和bool的含义

tristate意思是三态(3种状态,对应Y、N、M三种选择方式),bool是要么真要么假(对应Y和N)。

  • tristate的意思就是这个配置项可以有三种选择;
  • bool的意思是这个配置项只能有2种选择。

 

3、depends的含义

(1)本配置项依赖于另一个配置项。

  • 如果那个依赖的配置项为Y或者M,则本配置项才有意义;如果依赖的哪个配置项本身被设置为N,则本配置项根本没有意义。

(2)depends项目会导致make menuconfig的时候找不到一些配置项。

  • 所以在menuconfig中如果找不到一个选项,但是这个选项在Kconfig中却是有的,则可能的原因就是这个配置项依赖的一个配置项是不成立的。

(3)depends并不要求依赖的配置项一定是一个,可以是多个,而且还可以有逻辑运算。此时只要依赖项目运算式子的逻辑结果为真则依赖就成立。

 

4、help

帮助信息,告诉我们这个配置项的含义,以及如何去配置他。

 

5、Kconfig和.config文件和Makefile三者的关联

(1)配置项被配置成Y、N、M会影响.config文件中的CONFIG_XXX变量的配置值。

(2).config中的配置值(=y、=m、没有)会影响最终的编译链接过程。

  • 如果=y则会被编入(built-in),如果=m会被单独连接成一个ko模块,如果没有则对应的代码不会被编译。这是怎么实现的?都是通过makefile实现的。

(3)obj-$(CONFIG_DM9000) += dm9000.o

  • 如果CONFIG_DM9000变量值为y,则obj += dm9000.o,因此dm9000.c会被编译;
  • 如果CONFIG_DM9000变量未定义,则dm9000.c不会被编译。
  • 如果CONFIG_DM9000变量的值为m,则会被连接成ko模块。
  • 这些都是在linux内核的Makefile中定义的规则。

总结:把menuconfig中的菜单项、Kconfig中的配置项、.config中的一行、 Makefile中的一行,这4个东西结合起来理解。

最后

以上就是拼搏灰狼为你收集整理的Kconfig文件详解1、Kconfig的格式2、tristate和bool的含义3、depends的含义4、help5、Kconfig和.config文件和Makefile三者的关联的全部内容,希望文章能够帮你解决Kconfig文件详解1、Kconfig的格式2、tristate和bool的含义3、depends的含义4、help5、Kconfig和.config文件和Makefile三者的关联所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部