米尔-芯驰D9国产车规级开发板板载了16GB的EMMC,内置了默认镜像,可以不插TF卡启动。
为什么树莓派一直都是TF卡启动,而很多国产开发板会考虑使用板载EMMC启动呢?
因为eMMC(嵌入式多媒体卡)用作Linux的启动介质具有一些优势:
可靠性和稳定性: eMMC存储器通常具有较高的可靠性和稳定性,这对于嵌入式系统来说非常重要,因为它们通常需要长时间运行而无需维护。eMMC内置了错误检测和纠正(ECC)功能,可以减少数据损坏的风险。
快速启动: eMMC存储器具有较低的访问延迟和较高的读取速度,因此可以加快Linux系统的启动速度。这对于需要快速启动和响应的嵌入式设备非常重要。
嵌入式设备集成: eMMC存储器通常集成在嵌入式设备的主板上,可以减少外部存储器的需求,从而降低成本和系统复杂性。
低功耗: eMMC存储器通常具有较低的功耗,这对于依赖电池供电的嵌入式设备来说非常重要,可以延长电池寿命。
物理尺寸小: eMMC芯片的物理尺寸相对较小,适合嵌入式设备的紧凑设计。
默认镜像启动后,root分区空间比较小,需要按常规扩容教程扩大root分区。
扩容后,分区大小使用情况,可以看到有3.2G的空闲空间可用,板子上还是有充足的空间供大家使用的。
root@myd-jd9x:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 5.9G 2.4G 3.2G 42% /
devtmpfs 659.1M 0 659.1M 0% /dev
tmpfs 803.8M 0 803.8M 0% /dev/shm
tmpfs 803.8M 124.0K 803.7M 0% /tmp
tmpfs 803.8M 400.0K 803.4M 0% /run
root@myd-jd9x:~#
root@myd-jd9x:~# sync
root@myd-jd9x:~# time dd if=/dev/zero of=/root/test.bin bs=1MB count=1000 oflag=
direct
1000+0 records in
1000+0 records out
real 0m 11.42s
user 0m 0.00s
sys 0m 5.95s
root@myd-jd9x:~# echo 3 > /proc/sys/vm/drop_caches
root@myd-jd9x:~# time dd if=test.bin of=/dev/zero bs=1MB count=1000 iflag=direct
1000+0 records in
1000+0 records out
real 0m 3.16s
user 0m 0.00s
sys 0m 1.53s
root@myd-jd9x:~#
根据测试的情况,写入1GB内容到emmc里,花了11.42秒,写入速度是89.66MB每秒
从emmc读取1GB的内容,花了3.16秒 ,读取速度是327.15MB每秒
查看emmc的运行速度和模式
root@myd-jd9x:~# cat /sys/kernel/debug/mmc0/ios
clock: 200000000 Hz
actual clock: 199000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 3 (8 bits)
timing spec: 10 (mmc HS400 enhanced strobe)
signal voltage: 1 (1.80 V)
driver type: 0 (driver type B)
root@myd-jd9x:~#
可以看到emmc运行在HS400模式下,也就是该emmc颗粒的最高速度,时钟为200MHz,双沿模式,位宽为8bit。
该性能远远比官方评估手册里的36MB写,44MB读取要高得多。下图贴的是官方手册里emmc的速度测试内容