2017.1.9_U-boot的常用命令

  • Uboot将inand分成了很多分区,可以用一定的分区名来代替这一段分区的开始和结束。
  • movi 是一个命令族,在操作的时候要注意操作的是inand还是DDR。
    movi read u-boot 0x30000000,意思就是把iNand中的u-boot分区读出到DDR的0x30000000起始的位置处。(uboot代码中将iNand分成了很多个分区,每个分区有地址范围和分区名,uboot程序操作中可以使用直接地址来操作iNand分区,也可以使用分区名来操作分区。);注意这里的0x30000000也可以直接写作30000000,意思是一样的(uboot的命令行中所有数字都被默认当作十六进制处理,不管你加不加0x都一样)

  • NandFlash操作指令

  • (1)理解方法和操作方法完全类似于movi指令
    (2)对于这种东西的学习,我真切的感受到只是看书或者是听人讲自身是不能完全理解的,只有在习得了基本的技能后再多次操作,在实践的过程中才能真真正正的理解这个知识点的本质意义。我看了那么多的关于内存和flash的文章,直到今天才想明白内存和flash的区别所在。仅仅是掉电丢失和掉电不丢失这么简单的一句话,理解起来也必须经过实践才能明白。
    (3)一定要注意多实践多实践多实践,不能满足于听明白!!!!中文的特点就是听起来好像很明白,但仔细一想根本不知道他在说啥。
    (4)md就是memory display,用来显示内存中的内容。
    (5)mw就是memory write,将内容写到内存中
    (6)mm就是memory modify,修改内存中的某一块,说白了还是写内存(如果需要批量的逐个单元的修改内存,用mm最合适)

  • 内存也就是DDR里面的数据是可以随便修改的,而FLASH里面的数据修改需要按照块设备的读写步骤来进行读写。

  • (1)uboot启动后会开机自动倒数bootdelay秒,如果没有人按下回车打断启动,则uboot会自动执行启动命令来启动内核。
    (2)uboot开机自动启动时实际就是在内部执行了bootcmd这个环境变量的值所对应的命令集。
    (3)bootcmd=movi read kernel 30008000; bootm 30008000 意思是:将iNand的kernel分区读取到DDR内存的0x30008000地址处,然后使用bootm启动命令从内存0x30008000处去启动内核。
    (4)set bootcmd printenv,然后saveenv;然后重启则会看到启动倒数后自动执行printenv命令打印出环境变量。这个小实验说明开机自动执行了bootcmd。
    (5)set bootcmd ‘movi read kernel 30008000; bootm 30008000’

你可能感兴趣的:(嵌入式Linux技术分享)