You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
gkostka 914d1a53f6 1. Extra directory remove caching. 11 years ago
blockdev Support for large files and block devices. 11 years ago
demos Comments and some minor fixes. 11 years ago
lwext4 1. Extra directory remove caching. 11 years ago
toolchain Comments and some minor fixes. 11 years ago
CMakeLists.txt Update version to 0.3.0 to tag. 11 years ago
Makefile Upadate cmake file. 11 years ago
ext4.h Removed nasty tabs. 11 years ago
ext_images.7z BUGFIX: 11 years ago
readme.mediawiki Update readme file. 11 years ago

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