简单来说,eMMC 就是焊死在主板上不能取下的 SD 卡。
因为焊接到主板上,所以 eMMC 的读写速度要比 SD 卡要快,但是灵活性上就不如 SD 卡,SD 是可插拔的。
在驱动开发方面,SD 和 eMMC 遵循相同的底层协议,所以驱动有许多共用的代码,只是 SD 卡在初始化等方面需要进行一些检测(适应插拔)。
除了软件驱动程序外,其实 SD Card 和 eMMC 还可以共用 SDHost ,SDHost 是一个硬件控制器,用于充当 CPU 和外存设备的中介。
其实从逻辑上讲,正是因为 SDHost 可以兼容 SDCard 和 eMMC ,所以驱动才可以兼容 SD Card 和 eMMC 。因为驱动是运行在 CPU 上的软件,它控制的并非是具体的外存设备,而是 SDHost 控制器。所以在驱动开发时,更应该关注 SDHost 的手册。