2009.7.21
yaffs2 在 2.6.22的 kernel 上表现很正常,但在老的 2.6.12 上,则出现问题。
无奈之下只好阅读 yaffs2 的代码
fs/yaffs2/yaffs_mtdif2.c 中的 nandmtd2_ReadChunkWithTagsFromNAND 函数从nand flash 中
读取 oob 信息, 获取 yaffs_ExtendedTags tags,
if (tags){
memcpy(&pt, dev->spareBuffer, sizeof(pt));
yaffs_UnpackTags2(tags, &pt);
if(pt.t.chunkId != -1)
{
printk("yaffs_UnpackTags2 chunkId = %x addr = %x/n", pt.t.chunkId, addr);
int i = 0;
for(; i<28; i++)
{
yaffs2应用到较老版本linux上时的问题 (移植日记)
最新推荐文章于 2024-04-07 11:31:38 发布
在将yaffs2移植到2.6.12旧版Linux内核时遇到读取OOB信息错误,通过分析源码和文档,发现数据偏移问题。解决方案包括在读取OOB时添加2字节偏移,并避免使用`mtd->read_ecc`函数,改为分别调用`mtd->read`和`mtd->read_oob`。最终成功解决读写问题,使2.6.12内核能正常使用yaffs2。

&spm=1001.2101.3001.5002&articleId=4367918&d=1&t=3&u=1e5c34c5ab4a4051931770874b48cc8a)
3333

被折叠的 条评论
为什么被折叠?



