韦东山Linux嵌入式课程社区
直播中

王丽娟

7年用户 148经验值
私信 关注

去掉yaffs2启动后提示Partially written block x detected

每次打开开发板都会出现Partially written block xxx detected 而且会越来越多,看到了一些解释,但是似乎没有好的解决方法,现有方法是:
方法一,修改 yaffs_fs.c 中 yaffs_auto_checkpoint 改成 值 2
方法二,修改内核目录fs/yaffs2/yaffs_guts.c  中, static int yaffs_ScanBackwards(yaffs_Device * dev) 函数
(yaffs_guts.c文件的6437行)
在      T(YAFFS_TRACE_ALWAYS,    /*YAFFS_TRACE_SCAN*/
        (TSTR("Partially written block %d detected" TENDSTR),
        blk));
报错是由于YAFFS_TRACE_ALWAYS造成的。只要把它改成YAFFS_TRACE_SCAN 就OK了

试验第一种方法,启动时间从20秒降到10秒。
但是,烧写内核后的第一次启动,必须等到启动完成后给出一个提示(save exit: isCheckpointed 1)后再关机,再启动才可以缩短时间。如果在这个提示出现之前关机,下次开机还是很长时间。

第二种方法效果相同,但是奇怪的是板子总是在重启完成后10秒内自动重启,这可是严重的问题!

再试,两种方法都用上,结果是,烧写内核后第一次启动完成后,肯定会再自动重启一次。以后就可以了。但是如果在重启以后未出现isCheckpointed1提示之前重启或关机,下次重启后,必然会再次自动重启一次。

看来,第一种方法还是说得过去,至少可以说,这个启动跟电脑一样,没彻底完成重启之前关机,会导致下次启动时自检,因此启动时间加长。但是第二种方法会导致重启是不可接受的,原因还不知道。
第一种方法也有一个问题,终端上,只要操作一个命令行,不管是干什么,稍后就会跳出一个提示:
save exit: isCheckpointed 1,必须敲下回车才可以换行。
**********************************************
另外,在改写bootloader过程中,经常发现,多一句或少一句源码就会导致编译代码尺寸大幅变化,为什么呢? 疑惑。

回帖(3)

陈思阳

2019-7-10 09:58:02
使用新的yaffs补丁
举报

王登菊

2019-7-10 10:15:01
我现在用的文件系统是yaffs2格式的,还需要再打补丁吗?
举报

张倩

2019-7-10 10:33:28
补丁是把fs/yaffs2整个换掉的,不是在原来的YAFFS2基础上打
举报

更多回帖

发帖
×
20
完善资料,
赚取积分