怎么eMMC很暗扣容易坏怎么办吗

碎碎念android eMMC
时间: 18:56:00
&&&& 阅读:739
&&&& 评论:
&&&& 收藏:0
标签:一、/dev/block
root@:/dev/block #ls
bootdevice
mmcblk0p10
mmcblk0p18
mmcblk0p19
mmcblk0p20
mmcblk0p29
mmcblk0p30
mmcblk0rpmb
LK获取分区信息&
smem_ptable_init()从SMEM的entry
SMEM_AARM_PARTITION_TABLE中读取分区信息,保存在smem_ptable结构中(hard
coded)。调用smem_add_modem_partitions()将smem_ptable中的内容解析出来保存在flash_ptable中.&
将分区信息传递给kernel&
Lk将分区信息打包成atag形式传递给kernel,让kernel知道分区信息。&
target_atag_mem()-&flash_get_ptable()&
Kernelget the partition info and add partition:&
blkdev_get_by_path()-&blkdev_get()-&__blkdev_get()-&&
rescan_partitions()-&add_partition()
/dev/block/bootdevice/by-name/xxx,目录及后面的链接是在userspace的init进程中创建出来的,init收到增加新分区的uevent事件后,构造出以上by-name下的文件。
Code:system/core/init/devices.c
Function:parse_platform_block_device(structuevent*uevent)&
二、/sys/class/mmc_host/mmc0/mmc0:0001
root@:/sys/class/mmc_host/mmc0/mmc0:0001#ls
enhanced_area_offset
enhanced_area_size
erase_size
preferred_erase_size
raw_rpmb_size_mult
rel_sectors
runtime_pm_timeout
三、/sys/block/mmcblk0
root@:/sys/block/mmcblk0 #ls
alignment_offset
bkops_check_threshold
capability
discard_alignment
mmcblk0p10
mmcblk0rpmb
no_pack_for_random
num_wr_reqs_to_start_packing
Size&& // emmc size = Size * 512Btye
四、/proc/partitions
root@:/proc # cat partitions&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
major minor& #blocks& name
&253&&&&&&& 0&&&&486188 zram0
&179&&&&&&& 0&& mmcblk0&&& //emmc size,单位KB
&179&&&&&&& 1&&&&&65536 mmcblk0p1
&179&&&&&&& 2&&&&&&&512 mmcblk0p2
&179&&&&&&& 3&&&&&&&512 mmcblk0p3
179&&&&&& 15&&&&&&&& 16 mmcblk0p15
&179&&&&&& 16&&&&&20480 mmcblk0p16
179&&&&&& 26&&& 2097152 mmcblk0p26
&179&&&&&& 27&&&&&&&512 mmcblk0p27
&179&&&&&& 28&&&&&&&& 32 mmcblk0p28
&179&&&&&& 29&&&&&65536 mmcblk0p29
&179&&&&&& 30&&&&268288 mmcblk0p30
&179&&&&&& 31&& mmcblk0p31
&179&&&&&& 32&&&&&&4096 mmcblk0rpmb
五、多种size规格eMMC兼容方案一:利用文件系统自身resize功能
mountdata之前,比较super
block的size与block deviceszie,不一样就去resize。
六、多种size规格eMMC兼容方案之二:第一次开机format data分区
如果使用的filesystem没有resize功能,比如f2fs,
那只能采用此种办法啦:
不下载userdata.img
mountdata之前,fs_mgrservice判断是否会第一次开机,如果是,则启动format
system/core/fs_mgr
七、存储空间保护,防止空间满导致系统启动异常
内置sd卡保护:
fuse增加保护,内置sd卡最大可写容量data total size-reserved(50MB)
Code:system/core/sdcard/sdcard.c
#define LIMIT_SDCARD_SIZE
Mtpservice增加保护,PC可写的最大可写容量internalsdcardfs
total size-reserved
code:frameworks/base/services/java/com/android/server/MountService.java
FileSystem保护:
Ext4文件系统增加保护,保留16MB给uid&= 10010的使用
Code:kernel/fs/ext4/balloc.c
init.{platform}.rc:exec /system/bin/tune2fs -Ohas_journal
-u 10010 -r 4096 /dev/block/platform/mtk-msdc.0/by-name/userdata&
resv_clusters:&-r blocks=MB
dirty_clusters:&default 16M当flags有EXT4_MB_USE_RESERVED才可写
sbi-&s_resuid:-u10010
sbi-&s_resgid:tune2fs没有传递default0
八、eMMCworkload & performance log
1.Workload是根据什么计算出来的呢?&
500ms内花在io上的时间比例&
/kernel/drivers/mmc/card/block.c&
static intmmc_blk_issue_rw_rq(structmmc_queue
*mq,struct request *rqc)&
xlog_printk(ANDROID_LOG_DEBUG,&BLOCK_TAG&, &mmcqd:%d Workload=%d%%, duty %lld,period
%lld00, req_cnt=%d \n&,mmcqd[idx],t_percent,t_usage,t_period,mmcqd_rq_count[idx]);&
2.能否知道主要哪个app占得workload?&
/kernel/drivers/mmc/card/block.c&
static intmmc_blk_issue_rw_rq(structmmc_queue
*mq,struct request *rqc)&
sprintf (g_pid_logger[index].pid_buffer+i*37,&{%05d:%05d:%08d:%05d:%08d}&,g_pid_logger[index].pid_logger[i],g_pid_logger[index].pid_logger_counter[i],g_pid_logger[index].pid_logger_length[i],g_pid_logger[index].pid_logger_r_counter[i],g_pid_logger[index].pid_logger_r_length[i]);&
如 {:78:}含义:pid为26626的进程500ms内read3512KB()的数据,write0KB的数据。&
可以查看某段时间内,各个进程读写的情况,进而判断是哪个进程占用的worload比较高;&
3. 当workload比较高的时候,log打印read、write也比较高,能否说明emmc是没有问题的?&
&6&[] (5)[142:mmcqd/0][BLOCK_TAG]mmcqd:142 Workload=63%, duty , period , req_cnt=1426
&6&[] (5)[142:mmcqd/0][BLOCK_TAG] mmcqd:142 WriteDiversity=5553653 sectors offset, req_cnt=12, break_cnt=0, tract_cnt=0,bit_cnt=0
&6&[] (0)[142:mmcqd/0][BLOCK_TAG] mmcqd:142 ReadDiversity=607567 sectors offset, req_cnt=1414, break_cnt=0, tract_cnt=0,bit_cnt=0&
&6&[] (0)[142:mmcqd/0][BLOCK_TAG] mmcqd:142 WriteThroughput=69222 kB/s, size: 692224 bytes, time:10 ms&
&6&[](0)[142:mmcqd/0][BLOCK_TAG] mmcqd:142 Read Throughput=93819 kB/s, size: bytes, time:306 ms
是的。从log看,eMMC的performance还可以。
九、eMMC ext_csd
root@:/sys/kernel/debug/mmc0/mmc0:0001# catext_csd&&&&&&&&&&&&&&&&&&&
十、eMMC&HS200 & HS400
十一、eMMC cache
cache对emmc write performance影响很大,使能它。
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!闪存还是eMMC华为荣耀9又被骂哭了
稿源:关注国产手机
本来eMMC 5.1没有什么问题,但是被华为带坏了!此前的华为P10由于闪存混用UFS 2.1还是eMMC 5.1而备受争议,P10也因闪存门在一定程度上影响到了品牌口碑与销量。日前,华为再次发布了新款荣耀9旗舰手机,然而荣耀9闪存用还是eMMC,最近又被骂哭了。最近荣耀9发布,荣耀9采用5.15英寸1080P显示屏,麒麟960处理器,提供4GB+64GB、6GB+64GB和6GB+128GB选择,荣耀9采用1200万像素+2000万像素的彩色+黑白后置双摄,支持人像模式,内置3200mAh电池,支持最高9V/2A的快充技术。由于华为P10闪存门的曝光,很多人对eMMC 5.1非常敏感,荣耀9发布会现场有媒体测试了荣耀9的的闪存规格,确认为eMMC 5.1,看来应该是全系标配了,只要不涉及虚假宣传,eMMC 5.1加上好的优化,体验上应该问题不大。客观来说工作模式,UFS都全面领先于eMMC,存储速上UFS 2.1>UFS 2.0>eMMC 5.1。对于配置过硬的手机体验影响并不大,只不过华为的P10闪存门越闹越大,大家现在对eMMC口碑都十分不好。一加手机CEO微博表示现在旗舰机用UFS都成为卖点,太有意思了。确实每个手机厂商都会拿华为闪存门来说事,这得让eMMC多尴尬,当然是被华为拉下水的,本次华为荣耀9全系列闪存采用eMMC,这回又要被骂哭了。
有好的文章希望站长之家帮助分享推广,猛戳这里
本网页浏览已超过3分钟,点击关闭或灰色背景,即可回到网页【图文】eMMC完全解读、一份很好的eMMC学习资料_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
eMMC完全解读、一份很好的eMMC学习资料
大小:6.49MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢eMMc损坏,求问如何处理【win8平板吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:117,900贴子:
eMMc损坏,求问如何处理收藏
平板开机后运行一些程序就会蓝屏,提示kernel data inpage error,win8下能正常读写,但只要一重启都会还原成第一次蓝屏前的数据。高级启动、恢复、初始化等等关机再开后就跟没设定过一样还是平常开机。各种尝试均无效,一怒之下进pe打算格式化C盘,结果提示格式化失败,大概是eMMc损坏了。百度搜索后就发现了字库门,也是三星eMMc损坏,虽然型号不一样也有一段时间了,不过症状貌似差不多,想想当时还为是三星的eMMc感到高兴。。。真是心灰。损坏原因不明,根据字库门的描述是突然断电引起的,不过虽然出问题前有一次强行关机,不过离出现问题差不多有2小时的开机时间,现实时间有16小时了,也不知道是不是断电引起的。好吧说这些只是想问一下这种情况的eMMc还能修不?或者我应该顺势换一张64G的?顺便求问哪些地方有能力修理或更换?另外现在寨板用的三星eMMc基本都是同一个型号,既然已经出现了这种情况就可能有第二次,吧友们平时使用时多注意一下。
苏宁易购苹果平板,正品行货+百城半日达,全国联保,服务一站式,全场为你而省!苏宁易购苹果平板,支持货到付款,让您省钱省心!
三星的最垃圾
三星手机自家cpu也出现过字库门  我是锤不扁、砸不烂、煮不熟、嚼难咽、剪不断、理还乱、响当当的一条小尾巴   --来自诺基亚3100客户端
可以换,有人换成功过,换后进pe系统格式化分区后重装系统就行了
保修或者自己去换个emmc
这emmc不是焊主板上的?… 如果你这都能弄 你动手能力要超强的…
登录百度帐号推荐应用

我要回帖

更多关于 藕怎么保存不容易坏掉 的文章

 

随机推荐