smp8671/android下yaffs2文件莫名丢失及挂起问题分析11,现象:在smp8671-android数字电视系统开发过程中,系
smp8671/android下yaffs2文件莫名丢失及挂起问题分析1
1,现象:
在smp8671-android数字电视系统开发过程中,系统启动过程中偶尔会出现系统停止的情形。串口中有时会打印(link_image[2329]: failed to link libGLESv1_CM.so,有时还能运行shell命令,有时不能。
2,重现问题
为了抓取系统停止时的日志,特地做了一个不停重启,并且将日志打印到串口的一个init.rc。期望在正常情况下机器能够不停的重启,未正常运行到animation结束时,机器将保留当时状态。
在init.rc中添加如下内容:
static void yaffs_flush_inodes(struct super_block *sb){ struct inode *iptr, *next; yaffs_obj_t *obj; list_for_each_entry_safe(iptr,next,&sb->s_inodes, i_sb_list){ obj = yaffs_InodeToObject(iptr); if(obj){ yaffs_dev_t *dev = obj->my_dev; T(YAFFS_TRACE_OS, (TSTR("yaffs_flush_inodes: flushing obj %d, iptr 0x%p(0x%p), dev 0x%p, sb 0x%p\n"), obj->obj_id, iptr, next, dev, sb)); if (next == iptr) { T(YAFFS_TRACE_OS, (TSTR("yaffs_flush_inodes: point to self! break to next time flushing\n"))); break; } yaffs_flush_file(obj, 1, 0); } }}