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 !

近期下载者

相关文件


收藏者