在dsp DM642上移植YAFFS2之二-----成功

    通过一个来月的努力,终于在DSP上跑起了yaffs2文件系统,

    其步骤如下:

 1,拷贝一定要用到的文件到CCS项目目录夹,建产一个main函数的文件,上面写上自己要做的一些文件操作,或者直接用dircet里面的测试程序。

 2,然后编译,改错加拷其它需要的文件,由于CCS是不管你的有没有用到该函数,都必需在编译时候有文件实体,所以所有相关文件得全部加进来,才能通过。另外估计要对linux 上的特有的数据结构进行重新自己定义。

 3,编译通过后,选其中一个设备进行配置,修改配置文件,在main函数里面只对选中的device进行操作,在这里我先选用的是ram2k的设备,即用ram来仿真nandflash,这里一定要注意修DSP,CCS里面的配置,使得仿nandflash需要的空间与平台的ram相适,否则会出错,出错很难查。

4,上步,通过一些简单的修改就可以跑通了。

5,设好dsp对nand的控制, 如读写擦除等,由于我的nandflash挂在FPGA上,而FPGA接DSP的EIMIF,所以要设计好转接口,

6,接口做好,就新建一个文件来做yaffs的底层interface函数,如

        int yflash_MarkNANDBlockBad(struct yaffs_DeviceStruct *dev, int blockNo);

 

        int yflash_EraseBlockInNAND(yaffs_Device *dev, int blockNumber)

 

        int yflash_QueryNANDBlock(struct yaffs_DeviceStruct *dev, int blockNo, yaffs_BlockState *state, int *sequenceNumber)

        int yflash_WriteChunkWithTagsToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data, yaffs_ExtendedTags *tags)

  

        static int  CheckInit(yaffs_Device *dev)

 

        int yflash_ReadChunkWithTagsFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *data, yaffs_ExtendedTags *tags)
       

 然后把这些新写的函数在setup里面配置到device里面去。    

 

7,读写文件,文件夹正常实现,成功

 

 

8,后继问题还有两个:一,是ECC功能的添加,  

                                二,坏块的管理

      因为在yaffs2的2Kpage里面好象没这个功能,是linux上的DMT接管了,所以还得加上这些管理的函数与存储才算正真完成。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值