第一、先烧写到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映像的位置和大小信息。 |