手把手教你写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 ...
	
目录
相关文章
|
资源调度 JavaScript 前端开发
【TypeScript】TS 看这一篇就够了
【TypeScript】TS 看这一篇就够了
1420 0
|
8月前
|
数据可视化 JavaScript 小程序
1.3K star!VisActor团队开源神器,3秒生成商业级图表,程序员直呼真香!
VChart是由VisActor团队推出的高性能可视化解决方案,GitHub上已获2.3k+星标。它支持Web、小程序和Node.js多端适配,具备百万级数据流畅渲染、20+图表类型深度定制等优势。核心功能包括声明式语法、智能图表推荐及企业级扩展能力。适用于金融大屏、商业智能、工业物联网等场景,提供极简代码实现商业级数据可视化。
183 0
|
存储 SQL 缓存
探秘WebSQL:轻松构建前端数据库
探秘WebSQL:轻松构建前端数据库
418 0
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
Ubuntu
Ubuntu22.04,AOSP编译报错: libncurses.so.5: cannot open shared object file: No such file
本文描述了在Ubuntu 22.04系统上编译AOSP时遇到的`libncurses.so.5`缺失错误,并提供了通过安装相应库解决该问题的步骤。
2212 0
|
算法 数据中心 Python
基于python雪花算法工具类Snowflake-来自chatGPT
基于python雪花算法工具类Snowflake-来自chatGPT
246 4
|
存储 弹性计算 大数据
阿里云4核16G配置云服务器价格多少钱?2024年阿里云4核16G配置云服务器性能测评参考
阿里云4核16G配置云服务器的价格根据实例规格和促销活动的不同而有所变化。以ECS云服务器经济型e实例为例,其价格为26元1个月、149元半年或79元3个月。此外,还有其他实例规格可供选择,如通用型g7、通用型g8i、AMD通用型g8a、性能增强通用型g8ae、高主频通用型hfg8i、AMD通用型g7a、内存型r7p等。 在性能测评方面,阿里云4核16G配置的云服务器采用了英特尔E5-2680v4处理器,具备良好的扩展性,可以满足大多数中小型企业或个人开发者的需求。此外,阿里云提供的特价4核16G服务器还配备了10M公网带宽和100GB ESSD Entry系统盘,提供了良好的网络性能和存储
560 0
|
网络协议 Linux Android开发
从事十年嵌入式转内核开发(23K到45K),给兄弟们的一些建议
从事十年嵌入式转内核开发(23K到45K),给兄弟们的一些建议
|
数据安全/隐私保护 C++
c++面向对象程序设计——基类和派生类(一)
c++面向对象程序设计——基类和派生类(一)
665 0