• uboot命令(1):mmc命令


    版权声明

    更新:2017-06-07
    博主:LuckyAlan
    联系:liuwenvip163@163.com
    声明:吃水不忘挖井人,转载请注明出处!

    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

  • 相关阅读:
    centos7编译安装php 遇到的问题
    linux中以.d结尾的目录
    webpack 的安装与使用
    nginx 设置反向代理
    常用git命令
    windows命令行模式打开目录
    scapy 中sniff指定的数据包并打印指定信息
    python scapy中sniffer的用法以及过滤器
    scapy构造数据包
    21天实战人工智能系列:人工智能产品经理最佳实践(1)
  • 原文地址:https://www.cnblogs.com/luckyalan/p/6958522.html
Copyright © 2020-2023  润新知