搜索
bottom↓
回复: 9

yaffs作者很有意思的邮件回复,,并贴一段NandFlash模拟代码

[复制链接]

出0入0汤圆

发表于 2011-1-19 22:23:24 | 显示全部楼层 |阅读模式
1、这段时间深入分析了yaffs2文件系统,去掉linux相关的代码,用于普通OS如uCOS-II的(yaffs的direct接口)相关的代码有1.5万行左右,

yaffs看的比较辛苦,代码更新很频繁,其文档较少,而且比较老。看了第一遍,基本理解了yaffs。

移植到9260板子上,使用内存模拟的方式(申请一片内存模拟NandFlash器件),和使用K9F1208,都正常跑起来了。
在k9f1208上还实现了yaffs2模式,原理是是将k9f1208的两个页(512字节)合并为一个大页(1K字节)使用,因为运行yaffs2要求NandFlash芯片每页大小至少为(数据区1K + spare区32字节)。

还有一些细节问题,接下来将进行第二遍代码深入的分析。

yaffs有个邮件列表,讨论了一些技术问题,下面这封邮件比较有意思,哈哈。。。


---某个工程师,从邮件unication.com.cn来看,估计是个国内的,他说:
我喜欢yaffs,但是我认为现有的yaffs文档太旧了,不能反映最新的yaffs代码。为什么?
On Wednesday 06 August 2003 21:28, guo@unication.com.cn wrote:
> Hi all,
> I like YAFFS. I think documents maybe old. Why?


下面是yaffs作者的回复

这段大意是:大多数yaffs文档时比较陈旧的。当然文档越多越好。目前的这些文档似乎
已经足够了(因为很多人在使用yaffs,但是他们从来没有在邮件列表里提过一个问题,
所以我认为,既然他们没有提过问题,那也就是他们用yaffs用的好好的,这些文档够他
们用起yaffs了)
Yes, much of the YAFFS documentation is old. More documentation could make it
more useful. The current doicumentation seems to be sufficient for most
hackers (there are a lot of people using YAFFS who have never even asked a
single question on the list).


-- 下面这两段很有意思,大意是 : 用在yaffs上的时间是我的业余时间,更新和支持yaffs是
没有任何报酬的。如果有人愿意帮助写文档,或者支付酬金,我相信yaffs的文档会不断更新。

YAFFS is currently an unfunded exercise. At the moment all the time I put
into YAFFS is just my free time - I get no payment for continuing to
update/support YAFFS.

If someone else wants to help write documentation, or wants to pay for it I
am sure the documentation can be improved.

-- CHarles  --yaffs的作者

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2011-1-19 22:29:17 | 显示全部楼层
2、下面这段是yaffs用内存模拟一个NandFlash器件的代码,,用到了比较经典的C指针内容

//页结构体,每页有512字节和16个spare字节
typedef struct {
        u8 data[528]; // Data + spare
} yRamDisk1_page;

//块结构,由32个页构成一块                  
typedef struct {
        yRamDisk1_page page[32]; // The pages in the block
} yRamDisk1_block;

//设备结构体                        
typedef struct {
        yRamDisk1_block **block;
        int nBlocks;
} yRamDisk1_device;

//定义设备                        
static yRamDisk1_device RamDisk1;


RamDisk1.nBlocks = (SIZE_IN_MB * 1024 * 1024)/(16 * 1024);//SIZE_IN_MB=2,表示2M字节用于模拟NandFlash
        
RamDisk1.block = malloc( sizeof(yRamDisk1_block *)  *  RamDisk1.nBlocks );//分配内存,共nBlocks个指针,每个指针4个字节,为块结构体指针
        
        
for(i=0; i <RamDisk1.nBlocks && !fail; i++){
        RamDisk1.block = malloc( sizeof(yRamDisk1_block) );//给每个块指针分配数据区域,大小为sizeof(yRamDisk1_block)
}

出0入0汤圆

 楼主| 发表于 2011-1-24 15:54:40 | 显示全部楼层
没人研究yaffs吗?

出0入0汤圆

发表于 2011-3-2 09:20:29 | 显示全部楼层
回复【2楼】nicholasldf  luo
-----------------------------------------------------------------------

我正在看yaffs,想把yaffs移植到STM32里,开发环境用的是IAR,已经忙活几天了,一点进展也没有。
这位大牛没能不能给点儿提示和资料。

出0入0汤圆

发表于 2011-3-2 09:35:04 | 显示全部楼层
yaffs2第一次听说

出0入27汤圆

发表于 2011-3-2 09:47:44 | 显示全部楼层
1073方案的播放机就用这种方案,现在转squashfs格式了。

出0入0汤圆

发表于 2011-12-23 14:51:45 | 显示全部楼层
以前也没听说过,现在听说了,学习!

出0入0汤圆

发表于 2012-9-14 21:20:33 | 显示全部楼层
顶起顶起顶起

出0入0汤圆

发表于 2017-11-3 17:01:41 | 显示全部楼层
woailaoxiang 兄弟你成功了吗?用32控制NANDFLASH

出0入0汤圆

发表于 2017-11-3 21:43:37 | 显示全部楼层
楼主用的9260是ATMEL的还是ASM9260 ?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 09:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表