首页 > 其他分享 >[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令

时间:2022-10-31 22:00:40浏览次数:97  
标签:操作命令 EMMC Boot dev 命令 mmc MMC SD


uboot 支持 EMMC 和 SD 卡, 因此也要提供 EMMC 和 SD 卡的操作命令。

一般认为 EMMC和 SD 卡是同一个东西,所以没有特殊说明,本教程统一使用 MMC 来代指 EMMC 和 SD 卡。

uboot 中常用于操作 MMC 设备的命令为“mmc” 。

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_ubuntu

1、mmc info 命令

mmc info 命令用于输出当前选中的 mmc info 设备的信息,输入命令“mmc info”即可,如图所示:

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_数据_02

2、mmc rescan 命令

mmc rescan 命令用于扫描当前开发板上所有的 MMC 设备,包括 EMMC 和 SD 卡,输入“mmc rescan”即可。

3、mmc list 命令

mmc list 命令用于来查看当前开发板一共有几个 MMC 设备,输入“mmc list” ,结果如图所示:

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_开发板_03


可以看出当前开发板有两个 MMC 设备:FSL_SDHC:0 和 FSL_SDHC:1 (eMMC),这是因为我现在用的是 EMMC 版本的核心板, 加上 SD 卡一共有两个 MMC 设备, FSL_SDHC:0 是 SD卡FSL_SDHC:1(eMMC)是 EMMC, 。默认会将 EMMC 设置为当前 MMC 设备,这就是为什么输入“mmc info”查询到的是 EMMC 设备信息,而不是 SD 卡。要想查看 SD 卡信息,就要使用命令“mmc dev”来将 SD 卡设置为当前的 MMC 设备。

4、mmc dev 命令

mmc dev 命令用于切换当前 MMC 设备,命令格式如下:

mmc dev [dev] [part]

  1. [dev]用来设置要切换的 MMC 设备号
  2. [part]是分区号。
    如果不写分区号的话默认为分区 0。

使用如下命令切换到 SD 卡:

mmc dev 0
//切换到 SD 卡,0 为 SD 卡,1 为 eMMC

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_linux_04


从图可以看出,切换到 SD 卡成功,mmc0 为当前的 MMC 设备,输入命令“mmc info”即可查看 SD 卡的信息,结果如图所示:

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_linux_05

5、mmc part 命令

有时候 SD 卡或者 EMMC 会有多个分区,可以使用命令“mmc part”来查看其分区,比如查看 EMMC 的分区情况,输入如下命令:

mmc dev 1           // 切换到 EMMC
mmc part // 查看 EMMC 分区

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_开发板_06

6、mmc read 命令

mmc read 命令用于读取 mmc 设备的数据,命令格式如下:

mmc read addr blk# cnt

  1. addr 是数据读取到 DRAM 中的地址
  2. blk 是要读取的块起始地址(十六进制) 一个块是 512字节
  3. cnt 是要读取的块数量(十六进制)

这里的块和扇区是一个意思, 在 MMC 设备中我们通常说扇区。
比如从EMMC 的第 1536(0x600)个块开始,读取 16(0x10)个块的数据到 DRAM 的0X80800000 地址处,命令如下:

mmc dev 1 0                //切换到 MMC 分区 0 
mmc read 80800000 600 10 //读取数据

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_linux_07

7、mmc write 命令

要将数据写到 MMC 设备里面,可以使用命令“mmc write” ,格式如下:

mmc write addr blk# cnt

  1. addr 是要写入 MMC 中的数据在 DRAM 中的起始地址
  2. blk 是要写入 MMC 的块起始地址
  3. cnt 是要写入的块大小

演示烧录uboot: 1、需要具备nfs或tftcp功能。 2、准备 u-boot.imx

将编译出来的 u-boot.imx(u-boot.bin 前面加了一些头文件)拷贝到 Ubuntu 中的tftpboot 目录下。

cp u-boot.imx …/…/tftpboot/

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_ubuntu_08

最后在uboot环境中使用 tftp 命令将其下载到 0x80800000 地址处,命令如下:

tftp 80800000 u-boot.imx

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_u-boot_09


可以看出,u-boot.imx 大小为 416768 字节,416768/512=814,所以我们要向 SD 卡中写入814 个块,如果有小数的话就要加 1 个块。使用命令“mmc write”从 SD 卡分区 0 第 2 个块(扇区)开始烧写,一共烧写814(0x32E)个块,命令如下:

mmc dev 0 0
mmc write 80800000 2 32E

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_linux_10


重启uboot:reset

查看版本:version

[I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令_开发板_11

同理,如果要在 uboot 中更新 EMMC 对应的 uboot,可以使用如下所示命令:

mmc dev 1 0 //切换到 EMMC 分区 0
tftp 80800000 u-boot.imx //下载 u-boot.imx 到 DRAM
mmc write 80800000 2 32E //烧写 u-boot.imx 到 EMMC 中
mmc partconf 1 1 0 0 //分区配置,EMMC 需要这一步!

千万不要写 SD 卡或者 EMMC 的前两个块(扇区),里面保存着分区表!

8、mmc erase 命令

如果要擦除 MMC 设备的指定块就是用命令“mmc erase” ,命令格式如下:

mmc erase blk# cnt

  1. blk 为要擦除的起始块
  2. cnt 是要擦除的数量

没事不要用 mmc erase 来擦除 MMC 设备! ! !


标签:操作命令,EMMC,Boot,dev,命令,mmc,MMC,SD
From: https://blog.51cto.com/xuejianqiang/5811325

相关文章

  • [I.MX6UL] U-Boot 命令使用(四) 网络操作命令
    uboot支持大量的网络相关命令,比如dhcp、ping、nfs和tftpboot。在使用uboot的网络功能之前先用网线将开发板的ENET2接口和电脑或者路由器连接起来,I.MX6U-ALPHA开发......
  • 模板注入--Spring boot Thymeleaf 模板注入
    Thymeleaf模板安全分析1、Thymeleaf简介Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎。类似与pythonweb开发中的jinja模板引擎。顺便说一句,Thymeleaf是spr......
  • [nrf52][SDK17] 如何使用官方BootLoader
    所需文件已经编译完毕,直接放入指定目录。**\nRF5_SDK_17.0.2_d674dde\external\micro-ecc​​micro-ecc.rar​​BootLoader工程位置xx\nRF5_SDK_17.0.2_d674dde\examples\d......
  • Springboot导出word,动态填充表格数据
    原文链接:https://blog.csdn.net/qq_23126581/article/details/125446459背景本文将给大家带来如何导入数据到word文档中,固定传值和动态制作表格传值等。依赖:<!-......
  • Spring Boot中使用拦截器
    简介拦截器的原理很简单,是AOP的一种实现,专门拦截对动态资源的后台请求,即拦截对控制层的请求。使用场景比较多的是判断用户是否有权限请求后台,更拔高一层的使用场景也有,比......
  • bootstrap5 网格
      <linkhref="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/css/bootstrap.min.css"rel="stylesheet"><scriptsrc="https://cdn.staticfile.org/tw......
  • kafka服务端设置用户和密码登录及springboot访问实现
    1、先安装zookeeper,不会的可以去查一下。2、解压并放到目录下,改名tarzxvfkafka_2.12-2.4.0.tgz-C/datamvkafka_2.12-2.4.0kafka3、修改kafka配置文件server.......
  • uboot命令
    uboot中从u盘升级usbstartUSB设备初始化,若未执行,不能操作usb设备内容fatlsusb0列举U盘中所有文件fatinfousb0U盘属性等信息fatloadusb0:11080000......
  • Springboot整合mybatis-plus-2增删改查
    文章目录​​一、插入​​​​1.主键id配置自增的​​​​2.时间等自动填充​​​​1.直接在数据字段设置即可​​​​2.使用ioc反射原理​​​​二、改(update)​​​​三、......
  • Springboot 整合 thymeleaf-1
    文章目录​​thymeleaf百叶香​​​​一、添加依赖​​​​1.创建项目的时候引入依赖​​​​2.直接在pom里面添加依赖​​​​二、建立页面html并添加命名空间​​​​三......