目前,我正在使用具有 su 访问权限的用户空间应用程序从 debugfs 文件系统解析 ext_csd,将字符串转换为原始字节数据并将其传递给解码 ext_csd 函数以填充我自己编写的结构。
我想知道是否有更有效的方法来做到这一点,或者更不容易出错?例如有一个 mmc_read_ext_csd()和mmc_decode_ext_csd()在内核路径drivers/mmc/core/mmc.c
有什么方法可以从用户应用程序中使用这个驱动函数吗?还是ioctl命令?我似乎找不到任何关于 mmcblk0 的 ioctl 命令的 API 文档,只能在内核源代码 kode/block/ioctl.c 中找到
是否还有一种方法可以从用户应用程序中查看 emmc 是否为大容量卡?
最佳答案
mmc-utils 可以通过 ioctl 发出 ext_csd 读取并输出已解析的文本。 http://git.kernel.org/cgit/linux/kernel/git/cjb/mmc-utils.git/
还有其他类似的可以解析从 debugfs 获得的十六进制字符串。很难说它是否比您自己的代码更可靠。 https://github.com/haoxingz/emmc5_register_reader
我不确定高容量检测。
关于c - Linux 应用解码 mmc ext csd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913768/