第9课 u-boot分析
1. u-boot打补丁
u-boot功能,结构,结合 Makefile进行分析
u-boot命令分析
2. u-boot的核心,命令
实例
添加一个命令
3. 启动内核的过程分析
读出内核
uImage头部
设置启动参数:TAG
首先看Windows是怎么启动的
一上电àBIOSà引导操作系统à识别出C、D盘
对比嵌入式系统
一上电àbootloaderà引导内核à挂接根文件系统à应用程序
bootloader最终目的是启动内核
配套开发版光盘system目录下
是网上下载没有经过任何修改的压缩包和补丁
所谓补丁就是对原码的修改列出来,然后发布,给别人不定就行了,因为原码是公开的
打开补丁观察
--代表原来的代码
++代表修改后的代码
-34,6表示原来的代码从第34行起有6行
-34,8表示原来的代码从第34行起有8行
打补丁打到哪去
开头有写
tar xjf u-boot-1.1.6.tar.bz2 //解压
显然我们已经在 u-boot-1.1.6里了所以第一个斜杠后的地址才有意义,怎么忽略第一个斜杠的东西呢?
patch -p1 < ../u-boot-1.1.6_jz2440.patch
- 解压缩
- 打补丁 patch -p(忽略第几个斜杠) < ..补丁文件
- 配置 make 100ask24x0_config
- 编译
uboot的最终目的是启动内核
- 从Flash上读出内核,放到SDRAM
- 启动内核
由此得出uboot的主要功能是:
- 读Flash+写Flash(为开发方便)
- 关看门狗,初始化时钟,初始化SDRAM(硬件相关的初始化)
- 启动内核
为了开发方便,添加的功能:
- 写Flash
- 网卡
- USB
- 串口