U-boot、Kernel、文件系统的几种下载方式总结(基于TQ2440开发板)

来源:互联网 发布:会员积分软件下载 编辑:程序博客网 时间:2024/06/15 19:44

自己移植U-boot的话会生成nor flash启动文件u-boot-nor.binnand flash启动文件u-boot-nand.bin

内核移植生成文件uImage.bin

文件系统生成文件rootfs.bin

(实际文件名字根据个人生成的名字为准,这里只是举例,方便后续说明)。

nand flash设置分为4个区:

Uboot    0       80000

参数区     80000   100000

内核区     200000  600000

文件系统区 800000  1000000

 下面说明具体下载过程:

1、通过J-Flash下载u-boot-nor.binnor flash中,nor flash便可启动了。

2、下载u-boot-nand.binnand flash中。这里有三种方式下载:

1)通过J-Flash下载

 TQ2440开发板的nor flash空间大小为2Mu-boot-nor.bin默认下载到nor flash的前1M存储空间内(如果文件小于1M),将u-boot-nand.bin下载到后1M空间内。具体操作为

运行J-Flash软件,点击File->open,选择u-boot-nand.bin后会出现如下框

设置开始地址为100000u-boot-nor.bin是从0开始),便可下载到后1M空间内。具体下载空间的安排根据个人情况而定,只要u-boot-nor.binu-boot-nand.bin的总大小不超过2M便可使用此方法。

     U-bootnor flash启动后,首先擦除nand flash,我使用的开发板nand flash大小为256M,用nand erase 0 10000000擦除全部空间。使用命令nand write 100000 0 80000nor flash中的u-boot-nand.bin下载到nand flashUboot分区。

2)使用SecureCRTloadx下载

U-boot默认情况下是不支持xmodem协议的,具体移植请参考U-boot移植-----支持串口xmodem协议。

U-bootnor flash启动后,输出loadx命令会出现如下图:

说明loadx命令可用,默认波特率为115200,下载到以30800000为起始地址的空间。

然后选择菜单Transfer->Send Xmodem,选择要下载的文件,等待下载完毕。此种方法有时候下载会中断,重新下载便可。

下载完后,使用命令nand erase 0 80000nand write 30800000 0 80000 下载到nand flash(每次下载文件到nand flashnand flash必须首先擦除相应的空间)。

3)使用tftp网络下载

U-bootnor flash启动后

设置物理地址

setenv ethaddr 00.11.22.33.44.55

设置本地IP地址

setenv ipaddr 192.168.1.6

设置TFTP服务器IP地址,若用LinuxTFTP服务器,serveripLinuxIP地址。

setenv serverip 192.168.1.122

保存环境设置

saveenv

设置完ping 192.168.1.122  ping通后再进行tftp下载

tftp 31000000 u-boot-nand.bin

nand write 31000000 0 80000

u-boot-nand.bin下载到nand flash中。

需要注意的是,不管是linux还是windows下的tftp服务器,都需要将下载的文件放到服务器指定的路径下。我使用的windowstftp服务器。软件运行后界面如下图

选择Tftpd---Configure,Home Directoty选择u-boot、内核镜像和文

件系统所在的目录。选择Tftpd---Start开启Tftp Server

如果是在linux下下载,需将生成的下载文件放到/tftpboot目录下。

3、下载uImage.binrootfs.bin

U-boot启动,选择nor flashnand flash启动都可以。个人建议最好从nand flash启动,因为nand flash启动的U-boot功能比较全。

(1)      tftp下载

tftp 31000000 uImage.bin

nand erase 200000 400000

nand write 31000000 200000  400000

tftp 31000000 rootfs.bin

nand erase 800000 800000

nand write.jffs2 31000000 800000 实际文件大小

下载文件系统的时候用到了write.jffs2是因为是jffs2根文件系统,如果是yaffs/yaffs2文件系统则为write.yaffs

(2)      loadx下载

具体下载同上方法。

0 0