第一、先烧写到SD卡, 
 
cat  /proc/partitions          #找出SD卡对应的设备 
 
sudo dd iflag=dsync oflag=dsync if=smart210-uboot.bin of=/dev/sdb seek=1 
 
sync 
 
再使用uboot命令烧写到nand: 
 
 
 
用ckermit: 
 
loadb   0x21000000   #uboot命令 
 
send  /tftpboot/filenamesend  /tftpboot/smart210-uboot.bin     #kermit命令 
 
 
 
用tftp: 
 
tftp 21000000 smart210-uboot.bin             #uboot命令 
 
 
 
nand erase.chip                                    #uboot命令 
 
nand write 21000000 0 3c1f4          #uboot命令 
 
 
 
第二、使用jtag直接烧写到nand中 
 
直接用jlink烧写即可。 
 
 
 
uboot常用命令: 
 
bdinfo:打印目标板配置信息 
 
flinfo:获取可用的flash信息 
 
help:打印帮助信息 
 
base:打印或设置地址偏移 
 
crc:crc32的校验和计算,用于计算某一段存储区的校验和。 
 
cmp:测试两个存储器区域是否相同。 
 
cp:拷贝存储区。 
 
md:存储区显示,显示某些区域的值。 
 
mm:存储区修改,修改累加地址的值。 
 
mtest:存储区测试,测试写操作是够成功,只能测试rom。 
 
mw:内存填充, 
 
nm:内存修改,修改同一地址的值。 
 
erase:擦除flash存储器某个区域 
 
protect:使能或禁止flash保护功能,更改某一区域的只读属性。 
 
bootm:从存数器启动应用程序镜像 
 
go:开始某地址处的应用程序。 
 
loadb:经由串口线加载二进制文件(kermit模式) 
 
tftpboot:使用tftp协议由网络加载映像文件 
 
printenv:打印环境变量,ipaddr,hostname,netmask。 
 
saveenv:保存环境变量到存储器(sd和nand) 
 
setenv:设置环境变量 
 
nfs:能使用NFS网络协议通过网络启动映像。 
 
 
 
bootm工作原理: 
 
用 于启动操作系统镜像,从镜像头获取操作系统类型,所使用的文件压缩方法,加载和入口点地址等信息。加载镜像文件到指定的存储器,甚至解压。也可以传递要求 的启动参数并在入口点启动操作系统。第一个参数是待加载的映像的存储地址(ISRAM,DRAM,NAND),之后可以添加操作系统需要的参数。 
 
 
 
bootm用于linux操作系统: 
 
传递一个可选的参数,作为initrd ramdisk映像的起始地址,bootm命令有三个步骤组成: 
 
1.linux内核映像被解压缩并拷贝到DRAM 
 
2.ramdisk映像被加载到DRAM 
 
3.控制权交给linux内核,并传递ramdisk映像的位置和大小信息。 |   
     
  
 |