Hi,
Thanks for your valuable answer.
Yes, I forget to erase the mtdblock first.
After I used "mkyaffs" to erase the block, It shows from /proc/yaffs that nEraseblocks is 815.
I can write some files without the errors.
Then I got another problem, after I write some files(the total blocksize is 13M and I write around 5M data),
the nEraseblock went down to 0 and I got the same error message again.
Even I delete some files and the nEraseblock is always 0.
That means the flash is not fully released.
How to do the garbage collection?
How can my application know when to do the garbage collection?
Regards
Paul
----- Original Message -----
From: "Charles Manning" <
manningc2@actrix.gen.nz>
To: <
yaffs@lists.aleph1.co.uk>
Cc: "Paul Wang" <
wang_yulei@hotmail.com>; <
Charles.Manning@trimble.co.nz>; <
plima@dash.net>; <
bbarnett@dash.net>; <
gdagman@dash.net>
Sent: Tuesday, October 24, 2006 8:23 AM
Subject: Re: [Yaffs] yaffs problem: !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
On Sunday 22 October 2006 03:56, Paul Wang wrote:
> Hello,
>
> Sorry to disturb, I saw you discussed this problem last month.
> Is there any solution?
>
> I meet this problem and have no idea what to do.
> Currently I'm using Linux 2.6.12.
> And it's a 32M nand flash with 3 mtdbolcks.
> first 3M bytes reserved
> following 16M bytes file system(cramfs)
> last 13M bytes yaffs
>
> I can see it reports few bad blocks for the yaffs.
> I always get this error message
> -----------------
> yaffs tragedy: no more eraased blocks
> !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
This happens because you have no erased blocks to use for further allocation.
> ---------------------
> And what I did is just using VI to edit a file(no more than 30 bytes).
>
> I have attached the /proc/yaffs file and the message during linux start up.
From the /proc/yaffs
nErasedBlocks...... 0
What you don't say is when you captured the /proc/yaffs and how you got the
system into this state.
There should never be fewer than about 5 erased blocks.
Can you do the following:
1) Erase partition
2) Mount
3) capture /proc/yaffs and output from ls -ial
4) Do whatever it is you do to get into this state. With some explanation.
5) capture /proc/yaffs.
Thanx
-- Charles