黑猫带你学eMMC协议第25篇:eMMC命令队列详解(CMDQ)

本文详细介绍了eMMC命令队列CMDQ的工作原理和使用规则,包括CMD44至CMD48的相关命令,强调了CMDQ启用条件、任务管理和错误处理。CMDQ允许主机将多个读写任务组织成队列,提高数据传输效率。同时,文章提到了CMDQ在特定分区如RPMB区域的支持情况,以及CMDQ寄存器的配置和任务状态的监控。

本文结合emmc JEDEC5.1协议规范查看,效果更佳!

1 概述/规则

  • 简介

cmdq为命令队列,就是将一些读写命令排成一个队列,进行数据传输。EMMC能够同时建立多个传输任务,并且执行当中任意一个任务。

host可以跟踪队列的状态,并且制定命令队列的执行顺序。
device将cmd44、cmd45视为队列中的一个任务,如果没有检测到错误,则会发送一个指示成功的响应。

  • 设置流程

(1)读寄存器ecsd[308]看是否支持cmdq。通过ecsd[15]进行开启cmdq。以及通过ecsd[307]获得cmdq的最大任务数量。

(2)cmd44、cmd45,然后cmd13查看对应的任务是否被置为1,也就是“ready for execution”。然后发送cmd46或者cmd47进行读写。

  • 重要规则

(1)当发送cmd6切换分区或者不使能cmdq的时候,命令队列必须为空的状态。如果发送cmd6时候命令队列不是空的,则会出现非法指令。

(2)使能命令队列前,要设置一个sector为512字节。如果一个sector的大小不是512个字节,那么cmd46、cmd47的response就会报错。

(3)设备不保证队列任务被处理的顺序。这个顺序视命令的重要性而定,由主机确定。

(4)对于

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑猫学长呀

有帮助到你就来打个赏呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值