常用UBoot命令[转]
转自:http://blog.csdn.net/zhandoushi1982/archive/2009/10/15/4677728.aspx dnw:在进入系统之前进入指令行,输入该指令可下载烧录文件。 re:重新启动嵌入式系统。 printenv:打印当前系统环境变量。 setenv:设置环境变量,格式:setenv name value ...,表示将name 变量设置成value 值;如果没有这个参数,表示删除该变量。 saveenv:保存环境变量到NAND中。 sleep:延迟执行,格式:sleep N,可以延迟N秒钟执行。 run:执行环境变量中的命令,格式:run var,可以跟几个环境变量名。 crc32:计算校验值,格式:crc32 address count [addr],第一个参数是需校验的起始地址,第二个参数是校验的数据字节数,第三个参? 数是保存校验值的地址。 cp:在内存中复制数据块,格式:cp? source target count,第一个参数是源地址,第二个参数是目的地址,第三个参数是复制数目。 cmp:比较内存中的数据块,格式:cmp?addr1 addr2 count,第一个参数是内存地址一,第二个参数是内存地址二,第三个是比较长度(单位是字节数除以4,以WORDS为单位)。 bootm:可以引导启动存储在内存中的程序映像。格式:bootm? addr1 addr2,第一个参数是程序映像的地址,第二个参数一般是RAMDISK地址。 nand scrub:暴力擦除指令,擦除整个NAND,会擦除bad block标记。 nand erase:擦除NAND,格式:nand erase addr1 count,第一个参数是OFFSET,第二个参数是擦除字节数。其中OFFSET是相对于Download地址。 nand write:下载的内存数据写入NAND,格式:nand write addr offset count,第一个参数是内存源地址,第二个参数是nand目的地址,第三个参数是写入字节数(大小)。 nand?read:讲NAND数据读取到内存,格式:nand?read?addr offset count,第一个参数是内存位置偏移,第二个参数是读取的NAND地址,第三个参数是读取字节数。 nand bad:测试NAND FLASH坏块的命令。如:nand bad,即可显示坏的区块地址。 ???? 通常我们会回写数据来测试写入跟读取的数据是否一致,如: 假设Download Address: 0xc0000000,Download Filesize:0x1df48c nand erase 600000 300000???????????? //擦除c0600000为开始的300000个字节 nand write c0000000 600000 300000?????? //往刚擦除的空间写入内存起始地址的数据共300000个长度 nand?read?c0600000 600000 300000??????? //读取刚写入的NAND地址共300000个长度到偏移600000的内存中 cmp c0600000 c0000000 300000????????????? //比较两段内存的数据是否相同 ???? 此通常会用在DDR调试上,比如128MDDR的MEMORY MAP基地址是0X50000000,空间从0X50000000-0X58000000,如果要改软件支持到256M,假设DOWNLOAD地址是0XC0000000,通过内存拷贝和比较命令来对比0XC0000000和0X59000000的内容是否一致。
************************************************************************* 引用别人之前的解决的一个问题: ????? 当把u-boot下载进去,再把内核下进去后发现,内核跑不起来。反反复复尝试,还是没有进展。在一篇文章中看到了u-boot源代码的配制文件config.mk,打开这个文件,看到内核的启动地址是0x50008000与用户手册上的0xc0008000不一样。就按照这个搞了一下,果然就可以启动内核了。但还是不能烧到flash里去,后来用nand bad命令发现:存放内核的nand flash启始地址是个坏块。所以将内核存在了扩展区才搞成功。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |