暂无描述

Grzegorz Kostka 34379e1b97 lwext4-0.3.0 tag. 12 年之前
blockdev 5da941a9e4 Update project settings. 12 年之前
demos 148f66ad79 Comments and some minor fixes. 12 年之前
lwext4 0fba65e030 Documentation. 12 年之前
toolchain 148f66ad79 Comments and some minor fixes. 12 年之前
CMakeLists.txt 50f047bbaf Update version to 0.3.0 to tag. 12 年之前
Makefile f9e2936df6 Upadate cmake file. 12 年之前
ext4.h 049ed6f6e3 Removed nasty tabs. 12 年之前
ext_images.7z 974cf28b9b BUGFIX: 12 年之前
readme.mediawiki 3c55560f5f Update readme file. 12 年之前

readme.mediawiki

==About==

The main goal of the lwext4 project is to provide ext2/3/4 filesystem
library for microcontrolers with SD/MMC card support. Ext2/3/4, in my
opinion is one of the best filesystem for SD/MMC.

kostka.grzegorz@gmail.com

==Minimum memory requirements==

=====PROGRAM:=====
- 20KB
=====RAM:=====
- 8KB
=====STACK:=====
- 2KB


==ext2/3/4 vs FAT32==
;ext2/3/4 > FAT32
* fseek operation on big file in FAT32 is IO heavy
* ext2/3/4 HTREE directories operations are faster than FAT32
* ext4 extents makes truncate/remove opertion really fast
* more at https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout

;ext2/3/4 < FAT32
* FAT32 has smaller footprint

==Credits==

A lot of the implementation of lwext4 was taken from HelenOS:
http://helenos.org/

Some of ideas and features are based on FreeBSD and Linux implementations.

==Supported ext2/3/4 fs features==

;FEATURE_INCOMPAT (unable to mount with unsupported feature):
COMPRESSION: no
FILETYPE: yes
RECOVER: no
JOURNAL_DEV: no
META_BG: no
EXTENTS: yes
64BIT: yes
MMP: no
FLEX_BG: no
EA_INODE: no
DIRDATA: no

;FEATURE_COMPAT (able to mount with unsupported feature):
DIR_PREALLOC: no
IMAGIC_INODES: no
HAS_JOURNAL: no
EXT_ATTR: no
RESIZE_INODE: no
DIR_INDEX: yes

;FEATURE_RO (able to mount in read only mode):
SPARSE_SUPER: yes
LARGE_FILE: yes
BTREE_DIR: no
HUGE_FILE: yes
GDT_CSUM: yes
DIR_NLINK: yes
EXTRA_ISIZE: yes

==Supported filetypes:==
FIFO: no
CHARDEV: no
DIRECTORY: yes
BLOCKDEV: no
FILE: yes
SOFTLINK: no
SOCKET: no

==Other==
- block_size: 1KB, 2KB, 4KB ... 64KB
- little/big endian architecture support


==Project tree==

- blockdev - block devices set, supported blockdevs
-- filedev - file based block device
-- io_raw - wiodows IO block device

- demos - demo directory sources
-- generic - generic demo app, used for development and and debbuging purpose

- lwext4 - internals of the lwext4 library

- toolchain - specific toolchain cmake files

- ext4.h - lwext4 client library header
- CMakeLists.txt - CMake config file
- ext_images.7z - ext2/3/4 100MB images
- Makefile - helper makefile to call cmake
- readme.mediawiki - yes, you are here ;)

==Compile: Windows==
;Tools needed:
* CMake: http://www.cmake.org/cmake/resources/software.html
* MinGw: http://www.mingw.org/
* GnuWin: http://gnuwin32.sourceforge.net/

;Create CMake files:
make

;Remove CMake files:
clean

;Build
cd build_generic
make

==Compile: Linux==

Tools needed:
- CMake: http://www.cmake.org/cmake/resources/software.html

;Create CMake files:
make

;Remove CMake files:
clean

;Build
cd build_generic
make

==Generic demo applicarion==

Features:
- load ext2/3/4 images
- load linux block device with ext2/3/4 part
- load windows volume with ext2/3/4 filesystem
- directory speed test
- file write/read speed test

How to use:
Windows/Linux fileimages:
cd build_generic
fileimage_demo --in ext2

Windows volumes:
cd build_generic
fileimage_demo --in I: --wpart

Linux block devices:
cd build_generic
fileimage_demo --in /dev/your_block_device

Usage:
--i - input file (default = ext2)
--rws - single R/W size (default = 1024 * 1024)
--rwc - R/W count (default = 10)
--cache - 0 static, 1 dynamic (default = 1)
--dirs - directory test count (default = 0)
--clean - clean up after test
--bstat - block device stats
--sbstat - superblock stats
--wpart - windows partition mode


==Cross-Compile==

Toolchain for ARM Cortex-m3/4: https://launchpad.net/gcc-arm-embedded
Toolchain for Blackfin: http://blackfin.uclinux.org/doku.php

Build bf518 library:
make bf518

Build cortex-m3 library:
make cortex-m3

Build cortex-m4 library:
make cortex-m4

==Ports==
*Blackfin BF518 EZKIT SD Card Demo: TBD
*STM32F4-Discovery SD Card Demo: TBD

==Footprint==

TBD