linux系统移植---bootloader(2)

本文详细介绍了Linux系统移植中的Bootloader概念,特别是U-Boot。内容涵盖系统的启动过程,U-Boot的源代码分析,包括其支持的CPU架构和操作系统,以及启动流程中的关键步骤。此外,还讲解了如何配置和编译U-Boot,以及U-Boot的启动模式和命令使用。最后,文章概述了U-Boot在启动内核过程中的作用,强调了bootcmd环境变量的重要性。
摘要由CSDN通过智能技术生成

一.bootloader

1.了解系统的启动过程

 PC: BIOS(固件)------>bootloader(硬盘MBR)------>OS内核(拷贝到RAM)- ---->启动系统
 bootlloadre的启动过程一般分为2段,BL1 BL2

 嵌入式: bootloader(flash)------->OS内核(拷贝到内存)—>启动系统

 S5PV210的启动过程:
 IROM(固件)------>bootloader(flash,网络,usb,SD,串口)加载到内存 ---->启动OS内核---->系统

 bootloader有两种状态,一种是自启动模式(加载内核),另一种叫下载更新模式(命令行)

 bootloader的种类:e-boot u-boot r-boot vivi…

2.u-boot是bootloader的一种

Uboot官方下载地址:
 ftp://ftp.denx.de/pub/u-boot/
 git://git.denx.de/u-boot.git
 http://git.denx.de/u-boot.git

u-boot的通用性:
 1)支持多种架构的CPU:PowerPC、ARM、X86、MIPS、NIOS、XScale
 2)支持多种操作系统:Linux Vxworks QNX…

3.分析uboot的源代码

注意:查看uboot源代码时在source Insight文档选项–>文件过滤器加上[*c,*h,*s,*S]。
uboot源码目录下文件夹的介绍:
1)cpu
 包含和CPU架构相关的代码,u-boot支持的CPU在该目录下都有一个子目录 与之对应。
2)board
 包含和开发板相关的文件,每一个开发板都以一个目录的形式出现在该目录下。
3)drivers
 本目录下存放所有外围芯片的驱动,网卡、USB、串口、LCD、Nand Flash等。
4)lib_arm
 支持ARM架构下的通用文件。
5)include/configs/smdkv210single.h
 定义了大量的宏定义,配置u-boot的参数(如:晶振的频率、串口的波特率、开发板的IP地址)。

4.源代码研究:

Makefile
1)确定编译器(在Makefile文件中加入下面两行代码确定编译器)
126 ARCH = arm
127 CROSS_COMPILE = arm-linux-(根据实际工具添加)

2)uboot配置
make smdkv210single_config
Makefile:
2584 smdkv210single_config : unconfig
2585 @$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110
2586 @echo “TEXT_BASE = 0xc3e00000” > $(obj)board/samsung/smdkc110/config.mk

476 unconfig:
477 @rm -f $(obj)include/config.h $(obj)include/config.mk
478 $(obj)board//config.tmp $(obj)board//*/config.tmp
479 $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep
480 ( o b j ) b o a r d / (obj)board/ (

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值