linux驱动u-boot命令小问题

请问各位大牛, u-boot命令中,movi write zero 与movi write这两个命令有什么区别?还有movi read zero 与movi read这一组呢?本人小白,实在搞不懂,求大牛!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

阅读 3.1k
2 个回答

movi read用来读取iNand到DDR上,movi write用来将DDR中的内容写入iNand中。理解这些指令时一定要注意涉及到的2个硬件:iNand和DDR内存。

  • movi read {u-boot | kernel} {addr} 这个命令使用了一种通用型的描述方法来描述:movi和read外面没有任何标记说明每一次使用这个指令都是必选的;一对大括号{}括起来的部分必选1个;大括号中的竖线表是多选一;中括号[]表示可选参数
  • 指令有多种用法,譬如movi read u-boot 0x30000000,意思就是把iNand中的u-boot分区读出到DDR的0x30000000起始的位置处。(uboot代码中将iNand分成了很多个分区,每个分区有地址范围和分区名,uboot程序操作中可以使用直接地址来操作iNand分区,也可以使用分区名来操作分区。);注意这里的0x30000000也可以直接写作30000000,意思是一样的(uboot的命令行中所有数字都被默认当作十六进制处理,不管你加不加0x都一样)。

在 U-Boot(嵌入式开发中常用的引导加载程序)中,movi write 和 movi read 是用于在内存和存储设备之间传输数据的命令。这些命令用于处理存储设备(通常是闪存)与内存之间的数据传输,例如从闪存中加载程序到内存中,或者将数据从内存写入到闪存中。

movi write zero vs. movi write:

movi write zero:这个命令用于将零数据写入存储设备的指定位置。通常用于初始化存储设备的某个区域,或者擦除存储设备上的特定块。
movi write:这个命令用于将内存中的数据写入存储设备的指定位置。它用于将程序、文件系统等数据写入存储设备,从而在启动时可以从存储设备加载到内存并执行。
movi read zero vs. movi read:

movi read zero:这个命令用于从存储设备读取数据到内存,并将指定范围内的数据设置为零。通常用于清除内存中的某个区域,以便在写入新数据之前进行初始化。
movi read:这个命令用于从存储设备读取数据到内存中的指定位置。它用于将存储设备上的数据加载到内存中,以供后续处理或执行。
总之,movi write 和 movi read 命令都涉及到存储设备和内存之间的数据传输,而 zero 选项表示将数据设置为零。这些命令在嵌入式开发中常用于引导加载程序的操作,以及在启动过程中处理数据传输和初始化。具体使用哪个命令取决于你的需求和场景。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题