一个YAFFS引发的一系列问题

来源:互联网 发布:淘宝上卖的一碗泄油汤 编辑:程序博客网 时间:2024/05/21 10:03

最近给Tq2440移植uboot,卡在最后一步了,就是烧写文件系统,运行linux,因为没深入了解yaffs源码,所以遇到的问题比较多,最大的问题就是频繁出现以下提示:
Unable to handle kernel NULL pointer dereference at virtual address xxxx。
针对这个问题,首先要确定以下几个关键部分:根文件系统,内核支持的yaffs,交叉编译器等,只要涉及到的就都可能会出错。
后来我在尝试了数个linux内核版本和数个版本的yaffs,也是一直提示这个问题,大部分出现的问题都是yaffs源码的一些函数,偶然看到一篇博文提到,yaffs更新速度慢于linux五个月左右,于是我找了一个3.4.2版本的内核(09-Jun-2012),然后找了个合适的yaffs(2013-05-13),编译烧写完全没问题,甚至yaffs接口yaffs_vfs.c文件都没有出现未定义的一些问题。
总结: 如果对yaffs源码不足够熟悉,及对linux内核更新的特性不够了解,很容易出现两者直接的代码融合性问题,对于使用的内核版本,最好用yaffs超前五个月左右的源码。