Kconfig文件的用途及解析

2023-05-16

1、Kconfig文件的作用

首先,内核编译代码的大概过程如下:
遍历每个源码目录Makefile => 根据每个目录的Kconfig来配置Makefile,定制要编译的对象 => 回到顶层目录的Makefile执行编译。
因此各个文件的作用如下:

  • Kconfig
    每个源码目录下提供选项
  • .config
    源码顶层目录下保存选择结果
  • Makefile
    每个源码目录下根据.config中的内容来告知编译系统如何编译

Kconfig文件配置了哪些文件需要编译,哪些文件不用编译。

2、语法解析

语法可以参考源码中的文档说明,路径如下:

Documentation/kbuild/kconfig-language.txt

自己目前用的比较多的如下:

config AUTO_DETECT_ACCELEROMETER
	bool "AUTO DETECT ACCELEROMETER Sensor"
	depends on SENSOR_SUPPORT
	help
	  one load to support different accelerometer sensor.
	  If this option is set, multiple accelerometer driver
	  can be configured at the same time, but only one
	  can be probed.

depend on:表示当前的AUTO_DETECT_ACCELEROMETER配置依赖于SENSOR_SUPPORT配置。

3、注意点
  • Kconfig文件中和Makefile文件中定义的名字不同,缺少一个config前缀:
// Kconfig文件
config CUSTOM_KERNEL_SIGNIFICANT_MOTION_SENSOR
	bool "open significant motion"
	help
	  Kernel space sigificant motion sensor driver.
// Makefile文件
obj-$(CONFIG_CUSTOM_KERNEL_SIGNIFICANT_MOTION_SENSOR)	+= step_counter/
  • 在上一层目录的Kconfig文件中添加配置
source "drivers/misc/mediatek/sensors-1.0/step_counter/Kconfig"
4、遇到的问题

Kconfig文件中定义的宏控和config文件中定义的不一致,导致不能编译生成指定的文件。

参考资料

1.https://blog.csdn.net/jianwen_hi/article/details/53398141

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kconfig文件的用途及解析 的相关文章

  • ARM常用重要的寄存器及指令解释 和 指令英文全称

    一 常用的寄存器 r0 r3 临时变量 用于传递参数 xff0c 传递返回指 xff0c 当传递参数的参数大于4个时 xff0c 用栈空间 即开辟sp fp xff1a frame pointer 记录回溯sp ip 很少用 xff0c 临
  • 数据标准化处理

    一 为什么进行标准化处理 在多指标评价体系中 xff0c 由于各评价指标的性质不同 xff0c 通常具有不同的量纲和数量级 当各指标间的水平相差很大时 xff0c 如果直接用原始指标值进行分析 xff0c 就会突出数值较高的指标在综合分析中
  • ubuntu14.04 eclipse安装svn插件 遇到的问题 Incompatible JavaHL library loaded. 1.7.x or later required.

    转载请注明转自 xff1a http write blog csdn net postedit eclipse svn的插件无法使用 xff0c 很是纠结 后来发现是安装版本兼容行的问题 默认安装svn 默认版本是1 8 x javaHL
  • Error:Execution failed for task ':app:dexDebug'.> com.android.ide.common.process.ProcessException: o

    出现上述问题 检查下是否多次引用同一个jar包 有以下情况 1 module下jar包版本不同 2 同一个module 在libs中包含了 jar xff0c 而在src下又把相应的source页加入了 3 gradle中是否重复编译 xf
  • android开发中遇到的问题汇总【九】

    244 http请求的url含有中字符时 xff0c 需要Uri编码 Uri encoder 245 使用androidstudio时 xff0c 不知道什么原因svn不见了 Android Studio missing Subversio
  • android音视频点/直播模块开发

    前言 随着音视频领域的火热 xff0c 在很多领域 xff08 教育 xff0c 游戏 xff0c 娱乐 xff0c 体育 xff0c 跑步 xff0c 餐饮 xff0c 音乐等 xff09 尝试做音视频直播 点播功能 xff0c 那么作为
  • ubuntu安装xgboost,CPU版和GPU版配置

    ubuntu安装xgboost CPU版 第一种方法采用pip安装 xff1a pip install xgboost出现如下报错 xff1a Command 34 python setup py egg info 34 failed wi
  • vmware 下通过Gparted 扩容ubuntu更目录磁盘

    情景 xff1a 因为要扩容的盘挂载在根目录下 xff0c 所以没法直接在ubuntu运行时候用gparted来进行扩容 1 gparted官网下载iso文件 网址 xff1a https sourceforge net projects
  • 批处理窗口自动关闭和暂停办法

    运行bat批处理方式不同 xff0c 处理也不同 一 在资源管理器中 xff0c 双击bat文件方法运行批处理 1 这种方式 xff0c 默认是运行完自动关闭cmd窗口 2 需要运行完批处理 xff0c 然后停留在cmd窗口 xff0c 可
  • 一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验

    连续几天我们收到几位客户的问题工单 xff0c 问题描述都类似 xff0c 都是在做登陆或者交易时报脚本错误 xff0c 交易无法正常执行 我们 远程协助 客户机器时 xff0c 调试发现都是ajax代码出错 xff0c 错误如下 xff1
  • Java异常的另类用法(一)

    异常在我们的代码中是不可避免的 xff0c 有些异常可以忽略 xff0c 多数的异常我们要显式处理 xff08 至少要记录日志 xff0c 以便后面排查问题 xff09 xff0c 这里我们不是要细说异常的处理规范 xff0c 而是使用异常
  • 使用POI在Excel单元格插入符号(Symbol)

    最近看到有人在 技术问答 上提问怎么用java在excel中插入打勾符号 xff1f 我想解决这个问题并不难 我们先打开一个excel文件 xff0c 在里面插入特定符号 xff0c 然后用poi xff08 其他的技术也可以 xff09
  • 系统中定义的一些常见的错误

    ifndef ARM ERRNO H define ARM ERRNO H define EPERM 1 Operation not permitted define ENOENT 2 No such file or directory d
  • Eclipse下C语言的Socket编程(Winsock,gcc)问题总结

    最近心血来潮想从新温习一下C语言 xff08 工作后一直用Java xff0c 其实大学时C语言课程也没好好上 xff0c 正经的代码基本没写过 xff0c 惭愧啊 xff01 xff09 xff0c 找了些小例子 xff0c 修修改改 x
  • 各种哈希函数的java实现

    收集整理 public class HashUtils br private static final int crctab 61 0x00000000 0x77073096 0xee0e612c 0x990951ba br 0x076dc
  • 连接远程linux服务器

    SSH简介 我们在 搭建服务器时通常选择Linux版本 xff0c 如果远程的服务器没有桌面 xff0c mac电脑如何在本地操作远程的服务器呢 方法是很简单的 xff0c mac电脑为我们提供了ssh命令 xff0c 使用这个命令可以快速
  • ArcEngine错误提示

    整理了一下Arcgisengine错误代码 xff0c 希望能帮到大家 错误代码错误描述错误名称HRESULT 0x80040201 Failed to load a resource string icon bitmap etc LOAD

随机推荐