1UBoot操作和常用命令.ppt

上传人:sccc 文档编号:5034548 上传时间:2023-05-30 格式:PPT 页数:16 大小:461.05KB
返回 下载 相关 举报
1UBoot操作和常用命令.ppt_第1页
第1页 / 共16页
1UBoot操作和常用命令.ppt_第2页
第2页 / 共16页
1UBoot操作和常用命令.ppt_第3页
第3页 / 共16页
1UBoot操作和常用命令.ppt_第4页
第4页 / 共16页
1UBoot操作和常用命令.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《1UBoot操作和常用命令.ppt》由会员分享,可在线阅读,更多相关《1UBoot操作和常用命令.ppt(16页珍藏版)》请在三一办公上搜索。

1、UBoot操作和常用命令,主要内容,u-boot概念解释u-boot基础指令使用介绍u-boot环境变量u-boot NAND Flash操作命令及烧录Linux内核和文件系统,BootLoader概念,Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对Boo

2、t Loader 归纳出一些通用的概念来,以指导用户特定的Boot Loader 设计与实现。,UBoot来源,U-Boot 是 Das U-Boot 的简称,其含义是 Universal Boot Loader,是遵循 GPL 条款的开 放源码项目。最早德国 DENX 软件工程中心的 Wolfgang Denk 基于 8xxROM 和 FADSROM 的源码创建了 PPCBoot 工程项目,此后不断添加处理器的支持。而后,Sysgo Gmbh 把 PPCBoot 移植到 ARM 平台上,创建了 ARMBoot 工程项目。最终,以 PPCBoot 工程和 ARMBoot 工程为基础,创建了 U

3、-Boot 工程。而今,U-Boot 作为一个主流、通用的 BootLoader,成功地被移植到包括 PowerPC、ARM、X86、MIPS、NIOS、XScale 等主流体系结构上的百种开发板,成为功能最多、灵活 性最强,并且开发最积极的开源 BootLoader。目前。U-Boot 仍然由 DENX 的 Wolfgang Denk 维护,烧写UBoot,UBoot编译完成后,会在源码目录下生成u-boot.bin这个二进制文件。利用JLink工具把u-boot.bin烧写到NORFlash的0 x00000000位置即可。,mkimage,在使用UBoot引导Linux内核时,必须对Li

4、nux内核镜像文件做适当的修改让UBoot可以引导使用mkimage程序来对linux内核文件增加UBoot头。uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0 x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置,入口点在内存的那个位置以及映象名是什么,mkimage使用,Usage:mkimage-l image-l=list image header inform

5、ationmkimage-x-A arch-O os-T type-C comp-a addr-e ep-n name-d data_file:data_file.image-A=set architecture to arch-O=set operating system to os-T=set image type to type-C=set compression type comp-a=set load address to addr(hex)-e=set entry point to ep(hex)-n=set image name to name-d=use image data

6、from datafile-x=set XIP(execute in place)制作uImage 内核镜像文件mkimage-n linux-2.6.33.7-A arm-O linux-T kernel-C none-a 0 x30008000-e 0 x30008040-d zImage uImage,烧录Linux内核,烧录Linux内核并实现自启动。1)通过mkimage工具把Linux内核镜像文件转为UBoot格式通过tftp协议烧写到开发板内存的的0 x30008000位置2)PC的虚拟机Linux安装ftfp服务器端并配置测试连接成功3)重启开发板ping通虚拟机linux4)

7、配置传给linux的命令行参数5)开发板UBoot通过tftp协议和Linux进行连接,把Linux内核读入SDRAM后通过nand 命令写入nandflash的指定位置;6)根据Linux启动信息获得Linux内核默认的MTD分区并做出相应的修改后,把文件系统烧入相应位置,tftp的安装和配置,redhat9下载tftp-server-0.32-4.i386.rpm软件包rpm-ivh tftp-server-0.32-4.i386.rpm安装Fedora9下可以使用yum在线安装tftp-serveryum install tftp-server新建tftp根目录并授予权限 mkdir/v

8、ar/tftproot chmod-R 777/var/tftproottftp server 配置 tftp server配置文件,/etc/xinetd.d/tftp,修改tftp配置文件,#default:off#description:The tftp server serves files using the trivial file transfer#protocol.The tftp protocol is often used to boot diskless#workstations,download configuration files to network-aware

9、printers,#and to start the installation process for some operating systems.service tftp disable=no/设置为no,开启服务 socket_type=dgram protocol=udp wait=yes user=root server=/usr/sbin/in.tftpd server_args=-s/var/tftproot-c/这里配置tftp服务器根目录,-c参数表示可以写文件 per_source=11 cps=100 2 flags=IPv4,tftp服务器配置,UBoot环境变量,1)

10、bootargs参数bootargs参数是启动时传递给Linux操作系统的信息,其配置语句为:set bootargs root=/dev/mtdblock3 console=ttyS0,115200 rootfstype=cramfs mem=32mbroot:/dev/mtdblock2表示从nand的第三个分区启动文件系统,Linux启动后会自动搜索nand分区信息。console:表示Linux操作系统使用的控制台,我们使用第一个串口,因此是ttyS0,后面跟的115200表示串口使用的波特率。rootfstype:表示文件系统的格式,我们烧录在nand中的文件系统使用cramfs,所

11、以在这里要填写cramfs,否则linux会尝试自动挂载,可能会出错。mem:表示Linux操作系统的内存容量,目前开发板板载32MB内存,因此填32mb。2)bootcmd参数bootcmd参数表示开发板上电,bootdelay结束后执行的指令。这里填写内容的含义是用tftp这条命令,将主机上的vmlinux.img(即Linux内核)加载到内存的30007fc0这个地址,然后从30007fc0启动内核。如果将Linux内核烧录到nandflash上,则指令又有不同,下面会详细介绍。,UBoot常用命令,usb start:起动usb 功能usb info:列出设备usb scan:扫描us

12、b storage(u 盘)设备fatls:列出DOS FAT文件系统,如:fatls usb 0列出第一块U盘中的文件fatload:读入FAT中的一个文件,如:fatload usb 0 0 x30000000 aa.txtflinfo:列出flash的信息nfs:nfs 32000000 192.168.0.2:aa.txt,把192.168.0.2(LINUX 的NFS文件系统)中的NFS文件系统中的aa.txt 读入内存0 x32000000处tftp:tftp 32000000 vmlinux,把server(IP=环境变量中设置的serverip)中/tftpdroot/下的vm

13、linux通过TFTP读入到物理内存32000000处ping:注:只能开发板PING别的机器bootm:起动UBOOT TOOLS制作的压缩LINUX内核,bootm 3200000mw:对RAM中的内容写操作,mw 32000000 ff 10000(把内存0 x32000000开始的0 x10000字节设为0 xFF),UBoot对NandFlash操作,nand info查看NAND Flash信息命令nand infoDevice 0:Samsung unknown 64Mb at 0 x11000200(64 MB,16 kB sector)nand erase 地址 大小擦除NA

14、ND Flash命令将NAND Flash中起始地址0 x00100000 大小为0 x00200000的内容擦除。切记NAND Flash使用前一定要先擦除。SEP4020=nand erase 0 x00100000 0 x00200000NAND erase:device 0 offset 1048576,size 2097152.OKnand write 内存地址 NAND地址 大小将SDRAM中地址0 x31000000中大小为0 x00200000的内容写入NAND Flash的0 x100000地址。nand write 0 x31000000 0 x00100000 0 x00

15、200000NAND write:device 0 offset 1048576,size 2097152.2097152 bytes written:OK烧写文件系统nand write.yaffs 0 x30008000 0 x560000 0 x3b22c00,文件系统的烧写,UBoot启动Linux内核后会在某个固定位置读取文件系统信息,这个具体位置通过Linux代码common-smdk.c文件的MTD分区来决定(arch/arm/plat-s3c24xx/目录下),Creating 5 MTD partitions on NAND 256MiB 3,3V 8-bit:0 x0000

16、00000000-0 x000000040000:superviviftl_cs:FTL header not found.0 x000000040000-0 x000000060000:paramuncorrectable error:0 x000000060000-0 x000000560000:Kernelftl_cs:FTL header not found.0 x000000560000-0 x000040560000:rootmtd:partition root extends beyond the end of device NAND 256MiB 3,3V 8-bit-size

17、 truncated to 0 xfaa0000ftl_cs:FTL header not found.0 x000000000000-0 x000040000000:nandmtd:partition nand extends beyond the end of device NAND 256MiB 3,3V 8-bit-size truncated to 0 x10000000,MTD分区,需要注意的是,不同版本的内核分区情况可能会有不同,在使用中要注意阅读内核发布时的说明文档,根据实际情况进行操作。本文档中使用上述分区方式。其中mtdblock0 留出空间可以存放Uboot或者vivi;mtdblock1 用来存放UBoot传给Linux的参数信息;mtdblock2 用来存放Linux内核镜像文件,mtdblock3 用来挂载yaffs 文件系统或其他分区。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号