Chinaunix首页 | 论坛 | 博客
  • 博客访问: 153170
  • 博文数量: 28
  • 博客积分: 1476
  • 博客等级: 上尉
  • 技术积分: 356
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-11 11:39
文章分类
文章存档

2011年(1)

2010年(18)

2009年(9)

我的朋友

分类:

2009-11-12 17:45:24

    今天又看了一天yaffs文件系统代码,查看了半个月的资料与源代码,今天终于将yaffsfs.c文件中的yaffs_mount函数一步一步用GDB调试完了,明白了个80%。yaffs_mount函数中主要的函数只有两个:yaffsfs_FindDeviceyaffs_GutsInitia
lise。后者则是最重要的,一切的初始化都在这里面。然后开始调试yaffs_open中的函数,已经调试到了yaffs_guts.c中的yaffs_CreateNewObject函数,并当文件类型为YAFFS_OBJECT_TYPE_FILE时,以树的形式构造一个可读写的文件。明天继续从这里调试,争取明天一天将yaffs_write和yaffs_read两个函数调完,如果能调完,剩下的就只有yaffs_close和yaffs_unmount两个函数了。
    只要能把以上几个函数搞明白,yaffs文件系统的核心部分也就明白了。剩下的就是各种测试,争取把yaffs文件系统的全部代码弄透。然后就可以着重于与nand flash的接口部分了。下一步的计划是,接合MTD抽象层,看看yaffs是如何通过MTD层与nand通信的。
    今天在调试过程中遇到的问题:
    1,指针的传输,当定义一个指针char *name后,可使用该指针做为参数传递给函数,当使用&name传递时,传的是指针所在的地址;当使用name传递时,传的是指针所指向的内容。今天晚上的工作是写一个测试用例,测试这样的解释是否正确。可以参考yaffsfs.c文件中的yaffsfs_FindObject函数,在358行。注意name指针的传递用法。
    2,修改dtest.c中的代码,将yaffs_open函数中的第一个参数改为:
    (1) /yaffs2/hello/world/hello.txt
    (2) /yaffs2/hello/////hello.txt
    (3) /yaffs2/hello///world///hello.txt///
     (4) //yaffs2/hello.txt
阅读(1022) | 评论(0) | 转发(0) |
0

上一篇:开始写博客

下一篇:使用GDB查看内存

给主人留下些什么吧!~~