1、SD卡/iNand操作指令movi

(1)开发板如果用SD卡/EMMC/iNand等作为Flash,则在uboot中操作flash的指令为movi(或mmc)

(2)movi的指令都是movi read和movi write一组的,movi read用来读取iNand到DDR上,movi write用来将DDR的内容写入iNand中。

(3)movi read {u-boot | kernel} {addr} 这个命令使用了一种通用型的描述方法来描述:大括号中的竖线表示多选一。中括号[]表示可选参数。

(4)指令有很多用法,譬如 movi read u-boot 0x30000000,意思就是把iNand中u-boot分区读出到DDR的0x30000000起始的位置处。(uboot代码中将iNand分成很多分区,每个分区有地址范围和分区名,uboot程序操作中可以直接地址来操作iNand分区,也可以使用分区名来操作分区。);注意这里的0x30000000也可以直接写作30000000,意思是一样子的(uboot的命令行中所有的数字都被默认当成16进制处理,不管你加不加0x都一样)。

2、NandFlash操作指令nand

(1)理解方法和操作方法完全类似于movi指令

3、内存操作指令:mm、mw、md

(1)DDR中是没有分区的(只听说过对硬盘、Flash进行分区,没有听说过对内存进行分区······),但是内存使用时要注意,千万不能越界踩到别人。因为uboot是一个裸机程序,不像操作系统会由系统整体管理所以内存,系统负责分配和管理,系统会保证内存不会随便越界。然后裸机程序中uboot并不管理所以内存,内存是散的随便用的,如果是程序员(使用uboot的人)自己不注意就可能出现自己的数据给覆盖了。(所以你思考我们为什么把uboot放在0x23E00000地址处)

(2)md就是memory display,用来显示内存中的内容。

(3)mw就是memory write,将内容写到内存中

(4)mm就是memory modify,修改内存中的某一块,说白了还是写内存(如果需要批量的逐个单位的修改内存,用mm最合适)

4、环境变量如何参与程序运行

(1)环境变量有2份,一份在Flash中,另一份在DDR中。uboot开机时一次性从Flash中读取全部环境变量到DDR中作为环境变量的初始值,然后使用过程中都是用DDR中的环境变量重新写入Flash中更新Flash中的环境变量。下次开机时又会从Flash中再读一次。

(2)环境变量在uboot中是用字符串表示的,也就是说uboot是按照字符匹配的方式来区分各个环境变量的。因此用的时候一定要注意不能写错字。

5、网络设置:ipaddr servserverip

(1)ipaddr是开发板通过tftp指令去tftp服务器下载东西是,tftp服务器的IP地址。

(2)serverip是开发板通过tftp指令去tftp服务器下载东西是,tftp服务器的IP地址。

(3)gatewayip是开发板的本地网关地址

(4)netmask是子网掩码

(5)ethaddr是开发板的本地网卡的MAC地址。

6、自动运行命令设置:bootcmd

(1)uboot启动时实际就是在内部执行了bootcmd这个环境变量的值所对应的命令集。

(2)bootcmd=movi read kernel 3000800;bootm 30008000意思是:将iNand的kernel分区读取到DDR内存的0x30008000地址处,然后使用bootm启动命令从内存0x30008000处去启动内核。

(3)在uboot中是没有操作系统的,因此我们对Flash(相当于硬盘)的管理必须事先使用分区界定(实际上在uboot中和kernel中都有个分区表,分区表就是我们在做系统移植时对Flash的整体分配方法)。有了这个界定后,我们在部署系统时按照分区界定方法来部署,uboot和kernel的软件中也是按照这个分区界定来工作,就不会错。

(4)分区方法不是一定的,不是固定的,是可以变动的。但是在一个移植中必须事先设计好定死,一般在设计系统移植时就会定好,定的标准:

uboot:uboot必须从Flash起始地址开始存放(也许是扇区0,也许是扇区1,也许是其他,取决于Soc的启动设计)

SD卡/iNand操作指令movi相关推荐

  1. FPGA之SD卡读写操作

    (呕心沥血,写了接近三个小时.我觉得如果耐心看的话,真的会有所帮助哦哈哈哈.看在博主这么kindhearted的份上,点个赞吧!!!!) 学到后面发现例程文件越来越多,代码越来越恶心了.SD卡,I2C ...

  2. STM32F4——SD卡相关操作

    一.简介: SD卡从MMC基础发展而来,一种记忆设备,广泛用于便携设备,SD卡按容量分为:SD卡(0~2G).SDHC卡(2~32G)和SDXC卡(32G~2T).对于SD的使用过程中相应引脚和对应模 ...

  3. Arduino ESP8266 Micro SD卡读写操作实例

    Arduino ESP8266 Micro SD卡读写操作实例 相关篇<Arduino ESP8266 Micro SD卡读写操作实例> 接线说明 Micro SD ---- ESP826 ...

  4. android外部sd卡,Android 操作外部SD卡问题

    在android4.4.2的系统上面操作可卸载的外部扩展卡,就是俗称的TF卡,怎么可以增删改呢? 我这里有点特殊原因: 1.不是说Environment.getExternalStorageDirec ...

  5. STM32F1 HAL库读写SD卡的操作要点

    本文采用的HAL库版本为STM32Cube_FW_F1_V1.8.0(带Patch-CubeF1 1.8.4). 知识点一:SD卡数据线位宽的配置 SD卡可以采用1位数据线模式,也可以采用4位数据线模 ...

  6. android中对sd卡的 操作文件问题 创建目录 创建文件到指定目录

    步骤 1 获取sd卡的路径 File root =Environment.getExternalStorageDirectory(); 2 确定要写文件的路径 String path =root.ge ...

  7. android 文件MD5加密 对SD卡的操作

    File filePath;if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))// 判断是否插入S ...

  8. S5PV210 iNAND/SD卡

    在上一篇博客中,我写了NANDFLASH的相关操作,书接上文.由于不同厂家生产的NANDFLASH在接口时序.内部组织架构等方面的不同,导致其在移植时比较麻烦. 与之相比,MMC卡/SD卡有统一的接口 ...

  9. Android手机应用程序转移到SD卡操作

    前面已经对Android低版本手机的SD卡分区进行了介绍,目前有些手机在安装应用程序时选择放在SD卡上,而另外一些手机则不支持,手机内存有限,可对已安装的应用程序进行操作转移到SD卡正常使用,总体来说 ...

最新文章

  1. 修改中断向量ESC退出
  2. 怎么屏蔽跳出来的登陆窗口_我是怎么从机构跳出来做兼职的(二)
  3. Linux中pip install延时问题
  4. c++ explicit 修饰构造函数
  5. 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据
  6. 一段H264数据的分析
  7. 某些服务在未由其他服务或程序使用时将自动停止
  8. easyexcel 导入指定_阿里巴巴EasyExcel使用(3)-导入
  9. List的三种遍历方式
  10. PS使用:windows解决Adobe Photoshop 2020(PS2020)闪退
  11. mysql nutch_nutch2.2+mysql部署
  12. hdu5294||2015多校联合第一场1007 最短路+最大流
  13. [机缘参悟-74]:沟通技巧-无论在职场还是在家,尽量少用反问句
  14. golang 使用ssl连接smtp发送邮件
  15. 光子晶体制作出LED
  16. 阿里云Linix上 python脚本 发邮件发送不出去问题
  17. 面试官最想听哪些话?
  18. 解决Edge浏览器下载文件乱码
  19. 华为AI计算机,华为在人工智能行业的发展
  20. “政府工作报告词云”实例详解

热门文章

  1. 怎么彻底卸载cad2017_如何完全卸载(删除)cad吗?
  2. MongoDB 备份恢复
  3. 循序渐进学习 Java 锁机制
  4. 《孙子兵法》十三篇注译(4--谋攻篇)
  5. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x9c in position 20: incomplete multibyte sequence
  6. JavaScript中的图片处理与合成(四) 1
  7. 静态站点生成器速度测试(Nikola,Pelican,Hexo,Octopress)
  8. 我的python笔记
  9. Hadoop 中zoo_神马专车 | 专车中的头等舱,头等舱服务开始走向全国
  10. 微服务拆分之AKF原则