第一章Uboot开发
一.最终目的:启动内核。
二.学习需要掌握的知识。
1.了解Bootloader的概念
2.掌握Uboot配置,编译,uboot的目录结构和Makefile
4.分析uboot2个阶段的功能,通过源代码。
5.Uboot常用命令,和命令的实现。
6.掌握uboot和内核怎么交互的。
三.Uboot开发流程:
1.解压缩
2.打补丁
3.配置
4.编译
5.下载如开发板执行, 启动内核
四.概念:
1).设置启动参数(设置标记列表):在某个地址0x30000100,按某个格式TAG保存数据
1.Uboot告诉内核一些参数,即设置启动参数
2.跳到入口地址启动内核。
2).flash上存的内核:uImage = 头部 + 真正的内核。
3).头部:in_load加载地址, in_ep入口地址等
in_load加载地址:内核在SDRAM里面的地址,如果加载地址不在开发板指定的内核地址,
则把内核存入开发板指定的内核地址.之后去内核in_ep入口地址启动内核。
in_ep入口地址:
4).环境变量bootargs(命令行参数) :包含三个参数root,init,console
Root =/dev/mtdblock3:根文件系统,相当于windows下的C盘
Init =/linuxrc:第一个应用程序
Console =ttySAC0:内核打印信息打印出来,这里是串口0
5).分区:每个硬盘上都有分区表,在嵌入式linux中Flash中没有分区表。只能在源码里面写死了。
所谓的Uboot的分区,关心的不是分区的名字,而是分区的地址。( include/configs )
6).read.jffs2:避免地址0x0020000页对齐或者块快对齐。
nandrad.jffs2 0x300007fc0 0x00060000 0x00200000
五.Uboot的开发:
1.bootloader概念,最终目的,操作模式(2种)。Bootloader的位置(图)。
2.常用bootloader介绍。
3.Uboot源码结构(图)。
1)平台相关的或开发板相关的。
2)通用的函数。
3)通用的设备驱动程序。
4)U-Boot工具、示例程序、文档
4.Uboot配置,编译(u_boot-1.1.6)
1).Uboot配置过程 make <board_name>_config
a。顶层Makefile
makesmdkv210single_config
./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0
S0 S1 S2 S3 S4 S5 S6
ARCH CPU BOARD VENDOR SOC
一.最终目的:启动内核。
二.学习需要掌握的知识。
1.了解Bootloader的概念
2.掌握Uboot配置,编译,uboot的目录结构和Makefile
4.分析uboot2个阶段的功能,通过源代码。
5.Uboot常用命令,和命令的实现。
6.掌握uboot和内核怎么交互的。
三.Uboot开发流程:
1.解压缩
2.打补丁
3.配置
4.编译
5.下载如开发板执行, 启动内核
四.概念:
1).设置启动参数(设置标记列表):在某个地址0x30000100,按某个格式TAG保存数据
1.Uboot告诉内核一些参数,即设置启动参数
2.跳到入口地址启动内核。
2).flash上存的内核:uImage = 头部 + 真正的内核。
3).头部:in_load加载地址, in_ep入口地址等
in_load加载地址:内核在SDRAM里面的地址,如果加载地址不在开发板指定的内核地址,
则把内核存入开发板指定的内核地址.之后去内核in_ep入口地址启动内核。
in_ep入口地址:
4).环境变量bootargs(命令行参数) :包含三个参数root,init,console
Root =/dev/mtdblock3:根文件系统,相当于windows下的C盘
Init =/linuxrc:第一个应用程序
Console =ttySAC0:内核打印信息打印出来,这里是串口0
5).分区:每个硬盘上都有分区表,在嵌入式linux中Flash中没有分区表。只能在源码里面写死了。
所谓的Uboot的分区,关心的不是分区的名字,而是分区的地址。( include/configs )
6).read.jffs2:避免地址0x0020000页对齐或者块快对齐。
nandrad.jffs2 0x300007fc0 0x00060000 0x00200000
五.Uboot的开发:
1.bootloader概念,最终目的,操作模式(2种)。Bootloader的位置(图)。
2.常用bootloader介绍。
3.Uboot源码结构(图)。
1)平台相关的或开发板相关的。
2)通用的函数。
3)通用的设备驱动程序。
4)U-Boot工具、示例程序、文档
4.Uboot配置,编译(u_boot-1.1.6)
1).Uboot配置过程 make <board_name>_config
a。顶层Makefile
makesmdkv210single_config
./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0
S0 S1 S2 S3 S4 S5 S6
ARCH CPU BOARD VENDOR SOC