内核架构---Makefile、Kconfig、.config文件分析

前提

内核是一个大文件,里面有很多的驱动,内核中大部分都是使用DTS和driver机制:即device和driver分开写的,通过platform总线链接在一起。device这里就不过多描述,他主要就是一些设备的资源信息。

这篇文章我们主要看driver端,也就是驱动端的架构。

具体结构

这里我们先描述一些基础知识:

1、Makefile文件作用,Makefile文件就是一个编译脚本,最大的特点就是方便,一个目录下面有很多的.c文件,假如没有Makefile的话,就得一个个单独编译,多费事啊!给需要编译的文件都写Makefile里面,make一下一键编译多方便哇

2、 Kconfig文件是搭配makefile文件一起使用。Makefile里面编译的模块是从Kconfig中选取出来的

3、 .config文件就是控制和选择那些文件编译或者不编译的。

以上三点总结就是:

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

遍历每个源码目录(或配置指定的源码目录)Makefile
每个目录的Makefile 会根据Kconfig来定制要编译对象
回到顶层目录的Makeifle执行编译

obj -xxx += yyy.o
xxx = m 表示默认编译为模块
xxx = n 表示默认不编译
xxx = y 表示编译进内核


在pcmcia驱动中有这些文件
在这里插入图片描述
我们看一下pcmcia目录下的Makefile文件
在这里插入图片描述
再看一下pcmcia目录下的Kconfig文件
在这里插入图片描述
makefile中选择编译了三个文件:

obj-$(CONFIG_SYNCLINK_CS) += synclink_cs.o
obj-$(CONFIG_CARDMAN_4000) += cm4000_cs.o
obj-$(CONFIG_CARDMAN_4040) += cm4040_cs.o

我们在Kconfig目录下面都能找到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再到pcmcia目录的上层目录中
在这里插入图片描述
看一下上层目录中的Makefile和Kconfig文件
在这里插入图片描述
可以看到图中标黄的部分,调用了pcmcia目录下的makefile
再看Kconfig
在这里插入图片描述
一样也调用了pcmcia目录下的Kconfig文件。
就这样一层调一层,一直到顶层源码的makefile


2021/10/12 未更完,先更这么多。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值