手把手教你写Kconfig---基于tiny4412开发板(增强版)
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 #else #endif如何做一个目录型选项,关键字menu
if you ...
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 .... endmenu4、在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 ... endchoice6、配置依赖模块
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 ...
morixinguan ITGEGE在线教育嵌入式开发讲师。 CSDN博客专家、CSDN-Linux特邀编辑、CSDN博乐、CSDN学院讲师,目前从事嵌入式开发领域,从事与单片机,Linux,android相关的产品开发。
相关文章
- 如何基于MindSpore实现万亿级参数模型算法?
- 基于Nonebot2实现QQ聊天机器人商品查询【Nonebot插件教程】
- 有监督学习神经网络的回归拟合——基于红外光谱的汽油辛烷值预测(Matlab代码实现)
- 基于知识图谱的个性化学习推荐系统的设计与实现_kaic
- B.数据挖掘机器学习[七]---2021研究生数学建模B题空气质量预报二次建模求解过程:基于Stacking机器学习混合模型的空气质量预测{含码源+pdf文章}
- [VTK]基于VTK的三维重建
- 基于FFMPEG SDK流媒体开发1---解码媒体文件流信息
- .NET Core 基于Websocket的在线聊天室
- 基于物联网技术的4G小型太阳能光伏蓄电池采集系统
- 如何使用云容器搭建基于CentOS7的Hadoop2.x伪分布式环境(CSDN开发者云平台使用初体验)
- 手把手教你写Linux设备驱动---定时器(一)(基于友善之臂4412开发板)
- Python:基于词频、TF-IDF 生成词云图
- Android事件处理方法总结-基于回调的事件处理