明远智睿技术论坛

标题: EK314的EMMC是否可以覆盖写? [打印本页]

作者: yt_p    时间: 2016-10-10 16:40
标题: EK314的EMMC是否可以覆盖写?
我在uboot下对emmc进行擦除,发现emmc擦除是以512个block为单位进行擦除,但是如果我擦除的大小超过了512个block就会很容易失败。例如:mmc erase 3000 200就会成功, mmc erase 3000 1000通常会失败。
因为我要在uboot下更新文件系统,约128MB, 如果以512个block为单位进行擦除,需要进行512次擦除操作,里面消耗了约20分钟,难以忍受啊。
但后来我发现我不对emmc进行擦除,将文件系统写进去也是可以启动的,而且很正常,消耗的时间1分钟都不到,我看了一下mfg里面的xml文件的内容,里面也没有对emmc进行擦除,所以就想请教一下emmc是否不擦除也可以?也就是标题上的覆盖写。

作者: 软件01    时间: 2016-10-11 14:57
xml文件是用fdisk类似相关命令分区,然后用mkfs.ext3格式化分区的空间,最后mount -t ext3的相关命令挂载分区,复制文件系统文件到分区里面。你想通网盘烧写128M的文件系统吗,你打包成什么格式?
作者: yt_p    时间: 2016-10-11 17:06
烧系统这个是没有问题的,我是想问一下在uboot下擦除EMMC应该怎么擦?
作者: 软件01    时间: 2016-10-12 10:33
yt_p 发表于 2016-10-11 17:06
烧系统这个是没有问题的,我是想问一下在uboot下擦除EMMC应该怎么擦?

mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
mmc rescan
mmc part - lists available partition on current mmc device
mmc dev [dev] [part] - show or set current mmc device [partition]
mmc bootpart [dev] [part] - show or set boot partition
mmc list - lists available devices

Program the kernel uImage located in RAM at ${loadaddr} into the microSD. For
example the command to write the image with the size 0x400000 from ${loadaddr}
to the offset of 0x100000 of the microSD card. Refer to the following examples for
the definition of the mmc Parameters.

blk# = (microSD Offset)/(SD block length) = 0x100000/0x200 = 0x800
cnt = (image Size)/(SD block length) = 0x400000/0x200 = 0x2000

详细的需要计算一下


作者: yt_p    时间: 2016-10-12 12:00
这个我已经知道了,是我表达不好吧。我问的是mmc erase 0x3000 0x1000 这样就会出错,而且擦除很慢。而且才擦这么一点,要是以后我擦0x40000(其实是0x40000*0x200这么大,大小我清楚的),这就需要很久了。
到底是硬件原因还是软件原因导致擦除的那么慢,还会出错呢?
作者: 软件01    时间: 2016-10-12 14:08
yt_p 发表于 2016-10-12 12:00
这个我已经知道了,是我表达不好吧。我问的是mmc erase 0x3000 0x1000 这样就会出错,而且擦除很慢。而且才 ...

我们分区都是烧写时分区,很少在u-boot里分区。10M的空间留给uImage ,你可以擦除稍微大点试试




欢迎光临 明远智睿技术论坛 (http://bbs.myzr.com.cn/) Powered by Discuz! X3.2