在emmc的开发中怎么知道当前操作的是哪一个区
EMMC存储卡对应的的寄存器
读取扩展CSD寄存器的179字节。

低3bit就是当前在访问的分区。

其中0就是默认分区,也就是用户分区。
emmc手册里有讲各个分区大小,其中用户分区最大,也是常操作的分区。

S32K358具体代码示例
S32K358里面,操作分区的切换函数:
Sd_Emmc_Ip_MmcSwitchPartitionAccess(&EmmcCfg_0, SD_IP_MMC_PARTITION_DEFAULT);
上面的代码就是切换到了用户区。
那么切换过去,有没有什么标志?
在代码里可以写:
Sd_Emmc_Ip_CardInformationType CardInformation;
Sd_Emmc_Ip_GetCardInformation(&CardInformation);
以此获取卡片信息,之后在这个结构体里有一个成员说的是当前在使用的分区。


这个成员就是获取到的第179字节的信息。如果低3比特是0,那么就是说在用户区。
当然,可以使用函数将当前分区切换,之后再看看这里的变量,就知道效果了。
疑问
为啥手册里没说下图中的分区?

因为这些分区是用户自己在User 分区里分配的,存储器出厂的时候不会有这些。

5431

被折叠的 条评论
为什么被折叠?



