【转】搞定了YAFFS IMAGE烧写在新内核linux2.6.23.9上
来源:互联网 发布:郑州淘宝曹帅兵 编辑:程序博客网 时间:2024/05/20 18:43
来源:http://www.armchina.cn/article.asp?id=64
经过分析(参见我上一篇日志),一切都变得很明晰了!终于搞定了YAFFS IMAGE烧写在新内核linux2.6.23.9上。
新的yaffs2代码是通过nandmtd1_WriteChunkWithTagsToNAND写NAND的,写入nand的oob不再是调整的yaffs_spare结构,而是yaffs_PackedTags1结构!
在mkyaffsimage中却还是没有改过来。这也是为什么好多人反应,烧写的yaffs image在mount之后只能看见lost +found,其他什么都没有。
所以简单的修改一下mkyaffsimage.c就行拉,可以参考nandmtd1_WriteChunkWithTagsToNAND这个函数。
把修改mkyaffsimage的关键代码贴出来
static int write_chunk(__u8 *data, __u32 objId, __u32 chunkId, __u32 nBytes)
{
yaffs_Tags t;
yaffs_Spare s;
yaffs_PackedTags1 pt1; //add by hiboy
yaffs_ExtendedTags etags;
__u8 oobdata[16];
error = write(outFile,data,512);
if(error < 0) return error;
etags.chunkId = chunkId;
etags.serialNumber=0;
etags.byteCount=nBytes;
etags.objectId=objId;
yaffs_PackTags1(&pt1, &etags);
yaffs_CalcTagsECC((yaffs_Tags *)&pt1);
((__u8 *)&pt1)[8] = 0xff;
memset(oobdata,0xff,16);
memcpy(oobdata+8,&pt1,8);
nPages++;
//return write(outFile,&s,sizeof(yaffs_Spare));
return write(outFile,oobdata,16); //YTAG1_SIZE
}
这里的16字节oob符合nand mtd的要求,低8字节保留0xFF给MTD,高8字节yaffs_PackedTags1结构,符合目前yaffs2的代码。
这样通过mkyaffsimage制作的yaffsimage通过mtd_util烧到nand中就正确了:
./flasheraseall /dev/mtdX
./nandwrite -a -o /dev/mtdX YAFFSIMAGE
让uboot烧写yaffs也很简单了,因为先前我发布过能够烧写YAFFS的uboot,他使用nand而不是nand legacy,关于代码的修改就留给读者自行完成了。我回头也再试一下
- 【转】搞定了YAFFS IMAGE烧写在新内核linux2.6.23.9上
- linux2.6内核新特性
- Linux2.6内核的新特性
- 解决了2440液晶LCD在内核linux2.6.26.3上的一个问题
- yaffs文件系统在2.6内核上的移植
- yaffs文件系统在2.6内核上的移植
- yaffs文件系统在2.6内核上的移植
- YAFFS文件系统在2.6内核上的移植
- linux2.6内核中如何添加新的文件系统
- linux2.4到linux2.6内核调度(9)
- ok6410移植linux2.6.28加yaffs文件系统
- Linux2.6.37下移植yaffs文件系统
- linux2.6.14 yaffs移植遇到问题
- Linux2.6内核在嵌入式应用上的突破
- Linux2.6内核在嵌入式应用上的突破
- linux2.6内核在2410上的移植
- "Linux2.6内核在嵌入式应用上的突破" 勘误
- 基于linux2.6.27内核sep4020上ubifs的使用
- C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(四)实现2D人物动画①
- 备份Ubuntu操作系统
- ABS_Guide_Cn_1
- 或曰之三省吾身
- locate: warning: database /var/lib/slocate/slocate.db' is more than 8 days old
- 【转】搞定了YAFFS IMAGE烧写在新内核linux2.6.23.9上
- C#中英文语音合成与中文语音识别技术
- 【参考】+【原创】uboot 烧写 yaffs的补丁+补充
- 在SAP 菜单项上显示事务码
- 正确设置wince音量
- hdu 1267 下沙的沙子有几粒?
- /proc/[pid]/stat 文件解释
- C#中英文混合朗读文本代码
- 关于spring调用数据库连接池需要加载的包