我是靠谱客的博主 着急星月,最近开发中收集的这篇文章主要介绍Kconfig语法详解--结合示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Kconfig语法

bool/tristate/int/hex/string属性

  bool  值为y或n
  tristate  值为y或m或n
  string  值为字符串
  int  值为十进制整数
  hex  值为十六进制整数

这几个属性一般必有一个。

default属性

表示缺省值,意思就是系统默认属性

help属性

这个属性是简介,没有啥实际作用,主要是写一些信息备注一类的

示例:
我在char目录的Kconfig下添加了一个新的驱动

config JASON1
	tristate "MY JASON1 TEXT"
	default m
	help
	 my jason1

再在Makefile下添加编译:

obj-$(CONFIG_JASON1) += jason1.o

现在我们打开make menuconfig看看
在这里插入图片描述
可以看到默认就是m,如果我们个default m这句去掉我们在看看!

 PS:
在menuconfig中选择m和 *的区别:
* : 模块驱动编译到内核中,启动时自动加载
M : 标识作为内核模块编译模块会被编译,但是不会被编译到内核中,只是生成.o文件,我们可以收集这些.o文件做
到linux的文件系统中,然后用insmod实现动态加载
空格:表示该功能不编译到内核中,即新的内核将不支持该功能。。

在这里插入图片描述
可以看到去掉default m 后默认就不是m状态了。

depends on属性

当依赖的定义为Y或者M时才会有效,否则不显示。
(比较老的说法是只能Y时候才行,但是实际上Y或者M都行)

上面我们添加了一个JASON1,这里我们在添加一个JASON2

Kconfig:

config JASON1
	tristate "MY JASON1 TEXT"
	help
	 my jason1
	  
config JASON2
	tristate "MY JASON2 TEXT"
	depends on JASON1
	help
	 my jason2

Makefile

obj-$(CONFIG_JASON1) += jason1.o
obj-$(CONFIG_JASON2) += jason2.o

再打开make menuconfig看看
在这里插入图片描述
给JASON1选中为Y
在这里插入图片描述
select 属性

当前选项选中后则select后指定的选项自动被选择

Kconfig

config JASON1
	tristate "MY JASON1 TEXT"
	depends on JASON3
	help
	 my jason1
	  
config JASON2
	tristate "MY JASON2 TEXT"
	select JASON1
	help
	 my jason2s

config JASON3
	tristate "MY JASON3 TEXT"
	help
	 my jason3s
	 

Makefile

obj-$(CONFIG_JASON1) += jason1.o
obj-$(CONFIG_JASON2) += jason2.o
obj-$(CONFIG_JASON3) += jason3.o

在这里插入图片描述
选中JASON3
在这里插入图片描述
可以看到JASON1出来了
选择JASON2为M
在这里插入图片描述
可以看到JASON1自动被选择为M
JASON2选择为上面JASON1就会自动被置为什么。


目前暂时遇到这么多,后续遇到别的属性会继续更!2021/10/12 17.34

最后

以上就是着急星月为你收集整理的Kconfig语法详解--结合示例的全部内容,希望文章能够帮你解决Kconfig语法详解--结合示例所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部