linux-3.12.48内核向at91sam9g25平台移植小结
从5月底开始进行着手向9g25平台移植新的内核,到国庆开假后完成内核的移植(一些bsp底层驱动程序下一步完成)
用时四个月有余的业余时间方完成这一工作,这中间又有大部分时间没能利用起来,如果是工作时间来做的话,应该
也需要一个月的时间吧。
移植的过程中走了弯路,首先是内核版本选择上:开始时选择了最新的内核linux-3.18.20,作为长期支持版本想来
代码应该是不错的,事实上在移植的过程中进行的还算是顺利,不过在nand flash移植时,由于ECC校验方式被耽搁
了几天。
新版内核中,如果用户配置ECC_MODE为NAND_ECC_HW,默认是不使用PMECC的,在移植过程中修改代码使内核使
用PMECC,导致内核挂掉。一路通过printk打印的方式发现是由于计算硬件校验码处出现内存指针错误,由于这块原
理还没有清楚,加之默认地内核也不使用该功能,就暂时先搁置,以后有机会再研究。
后来再遇到的一个问题就是向内核打yaffs文件系统源码包编译错误的问题,可能是由于最新的内核修改了一些
VFS层的接口函数,而最新版本的yaffs源码包没能及时也做相应的修改吧,导致无法通过编译。想做一些代码上的
修改,但这块不熟悉,耗费精力太大,因此打算再换一版内核。
最后选用linux-3.12.48,将yaffs源码打补丁进内核源码树,编译能通过,同时这个版本的代码也是长期支持
版,因些又重新修改移植这版内核。这版本内核的
从5月底开始进行着手向9g25平台移植新的内核,到国庆开假后完成内核的移植(一些bsp底层驱动程序下一步完成)
用时四个月有余的业余时间方完成这一工作,这中间又有大部分时间没能利用起来,如果是工作时间来做的话,应该
也需要一个月的时间吧。
移植的过程中走了弯路,首先是内核版本选择上:开始时选择了最新的内核linux-3.18.20,作为长期支持版本想来
代码应该是不错的,事实上在移植的过程中进行的还算是顺利,不过在nand flash移植时,由于ECC校验方式被耽搁
了几天。
新版内核中,如果用户配置ECC_MODE为NAND_ECC_HW,默认是不使用PMECC的,在移植过程中修改代码使内核使
用PMECC,导致内核挂掉。一路通过printk打印的方式发现是由于计算硬件校验码处出现内存指针错误,由于这块原
理还没有清楚,加之默认地内核也不使用该功能,就暂时先搁置,以后有机会再研究。
后来再遇到的一个问题就是向内核打yaffs文件系统源码包编译错误的问题,可能是由于最新的内核修改了一些
VFS层的接口函数,而最新版本的yaffs源码包没能及时也做相应的修改吧,导致无法通过编译。想做一些代码上的
修改,但这块不熟悉,耗费精力太大,因此打算再换一版内核。
最后选用linux-3.12.48,将yaffs源码打补丁进内核源码树,编译能通过,同时这个版本的代码也是长期支持
版,因些又重新修改移植这版内核。这版本内核的