7. uboot 常用命令 4

本文内容来自对 《朱有鹏嵌入式linux核心课程》学习总结

1. SD卡/ iNand 操作指令 movi

  • 开发板如果用 SD 卡/EMMC/iNand 等作为 Flash,则在 uboot 中操作的指令为 movi(或mmc)
  • movi 指令是一一个命令集,有很多子命令,具体用法可以 help movi 查看。
  • movi 的指令都是 movi readmovi write 一组的,movi read 用来读取 iNand 到 DDR 上,movi write 用来将 DDR 中的内容写入 iNand 中。理解这些指令时一定要注意涉及到的 2 个硬件:iNand 和 DDR 内存。
  • movi read {u-boot | kernel} {addr} 这个命令使用了一种通用型的描述方法来描述:moviread 外面没有任何标记说明每一次使用这个指令都是必选的;一对大括号{}括起来的部分必选1个,大括号中的竖线表是多选一。中括号[] 表示可选参数(可以有也可以没有)
  • 指令有多种用法,譬如 movi read u-boot 0x30000000,意思就是把 iNand 中的 u-boot 分区读出到 DDR 的 0x30000000 起始的位置处。(uboot 代码中将 iNand 分成了很多个小分区,每个分区有地址范围和分区名,uboot 程序操作中可以使用直接地址来操作 iNand 分区,也可以使用分区名来操作分区。);注意这里的 0x30000000 也可以直接写作 30000000,意思是一样的(uboot 的命令行中所有数字都被默认当作十六进制处理,不管你加不加 0x 都一样)。

2. NandFlash 操作指令 nand

  • 理解方法和操作方法完全类似 movi 指令

3. 内存操作指令:mm,mw,md

  • DDR 中是没有分区的(只听说过对硬盘,Flash 进行分区,没听说过对内存进行分区…),但是内存使用时要注意,千万不能越界踩到别人了。因为 uboot 是一个裸机程序,不像操作系统会由系统整体管理所有内存,系统负责分配和管理,系统会保证内存不会随便越界。然后裸机程序中 uboot 并不管理所有内存,内存是散的随便用的,所以如果程序员(使用 uboot 的人)自己不注意就可能出现自己把自己的数据给覆盖了。(所以你思考下我们为什么把 uboot 放在 23E00000 地址处)
  • md 就是 memory display,用来显示内存中的内容。
  • mw 就是 memory write,将内容写到内存中。
  • mm 就是memory modity ,修改内存中的某一块,说白了还是写内存(如果需要批量的逐个单元的修改内存,用 mm 最合适)

4. 启动内核指令:bootm,go

  • uboot 的终极目标就是启动内核,启动内核在 uboot 中表现为一个指令,uboot 指令行中调用这个指令就会启动内核(不管成功与否,所以这个指令是一条死路)。
  • 差别:bootm 启动内核同时给内核传参,而 go 命令启动内核不传参。bootm 其实才是正宗的启动内核的命令,一般情况下都用这个;go 命令可以用来在 uboot 中执行任何的裸机程序(有一种调试裸机程序的方法就是事先启动 uboot,然后在 uboot 中去下载裸机程序,用 go 命令去执行裸机程序)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzg2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值