linux烧写flash的是什么文件,烧写linux到Flash

烧写linux到Flash

一、片内启动

1、用Xmodem协议,发送loader.bin和uboot.bin文件,此时uboot.bin被发送到系统的SDRAM中,发送完后uboot开始运行,如果这时断电或退出,则一切将从头开始,因为SDRAM内存储的数据会在断电或退出后消失。

2、擦除 Flash

在对Flash进行烧写之前,需要将其擦除:

Uboot>protect off all           去掉Flash的扇区写保护

Uboot>erase all                 擦除Flash的所有扇区

(注:

如果只是要擦除某块区域的Flash,比如0x10000000到0x10060000之间的区域,则可用命令:

1)protect off 10000000 1006ffff

2)erase 10000000 1006ffff

如果是要对某块区域加上写保护,比如0x10000000到0x10060000之间的区域,则可用命令:

1)protect on 10000000 1006ffff

可用flinfo命令来查看那些区域是受保护的,那些区域不是受保护的。

)

3、烧写boot.bin到Flash

在Uboot提示符下键入命令:

Uboot>loadb 21000000 (下完之后会显示boot.bin的大小,然后在后面用命令cp.b烧写时将其后4位变成f,假如文件大小为5e33a,则在烧写时将其变为5ffff)   将文件发送到系统的SDRAM中

然后在超级终端使用Kermit协议,发送文件boot.bin,发送完毕后,键入以下命令:

Uboot>cp.b 21000000 10000000 5ffff      将发送到SDRAM中的数据写入Flash

Uboot>protect on 10000000 10005ffff     对写入Flash的内容进行写保护

(注:

此处还可以用tftp或bootp协议来完成,不过要先设置网络变量,即设置本机和目标机的IP地址,还有目标机的Mac地址。

网络环境变量:

Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360

console=ttyS0,115200,mem=32M                       启动系统环境变量

Uboot>setenv ethaddr 12:34:56:78:99:aa             mac 地址

Uboot>setenv ipaddr [目标板 ip 地址]                 目标板 ip 地址

Uboot>setenv serverip [主机 ip 地址]                 主机 ip 地址

tftp协议:

1)tftp 21000000 lb/boot.bin

2)cp.b 21000000 10000000 5ffff

3)protect on 10000000 10005fff

bootp协议:

1)bootp 21000000 lb/boot.bin

2)cp.b 21000000 10000000 5ffff

3)protect on 10000000 10005fff

)

4、烧写 Uboot.gz 到 Flash

在Uboot提示符下键入命令:装入Uboot.gz

Uboot>loadb 20000000                   将文件发送到系统的SDRAM中

然后在超级终端使用Kermit协议,发送文件Uboot.gz,发送完毕后,键入以下命令:

Uboot>cp.b 20000000 10010000 ffff      将发送到SDRAM中的数据写入Flash

Uboot>protect on 10000000 1001ffff     对写入Flash的内容进行写保护

(注:此处也可以用tftp或bootp协议)

二、片外启动

一)如何在uboot内运行自己的程序

1、手动运行(只是将程序下载到SDRAM中运行,仅做测试之用,断电或退出后就会消失)

1)loadb 20000000      下载用户程序(*.bin)

2)go 20000000         程序就会运行

2、自动运行(将程序写入Flash,uboot启动之后程序自动运行)

1)设置环境变量

Uboot>setenv usr_prg cp.b 10300000 20000000 ffff(程序的大小)

Uboot>setenv run_prg go 20000000

Uboot>setenv bootcmd run usr_prg\;run run_prg

Uboot>saveenv

2)写入程序,即将其烧入Flash

protect off all

erase 10300000 103fffff

loadb 20000000         下载*.bin

cp.b 20000000 10300000 ffff(用户程序的大小)

3)reset之后程序就会自动运行

二、烧写linux

1、下载linux到系统的SDRAM运行(仅做测试之用,断电或退出后就会消失)

1)运行Uboot,设置环境变量

Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360

console=ttyS0,115200,mem=32M                       启动系统环境变量

Uboot>setenv ethaddr 12:34:56:78:99:aa             mac 地址

Uboot>setenv ipaddr [目标板 ip 地址]                 目标板 ip 地址

Uboot>setenv serverip [主机 ip 地址]                 主机 ip 地址

2)下载linux内核,文件系统

打开tftpserver应用程序,设置根目录路径,将内核、文件系统等拷贝到所设置的根目录下。

Uboot>tftp 21100000 ramdisk.gz                     下载文件系统

Uboot>tftp 21000000 uImage                         下载 linux 内核

Uboot>bootm 21000000                               启动 linux

然后linux操作系统就开始运行。

2、烧写 Linux 到系统的 Flash 运行

1)设置运行Linux的环境变量

Uboot> setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000  ramdisk_size=15360 console=ttyS0,115200,mem=32M        启动系统环境变量

Uboot>setenv p_w_picpath cp.b 10020000 21000000 b0000        拷贝内核到sdram

Uboot>setenv ramdisk cp.b 100d0000 21100000 226000     拷贝文件系统到sdram

Uboot>setenv boot bootm                                设置变量boot

Uboot>setenv bootcmd run ramdisk\;run p_w_picpath\;run boot     设置默认变量bootcmd

Uboot>setenv ethaddr 12:34:56:78:99:aa                    mac 地址

Uboot>setenv ipaddr 目标板 ip 地址                             目标板 ip 地址,由你自己决定

Uboot>setenv serverip 主机ip地址                              主机ip地址,就是你的PC的ip

Uboot>saveenv                                             保存环境变量

2)烧写Linux内核到Flash

Uboot>tftp 21100000 ramdisk.gz

Uboot>cp.b 21100000 100d0000 226000

Uboot>tftp 21000000 uImage

Uboot>cp.b 21000000 10020000 b0000

reset之linux操作系统就开始运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值