bootdelay 定义执行自动启动的等候秒数 baudrate 定义串口控制台的波特率 netmask 定义以太网接口的掩码 ethaddr 定义以太网接口的MAC地址 bootfile 定义缺省的下载文件 bootargs 定义传递给Linux内核的命令行参数 bootcmd 定义自动启动时执行的几条命令 serverip 定义tftp服务器端的IP地址 ipaddr 定义本地的IP地址 stdin 定义标准输入设备,一般是串口 stdout 定义标准输出设备,一般是串口 stderr 定义标准出错信息输出设备,一般是串口 u-boot命令介绍及烧写程序实例zz Printenv 打印环境变量。 Uboot> printenv baudrate=115200 ipaddr=192.168.1.1 ethaddr=12:34:56:78:9A:BC serverip=192.168.1.5 Environment size: 80/8188 bytes Setenv 设置新的变量 Uboot> setenv myboard AT91RM9200DK Uboot> printenv baudrate=115200 ipaddr=192.168.1.1 ethaddr=12:34:56:78:9A:BC serverip=192.168.1.5 myboard=AT91RM9200DK Environment size: 102/8188 bytes Saveenv 保存变量 命令将当前定义的所有的变量及其值存入flash中。用来存储变量及其值的空间只有8k字节,应不要超过。 Loadb 通过串口Kermit协议下载二进制数据。 Tftp 通过网络下载程序,需要先设置好网络配置 Uboot> setenv ipaddr 192.168.0.1 Uboot> setenv serverip 192.168.1.115 (tftp服务器的地址) 下载bin文件到地址0x20000000处。 Uboot> tftp 20000000 u-bo.bin (u-boot.bin应位于tftp服务程序的目录) Uboot> tftp 32000000 vmlinux 把server(IP=环境变量中设置的serverip)中/tftpdroot/ 下的vmlinux通过TFTP读入到物理内存32000000处。 Md 显示内存区的内容。 Mm 修改内存,地址自动递增。 Nm 修改内存,地址不自动递增。 Mw 用模型填充内存 mw 32000000 ff 10000(把内存0x32000000开始的0x10000字节设为0xFF) Cp 拷贝一块内存到另一块 Cmp 比较两块内存区 这些内存操作命令后都可加一个后缀表示操作数据的大小,比如cp.b表示按字节拷贝。 Protect 写保护操作 protect on 1:0-3(就是对第一块FLASH的0-3扇区进行保护) protect off 1:0-3取消写保护 Erase 擦除扇区。 erase: 删除FLASH的扇区 erase 1:0-2(就是对每一块FLASH的0-2扇区进行删除) 对DataFlash的操作 U-Boot在引导时如果发现NPCS0和NPCS3上连有DataFlash,就会分配虚拟的地址给它,具体为 : 0xC0000000---NPCS0 0xD0000000---NPCS3 run 执行设置好的脚本 Uboot> setenv flashit tftp 20000000 mycode.bin\; erase 10020000 1002FFFF\; cp.b 20000000 10020000 8000 Uboot> saveenv Uboot> run flashit bootcmd 保留的环境变量,也是一种脚本 如果定义了该变量,在autoboot模式下,将会执行该脚本的内容。 Go 执行内存中的二进制代码,一个简单的跳转到指定地址 Bootm 执行内存中的二进制代码 要求二进制代码为制定格式的。通常为mkimage处理过的二进制文件。 起动UBOOT TOOLS制作的压缩LINUX内核, bootm 3200000 Bootp 通过网络启动,需要提前设置好硬件地址。 ? 得到所有命令列表 help help usb, 列出USB功能的使用说明 ping 注:只能开发板PING别的机器 usb usb start: 起动usb 功能 usb info: 列出设备 usb scan: 扫描usb storage(u 盘)设备 kgo 起动没有压缩的linux内核 kgo 32000000 fatls 列出DOS FAT文件系统 fatls usb 0列出第一块U盘中的文件 fatload 读入FAT中的一个文件 fatload usb 0:0 32000000 u-boot.bin 把USB中的u-boot.bin 读到物理内存0x32000000处! flinfo 列出flash的信息 nfs nfs 32000000 192.168.0.115:u-boot.bin 把192.168.0.115(LINUX 的NFS文件系统)中的NFS文件系统中的u-boot.bin读入内存0x32000000处。 例:通过串口更新u-boot程序 [ [email=u-boot@wpf]u-boot@wpf[/email] ]# loadb ## Ready for binary (kermit) download to 0x33000000 at 115200 bps... loadb这个指令以kermit协议从串口下载二进制文件到开发板的内存中,默认下载到0x33000000。当然你可以改在别的地址,例如:loadb 30000000 就是下载到0x30000000。这时候选择超级终端菜单上:传送〉发送文件,文件名选择编译好的U-Boot.bin,协议选择Kermit,点发送。可以看到发 送进度。 发送结束出现提示: ## Total Size = 0x0001d73c = 120636 Bytes ## Start Addr = 0x33000000 这时可以测试新的修改好不好使: [ [email=u-boot@wpf]u-boot@wpf[/email] ]# go 33000000 ## Starting application at 0x33000000 ... go指令可以直接执行内存地址上的程序, 然后烧写在NOR Flash中的U-boot。先看看NOR Flash的情况: [ [email=u-boot@wpf]u-boot@wpf[/email] ]# flinfo Bank # 1: AMD: 1x Amd29LV800BB (8Mbit) Size: 1 MB in 19 Sectors Sector Start Addresses: 00000000 (RO) 00004000 (RO) 00006000 (RO) 00008000 (RO) 00010000 (RO) 00020000 00030000 00040000 00050000 00060000 00070000 00080000 00090000 000A0000 000B0000 000C0000 000D0000 000E0000 000F0000 (RO) 一共有19个sector,其中前5个总计128kb的sector有U-Boot程序。要烧写首先要去掉写保护: [ [email=u-boot@wpf]u-boot@wpf[/email] ]# protect off 0 1ffff [ [email=u-boot@wpf]u-boot@wpf[/email] ]# flinfo Bank # 1: AMD: 1x Amd29LV800BB (8Mbit) Size: 1 MB in 19 Sectors Sector Start Addresses: 00000000 00004000 00006000 00008000 00010000 00020000 00030000 00040000 00050000 00060000 00070000 00080000 00090000 000A0000 000B0000 000C0000 000D0000 000E0000 000F0000 (RO) 可以看到写保护已经去掉,然后擦除: [ [email=u-boot@wpf]u-boot@wpf[/email] ]# erase 0 1ffff Erasing sector 0 ... ok. Erasing sector 1 ... ok. Erasing sector 2 ... ok. Erasing sector 3 ... ok. Erasing sector 4 ... ok. Erased 5 sectors 烧写:(33000000下载地址 0 Nor起始地址 1d73c 文件长度) [ [email=u-boot@wpf]u-boot@wpf[/email] ]# cp.b 33000000 0 1d73c Copy to Flash... done 重启开发板,U-Boot的烧写就完成了。当然,一个更好的下载方法是利用tftp命令 http://hi.baidu.com/vcmfc_linux/blog/item/9d07dfef11001c36acafd5d0.html |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-30 01:38 , Processed in 0.134423 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.