手把手教你写Kconfig---基于tiny4412开发板(增强版)

简介: Kconfig怎么写的在上节就已经教大家写了。这节我们来写写增强版的,因为Kconfig有太多太多可以配置的,所以这里我就不给出图片演示了,请参考上节的文章,再来看这节大家就会大彻大悟,然后自己去尝试吧。

Kconfig怎么写的在上节就已经教大家写了。

这节我们来写写增强版的,因为Kconfig有太多太多可以配置的,所以这里我就不给出图片演示了,请参考上节的文章,再来看这节大家就会大彻大悟,然后自己去尝试吧。

基本上最常见的配置就是以下的这些。

文章链接如下:

http://blog.csdn.net/morixinguan/article/details/54744237

在make menuconfig添加Kconfig配置简单的选项
有很多的Kconfig组成
./scripts/Kconfig/mconf  arch/arm/Kconfig---->drivers/Kconfig
cd driver/yangyx/
touch Kconfig
vim Kconfig
语法:
config MY_UP
bool "select up.c" //提示
default y          //这里是默认选项,可以为y,也可以为n
help           //帮助选项
If you select this , you will be happy


然后可以用./scripts/Kconfig/mconf 解析 driver/yangyx/Kconfig


这样子很不方便,在上层的Kconfig添加Kconfig
vim 
source "driver/yangyx/Kconfig"
vim include/generated/autoconf.h   会被.c包含
vim inlcude/config/auto.conf   这个文件根据.config生成,而.config是根据make menuconfig来进行生成,内核中的makefile包含了这个文件
在驱动代码中启动条件编译
#include/generated/autoconf.h

#ifdef CONFIG_XXX
	xxx
#else 
	xxx
#endif


config MY_UP
	bool "select up.c" //提示
	default y          //这里是默认选项,可以为y,也可以为n
	help	           //帮助选项
	If you select this , you will be happy
config CONFIG_XXX
    bool "select lcd07"
	default n 
	help
	if you ...
如何做一个目录型选项,关键字menu

1、不能整体选中

menu "my_4412 support"

config ...
	bool ...
	default n
	help
	if ....

endmenu

2、 多级定义(可以整体选中)
menuconfig MY_MENU   定义选项
	bool "anthor menu"
if MY_MENU
	config TEST3
		bool ...
		default n
		help
		if ....	
		
	config ...
	config ...
endif

3、目录套目录,并支持三态选择
menu "my_4412 support"

config ...
	bool ...
	default n
	help
	if ....
config ...
	tristate "test5"    加上tristate表示有三种状态可以配置,M以模块编译,*编译成.o
	default n
	help
	if ....
endmenu
4、在Kconfig中支持依赖关系的条件选项
config My_IIC
	bool ..
	default n
	help
	...
config MY_TS
    bool "my ts"
	default n
	depends on My_IIC     ---->如果没有选中IIC,那么这个选项不会让用户选  ,如果是依赖于多个,可以用&&连接,也可以||,还可以!,根据自己的需求定制
	help
	if ...

5、多选一的选项:
三态的意思就是.o , .ko , 或者不选。

choice 
prompt "selct your driver"
	    config LCD70 
		        bool "lcd70"   这里不能三态
				help ...
				if ...
		config LCD60 
		        bool "lcd70"   这里不能三态
				help ...
				if ...
		config LCD80 
		        bool "lcd70"   这里不能三态
				help ...
				if ...
		config LCD90 
		        bool "lcd70"   这里不能三态
				help ...
				if ...
endchoice
6、配置依赖模块
config MYADC
	    bool "my_adc"
		default n
		help
		if ...
config MY_PM2.5
	    bool "your pm2.5"
		default n
		select MY_ADC    //只要选中MYPM2.5,也会去选择MYADC
		help
		if ...


		
config TEST8
       bool "test8"
	   default n 
	   help 
	   if  ...
if   TEST8
config  TEST9
    bool "test8"
	   default n 
	   help 
	   if  ...
endif
7、配置设置数字的选项
config NUM
    int "thread num"
	default 3
	help
	if ...

8、配置字符串的选项
config MY_STRING
    string "my string"
	default "hello"
	help 
	if ...
	
目录
相关文章
|
9天前
|
Ubuntu 开发工具 虚拟化
Jetson 学习笔记(十六):使用SDK Manager烧录Jetson Nano
这篇博客介绍了如何使用Nvidia SDK Manager烧录Jetson Nano。首先,需要在Ubuntu系统中安装VMware虚拟机和Nvidia SDK Manager。然后,通过连接Jetson Nano并进行一系列设置,包括FC_REC脚接GND,连接HDMI、鼠标键盘和电源线。在Ubuntu上通过lsusb确认设备连接后,使用SDK Manager进行烧录,选择Manual Setup-Jetson Nano,设置用户名和密码,然后点击flash完成安装。完成后,可以断开连接并启动Jetson Nano,进入Ubuntu安装界面。
25 2
Jetson 学习笔记(十六):使用SDK Manager烧录Jetson Nano
|
供应链 Linux 开发工具
Buildroot系统构建学习笔记(以百问网imx6ull开发板为例)
Buildroot系统构建学习笔记(以百问网imx6ull开发板为例)
222 0
|
Linux 编译器 C语言
LVGL V8.2 嵌入式Linux平台使用tslib实现输入接口(以SSD212为例)
LVGL V8.2 嵌入式Linux平台使用tslib实现输入接口(以SSD212为例)
329 0
|
人工智能 物联网 Linux
手把手之如何在嵌入式Linux上运行QT应用程序(以百问网imx6ull开发板为例)
手把手之如何在嵌入式Linux上运行QT应用程序(以百问网imx6ull开发板为例)
1131 0
|
Ubuntu Linux 数据库
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(五)使用Source insight处理代码
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(五)使用Source insight处理代码
211 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(五)使用Source insight处理代码
|
Shell Linux
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十一)makefile的使用(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十一)makefile的使用
151 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十一)makefile的使用(下)
|
Ubuntu Linux C语言
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十一)makefile的使用(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十一)makefile的使用
180 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十一)makefile的使用(上)
|
Ubuntu Linux 开发工具
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
151 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
|
Shell C语言 芯片
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--opencv4 jetson编译mjpg-streamer
嵌入式实践教程--opencv4 jetson编译mjpg-streamer