kernel&uboot学习笔记

uboot

kernel

 

uboot

 1、Uboot编译流程分析: uboot是如何编译生成的?

 2、根据include/configs/$(target).h可以生成include/autoconf.mk。

 3、Uboot_env 分析

 4、uboot 之 run_command函数的实现

 5、uboot之bootm、go以及uImage的格式

 6、u-boot-2014.04代码分析(配置、启动、内存分布)

 

7、u-boot-2014_04在TQ2440上的移植

 

 

 

 

 

 

 

 


 

kernel

 

 1、由.config生成的autoconf.h的位置: include/generated/autoconf.h 或者 include/linux/autoconf.h ,比较新的内核使用的前者。

2、Linux的Makefile的五个部分:

 

Makefile

顶层Makefile

.config

内核配置文件

arch/$(ARCH)/Makefile

具体架构的Makefile

scripts/Makefile.*

通用的规则等。面向所有的Kbuild Makefiles。

kbuild Makefiles

内核源代码中大约有500个这样的文件

 

 Kernel Makefile位于Linux内核源代码的顶层目录,也叫 Top Makefile。它主要用于指定编译Linux Kernel目标文件(vmlinux)和模块(module)。这编译内核或模块是,这个文件会被首先 读取,并根据读到的内容配置编译环境变量。对于内核或驱动开发人员来说,这个文件几乎不用任何修改。

 Kbuild系统使用Kbuild Makefile来编译内核或模块。当Kernel Makefile被解析完成后,Kbuild会读取相关的Kbuild Makefile进行内核或模块的编译。Kbuild Makefile有特定的语法指定哪些编译进内核中、哪些编译为模块、及对应的源文件是什么等。内核及驱动开发人员需要编写这个Kbuild Makefile文件。

ARCH Makefile位于ARCH/$(ARCH)/Makefile,是系统对应平台的Makefile。Kernel Top Makefile会包含这个文件来指定平台相关信息。只有平台开发人员会关心这个文件。

Kbuild Makefile的文件名不一定是Makefile,尽管推荐使用Makefile这个名字。 大多的Kbuild文件的名字都是Makefile。为了与其他Makefile文件相区别,你也可以指定Kbuild Makefile的名字为Kbuild。 而且如果“Makefile”和“Kbuild”文件同时存在,则Kbuild系统会使用“Kbuild”文件。

 

 3、 以linux开头的的头文件,如<linux/file.h>对应源码目录树的include/linux/file.h
       以asm开头的头文件,如<asm/file.h>对应源码目录树的arch/***/include/asm/file.h, 其中***对应某个具体的平台。

 4、Linux内核编译流程分析

 5、编译最新内核使用的工具链:

          https://www.kernel.org/pub/tools/crosstool/

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/pengdonglin137/p/3623450.html