linux内核-3.Linux 内核启动流程
摘要:1 链接脚本vmlinux.lds 先编译一下 Linux 源码,因为有很多文件是需要编译才会生成的。首先分析 Linux 内核的连接脚本文件 arch/arm/kernel/vmlinux.lds,通过链接脚本可以找到 Linux 内核的第一行程序是从哪里执行的。vmlinux.lds 中有如下代
阅读全文
linux内核-2.Linux内核makefile编译过程
摘要:1 zImage编译 _all 是默认目标,如果使用命令make或者make all编译 Linux 的话此目标就会被匹配。 KBUILD_EXTMOD 为空的,因此194 行的代码成立, 因此_all依赖all。all又依赖vmlinux,开始编译vmlinux。 make ARCH=arm CR
阅读全文
linux内核-1.Linux 内核顶层 Makefile 详解
摘要:1 kernel编译初体验 编译内核之前需要先在 ubuntu 上安装 lzop 库: sudo apt-get install lzop make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean make ARCH=arm CROSS_C
阅读全文
uboot-6_menuconfig/Kbuild图形化配置原理
摘要:1 ncurses 库安装 uboot 或 Linux 内核可以通过输入“make menuconfig”来打开图形化配置界面,menuconfig是一套图形化的配置工具,需要 ncurses 库支持。 sudo apt-get install build-essential sudo apt-ge
阅读全文
uboot-5_bootm/bootz启动内核过程
摘要:1 images 全局变量 不管是 bootz 还是 bootm 命令,启动kernel都会用到images全局变量。images 定义在文件 cmd/bootm.c: include/image.h 中的定义了bootm_headers_t结构:该结构描述的是bootm启动时的头部信息。该结构又包
阅读全文
uboot-4_U-Boot启动流程
摘要:下面以u-boot 2016为例,一行一行分析armv7架构cpu的uboot启动流程,用到的soc是imx6ull为例。总体流程如下:分为2部分:arch级初始化(架构)和板级初始化: 1 reset 函数 1.1 初始化异常向量表 我们知道启动入口是 arch/arm/lib/vectors.S
阅读全文