uffs-1.2.0-source
所属分类:其他嵌入式/单片机内容
开发工具:C/C++
文件大小:803KB
下载次数:54
上传日期:2009-05-04 16:25:46
上 传 者:
lauren01
说明: nandflash文件系统源代码,已经经过测试没有问题。有需要的朋友可以参考一下
(the nandflash file system source code has been tested no problem.)
文件列表:
uffs-1.2.0-source\uffs-1.2.0-source\AUTHORS (41, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\CMakeLists.txt (93, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\COPYING (23242, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\doc\uffs-serial-num-relationship.JPG (26858, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\doc\Understanding UFFS.odp (362208, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\doc\Understanding UFFS.pdf (329772, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\Doxyfile (10151, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\CMakeLists.txt (95, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\emu\CMakeLists.txt (185, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\emu\cmdline.c (5622, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\emu\cmdline.h (1359, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\emu\helper_cmds.c (18894, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\emu\uffs_fileem.c (13484, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\emu\uffs_fileem.h (1246, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\emu\uffs_os_posix.c (2089, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\example\CMakeLists.txt (341, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\example\flash-interface-example.c (10301, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\example\static-mem-allocate.c (5434, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\ubuffer.h (2918, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs.h (3227, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_badblock.h (1318, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_blockInfo.h (2869, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_buf.h (3358, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_config.h (4326, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_core.h (1399, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_device.h (7390, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_ecc.h (1927, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_fd.h (1063, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_fs.h (3713, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_mem.h (2987, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_os.h (1391, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_public.h (8998, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_tree.h (5842, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_types.h (2631, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_utils.h (1811, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\inc\uffs\uffs_version.h (1169, 2009-03-06)
uffs-1.2.0-source\uffs-1.2.0-source\src\uffs\CMakeLists.txt (922, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\uffs\ubuffer.c (4271, 2009-03-31)
uffs-1.2.0-source\uffs-1.2.0-source\src\uffs\uffs_badblock.c (6848, 2009-03-06)
... ...
UFFS: Ultra-low-cost Flash File System
http://uffs.sf.net/
Author: Ricky Zheng
INTRODUCTION
------------
UFFS is a nand flash file system designed for embedded system.
UFFS have some unique and advanced features:
* Low cost: e.g. it needs only 1***K bytes RAM for 128 MBytes NAND
flash (512 bytes per page, 32 pages per block, total 8192 blocks).
* Fast booting: typically it only needs 1~3 seconds to mount full
loaded 128 Mbytes NAND flash (on ARM7 CPU).
* Superb Reliability:
- The file system is designed for the embedded system which may
frequently lost powre/reset without care.
- Journal file system, the file system will automatically rollback
to last state if the 'write' operation is interrupted by
accident (power lost/reset etc.).
- When 'write' return without error, the data is guarenteed be
saved to flash.
* Fast file create/read/write/seek.
* Bad-block tolerant, ECC enable and good ware-leveling.
* There is no garbage collection needed for UFFS.
* Support multiple NAND flash class in one system
* Support bare flash hardware, no operating system needed.
* Support static memory allocation. (from 1.2.0)
* Support "In-RAM" file system.
* Fully simulated on PC (Windows/Linux).
Disadvantage:
* space inefficency for small files: UFFS use at least one
'block'(the minial erase unit for NAND flash, e.g. 16K ) for a file.
* maximum supported blocks: 2^16 = 65535
Memory consuming example:
[VARY]Tree nodes: 16 * total_blocks
[CONST]Page Bufs: MAX_CACHED_BUFFERS(40) * (40 + pageSize(512)) = 22K
[CONST]Block Info caches: (24 + 14 * pages_per_block (32)) * MAX_CACHED_BLOCK_INFO (30) = 14K
Example 1: 128M bytes NAND, 8192 blocks, the total memory will be:
(16 * 8192)128K + 22K + 14K = 1***K bytes.
Example 2: 32M Bytes NAND, 2048 blocks, the total memory will be:
(16 * 2048)32K + 22K + 14K = 68K bytes.
Example 3: 16M bytes NAND, 1024 blocks, with smaller cache/buffer config, the memory will be:
Tree nodes: 16 * 1024 = 16K
Page Bufs: 10 * (40 + 512) = 5.4K
Block info caches: (24 + 14 * 32) * 10 = 4.6K
TOTAL: 16 + 5.4 + 4.6 = 26K
BUILD SIMULATOR REQUIREMENT
---------------------------
From V1.2.0, build uffs simulator requires 'cmake'.
'cmake' can be downloaded from: http://www.cmake.org/
or, under Debian/Ubuntu:
sudo apt-get install cmake
BUILD SIMULATOR ON LINUX
------------------------
1) create a 'build' dir along with uffs source dir, for example:
/+
+--build/
+--uffs-1.2.0/
|
2) create Makefiles and build:
cd build
cmake ../uffs-1.2.0
make
5) run simulator (interactive mode):
src/utils/mkuffs
BUILD SIMULATOR ON WINDOWS
--------------------------
1) create a 'build' dir along with uffs source dir,
/+
+--build/
+--uffs-1.2.0/
|
2) Create VC project files:
cd build
cmake ../uffs-1.2.0
3) Open uffs.dsw (or uffs.sln for VC > 6 ), compile & run.
LATEST SOURCE CODE
------------------
You can get the latest source code from SVN repository:
https://uffs.svn.sourceforge.net/svnroot/uffs/trunk
CURRENT STATUS
--------------
UFFS 0.1.x is a working version on PC simulator, also has been ported to
uBase embedded OS as a 'real world' product for thousands of copies,
it works fine so far.
UFFS 0.2.0 implementes full directory.
UFFS 1.0.0 is the first stable release at sf.net.
UFFS 1.1.0: support NAND flash with large page size (up to 2K).
UFFS 1.1.1: bug fixes. a tool for making uffs disk image.
UFFS 1.1.2: bug fixes. add more Flash Class. change Licence from GNU GPLv2 to GNU LGPLv2
UFFS 1.2.0:
- eliminate 'current path' and relatives. Now you should use absolute path in all uffs APIs. For dir, the fullname should end with '/'.
- allow using static memory allocation, 'malloc' is no longer needed.
- using cmake for building simulator.
- bug fixes & minor changes.
LICENCE
-------
For personal study, non-commercial purpose: GNU LGPLv2
For commercial purpose: GNU LGPLv2, and please send a notice mail to:
Ricky Zheng
Have fun !
近期下载者:
相关文件:
收藏者: