u-boot引导linux内核的分析

u-boot引导linux内核的分析

ID:27544893

大小:186.08 KB

页数:15页

时间:2018-12-03

u-boot引导linux内核的分析_第1页
u-boot引导linux内核的分析_第2页
u-boot引导linux内核的分析_第3页
u-boot引导linux内核的分析_第4页
u-boot引导linux内核的分析_第5页
资源描述:

《u-boot引导linux内核的分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、u-boot引导linux内核的分析u-boot引导linux内核有两个核心内容:1、制作Uimage格式的内核镜像2、设置环境变量bootcmd、bootargs和设置CONFIG_SETUP_XXXX_TAGS宏以支持标记列表的参数传递。本文针对u-boot-1.1.6。一、制作Uimage格式的内核镜像u-boot能在多种CPU架构上引导多种操作系统,如linux、vxworks>QNX、netbsd等。映象文件必须满足U-Boot的格式要求,才能被识别和引导,u-boot只能引导Uimage格式的镜像。但是GCCT具链编译生成的内核镜像格式;

2、为Zimage或image,所以u-boot提供了mkimage这个工具来给Zimage或image格式镜像内核添加~个header,添加headerU的image通常叫uimage,uimage是可以被U-boot直接引导的lAl核镜像。这个头部(header)由结构体image_header_t描述,image_header_t定义在文件include/image.h屮:typedefstructimage_header{uint32_tih.magic;/*镜像头部幻数*/uint32_tih_hcrc;/*镜像头部校验和*/uint32_ti

3、h_time;/*镜像头部创建时间戳*/uint32_tih_size;/*镜像文件大小*/uint32_tihjoad;/*指定镜像头信息的加载地址*/uint32_tih_ep;/*内核的入口地址*/uint32_tih_dcrc;/*镜像文件校验和*/uint8_tih_os;/*操作系统类型*/uint8_tih.arch;/*CPU架构类型*/uint8_tih_type;/*镜像类型*/uint8_tih_comp;/*镜像压缩格式*/uint8_tih_name[IH_NMLEN];/*镜像名称*/}image_header_t;这个头

4、部结构体屮包含了全部bootm命令引导系统内核所需要的重要参数。这其屮大部分参数由执行mkimage命令的参数来填写确定。下面我们来看看的mkimage命令的执行格式:mkimage[-x]-Aarch-0os-Ttype-Ccomp-aaddr-eep-nname-ddata_file[:data_file...]image-A==>setarchitectureto'arch'//用于指定CPU类型,在include/image.h定义了许多CPU类型的宏定义,比如ARM、MIPS、PPC、M68K等-0==>setoperatingsystem

5、to'os'//用于指定操作系统,在include/image.h定义了许多操作系统的宏定义,比如Linux、NETBSD、VXWORKS等-T==>setimagetypeto’type1//用于指定image类型,在include/image.h定义了许多image类型的宏定义,比如Kernel、RAMDISK、STANDALONE、FIRMWARE等-C==>setcompressiontype'comp'//指定压缩类型,在include/image.h定义了许多image类型的宏定义,比如:NONE、GZIP、BZIP2。U-boot引导l

6、inux内核吋一般不解压而由内核被引导运行后执自行解压,所以这个参数一般指定为NONE-a==>setloadaddressto*addr'(hex)//指定ulmage格式闪核镜像文件的加载地址,―般指定为0x30008000-e==>setentrypointto'ep*(hex)//linux内核启动的真正入口地址,它不包括ulmage内核镜像文件的头部,所以一般情况下应指定为addr+0x40。但是当指定压缩类型为none时,该参数必须与-a参数一致,因为对非压缩镜像文件的处理是:不解压,但是把镜像文件除去头部后复制到加载地址1addr’。-

7、n==>setimagenameto'name'//镜像文件的命名-d==>useimagedatafrom’datafile'//无头信息镜像文件名-x==>setXIP(executeinplace)//设置执行位置,可省略有上川*见,mkimage命令的执行参数与头部结构体中的参数大多为对应的关系,事实上:执行mkimage命令,制作Uimage格式内核镜像实质上就是通过mkimage命令的参数的形式来初始化header结构体,并将其作为bootm命令识别和引导操作系统内核的重要参数。mkimage命令的参数的形式来初始化header结构体这项

8、工作在tool/mkimage.c屮的image_set_xxx()函数来完成。下而我们看一看mkimage

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。