Wear Leveling support in NOR Flash - WinCE 6.0
SIDDIQ posted on Monday, December 14, 2009 7:14 AM
I am using 256MB NOR Flash. I need to support "wear Leveling". Is WinCE 6.0 FAL.lib supports "Wear Leveling" by default. If yes, Where can I find the support in WinCE 6.0?. Please help me in this regard. Thanks in advance.
Windows CE 6.
cjay replied to SIDDIQ on Monday, December 14, 2009 7:37 AM
Windows CE 6.0 does provide some implementation for wear-leveling although on NOR flash devices this is not as critical as it is on NAND flash devices as NOR flash devices are not prone to bad blocks unlike NAND flash. Depending upon the level of PRIVATE source code you have installed the FAL sources are here: \WINCE600\PRIVATE\WINCEOS\DRIVERS\MSFLASH\SRC CJ -- http://developce.blogspot.com/
Thanks Cjay for your information.
SIDDIQ replied to cjay on Tuesday, December 15, 2009 12:31 AM
Thanks Cjay for your information. So this wear Leveling support will be added by default in WinCE for both NOR Flash & NAND Flash.
If your block driver links with FAL.
Henrik Viklund [eMVP] replied to SIDDIQ on Tuesday, December 15, 2009 8:26 AM
If your block driver links with FAL.lib you should be OK, and you are probably OK even if it dosn't. In fact, wear leveling comes as a side effect of the sector write speed optimization algoritms that you pretty much need to have in place in order to get decent modify/write performance out of flash devices. Rather than waiting for a slow erase operation to finish the modified data is instead moved to a fresh sector and the old sector is then erased in a background operation. This functionality is implemented by FAL. Henrik Viklund Prevas AB NOR ugh on as FAL CE 6.0 the ing
On 12/14/2009 1:37 PM, cjay wrote:Wear leveling is not only about bad-blocks
Valter Minute [eMVP] replied to cjay on Monday, December 21, 2009 9:28 AM
Wear leveling is not only about bad-blocks management. it is true, as you said, that NOR flash has no bad-blocks and do not need CRC or other ways to manage corrupted data, but the number of erase cycles of each flash block is still limited (and usually lower on NOR flashes than in NAND ones), so you have to distribut the block-rewrite operation evenly among the blocks or you will risk to "kill" your flash by repeatedly changing the same block (and if you have FAT filesystem this may happen on the block that holds FAT sectors and it is update every time you access a file, modifying its access date). Obviously you can damage your flash also with wear-leveling, only in a much longer time. If you do not have this directory on your system you may need to install the shared source. Simply restart windows CE setup from the original DVD, select "modify installation" and choose the shared source component. -- Valter Minute (eMVP) Training, support and development for Windows CE: www.fortechembeddedlabs.it My embedded programming and cooking blog: www.geekswithblogs.net/WindowsEmbeddedCookbook Windows Embedded support forums in Italian: http://social.msdn.microsoft.com/Forums/it-IT/windowsembeddedit/threads (the reply address of this message is invalid)