一. Linux内核源码目录
之前文章对 Linux内核源码的文件做了大体的了解,如下:
IMX6ULL移植篇-Linux内核源码文件表_凌肖战的博客-CSDN博客
本文具体说明 Linux内核源码的一些重要文件含义。
二. Linux内核源码中重要文件分析
1. arch 目录
 这个目录是和架构有关的目录,比如  arm 、 arm64 、 avr32 、 x86  等等架构。每种架构都对应  
 
 一个目录,在这些目录中又有很多子目录,比如  boot 、 common 、 configs  等等。 
 
 
 以  arch/arm  为例,其子目录如下: 
 
 
 
 
 以上是  arch/arm  的一部分子目录,这些子目录用于控制系统引导、系统调用、动态调 频、主频设置等。 
 
 
 arch/arm/boot  目录下会保存编译出来的  Image  和  zImage  镜像文件,而  zImage  就是我们要  
 
 用的  linux  镜像文件。 
 
arch/arm/boot/dts 目录下,存放 Linux内核所有设备树文件,包括 dts 编译后对应的设备树文件( .dtb文件)。
 arch/arm/configs  目录是不同平台的默认配置文件:xxx_defconfig。 在  arch/arm/configs  中就包含有  I.MX6U-ALPHA  开发板的默认配置文件: imx_v7_defconfig,执行 “ make imx_v7_defconfig ” 即可完成配置。 
  
arch/arm/mach-xxx 目录分别为相应平台的驱动和初始化文件,比如 mach-imx 目录里面就是 I.MX 系列 CPU 的驱动和初始化文件。
2. block目录
block 是 Linux 下块设备目录,像 SD 卡、EMMC、NAND、硬盘等存储设备就属于块设备, block 目录中存放着管理块设备的相关文件。
3. crypto 目录
 crypto  目录里面存放着加密文件,比如常见的  crc 、 crc32 、 md4 、 md5 、 hash  等加密算法。 
 
 
 
4. Documentation 目录
 此目录里面存放着  Linux  相关的文档,如果要想了解  Linux  某个功能模块或驱动架构的功 能,就可以在  Documentation  目录中查找有没有对应的文档。  
 
 
Documentation/devicetree/bindings 目录下的文档很重要!是设备树的绑定信息。
5. drivers 目录
 驱动目录文件,此目录根据驱动类型的不同,分门别类进行整理,比如  drivers/i2c  就是  I2C  
 
 相关驱动目录, drivers/gpio  就是  GPIO  相关的驱动目录,这是我们学习的重点。  
 
 
 
 
6. firmware 目录
 此目录用于存放固件。 有一些外设或模块需要加载的固件。 
 
 
 
 
 
 
 
 
7. fs 目录
 此目录存放文件系统,例如  fs/ext2 、 fs/ext4 、 fs/f2fs  等,分别是  ext2 、 ext4  和  f2fs  等文件系  
  统。 
 
8. include 目录
 存放头文件的目录。  
 
下一篇继续了解 Linux内核源码文件。