smp8671/android上yaffs2文件莫名丢失及挂起有关问题分析1

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);        }    }}