mmc命令

1 文章介绍

今天在进行Android分区修改的时候发现擦除后无法进入kernel,查了一下是因为bootargs_Hi3798MV200-emmc.txt文件中的bootcmd没有修改。这个参数与内核启动有关,需要用到mmc命令,因此多mmc相关的命令做一个学习总结。

2 开发平台

软件平台:Android系统。
硬件平台:hisi3798MV200

3 阅读须知

4 文章正文

4.1 打印当前mmc设备的信息

命令: mmcinfo 

4.2 对mmc进行读写操作

4.2.1 命令说明

读操作命令:  mmc read <device num> addr blk# cnt [partition]  
写操作命令:  mmc write <device num> addr blk# cnt [partition]  

参数说明:

  • device num:mmc的设备号,可以通过mmc list查询
  • addr:内存地址
  • blk# :mmc内的块号
  • cnt:块数目

4.2.2 命令举例

读操作:  mmc read 0 0x10800000 0x600 0x10  
读操作说明:从第0个mmc设备块上1536*512个字节处开始(1536是0x600的十进制),读取16×512个字节(16是10的10进制)到内存0x10800000 处。以kernel为例,若前面的分区为94M(也就是kernel的分区从94M的地方开始),那么,0x600的地方的值应为:94*2*1024的十六进制0x2F000。

为何这样计算呢?我们在系统开始的时候可以看到如下打印信息:

在上图中可以看到,每个块是512Bytes,因此kernel的启动地址为94*1024*1024改为94*1024*1024/512=94*2*1024。下面的计算方法相同。

写操作: mmc write 2 0x90000000 0x600 0x10 
写操作说明:把内存0x90000000开始,长度为16x512大小的数据,写入到第2个mmc设备块偏移位置为0x600处。

5 参考资料

1、《常用u-boot命令详解(全)
2、《uboot中的mmc命令
3、《mmc的命令里面write的参数是16进制却不需要写0x

本文版权归作者(LuckyAlan)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。如有问题,可邮件(liuwenvip163@163.com)咨询.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值