1 [![Build Status](https://travis-ci.org/gkostka/lwext4.svg)](https://travis-ci.org/gkostka/lwext4)
6 The main goal of the lwext4 project is to provide ext2/3/4 filesystem for microcontrollers. It may be an interesting alternative for traditional MCU filesystem libraries (mostly based on FAT32).
8 Lwext4 may be used with SD/MMC card, USB flash drive or other block based memory device. However it is not good for flash memory–based storage devices.
10 Code is also available on github:
11 https://github.com/gkostka/lwext4
13 Feel free to contact me:
14 kostka.grzegorz@gmail.com
19 The most of the source code of lwext4 was taken from HelenOS:
21 Some features are based on FreeBSD and Linux implementations.
23 KaHo Ng (https://github.com/ngkaho1234):
24 * advanced extents implementation
26 * metadata checksum suport
27 * many bugfixes & improvements
30 * https://github.com/ngkaho1234/fuse-lwext4
35 * filetypes: regular, directories, softlinks
36 * support for hardlinks
37 * multiple blocksize supported: 1KB, 2KB, 4KB ... 64KB
38 * little/big endian architectures supported
39 * multiple configurations (ext2/ext3/ext4)
40 * only C standard library dependency
41 * various CPU architectures supported (x86/64, cortex-mX, msp430 ...)
42 * small memory footprint
45 Memory footprint (for cortex-m4)
48 * .data: 8KB (minimum 8 x 1KB block cache)
51 Supported ext2/3/4 features
53 Features incompatible:
95 * blockdev - block devices set, supported blockdev
96 * demos - demo directory sources
97 * fs_test - test suite
98 * lwext4 - internals of the lwext4 library
99 * toolchain - specific toolchain cmake files
100 * CMakeLists.txt - CMake config file
101 * ext_images.7z - compressed ext2/3/4 100MB images
102 * fs_test.mk - automatic tests definitions
103 * Makefile - helper makefile to generate cmake and run test suite
104 * readme.mediawiki - readme file
110 * CMake: http://www.cmake.org/cmake/resources/software.html
111 * MinGw: http://www.mingw.org/
112 * GnuWin: http://gnuwin32.sourceforge.net/
132 Generic demo application
134 Simple lwext4 library presentation:
135 * load ext2/3/4 images
136 * load linux block device with ext2/3/4 part
137 * load windows volume with ext2/3/4 filesystem
138 * directory speed test
139 * file write/read speed test
141 How to use for images/blockdevices:
144 lwext4_generic -i ext_images/ext2
145 lwext4_generic -i ext_images/ext3
146 lwext4_generic -i ext_images/ext4
150 Build and run automatic tests
152 Build automatic test tools:
158 Uncompress ext/2/3/4 images:
162 Run server for one of the image file:
173 Cross compile standalone library
177 * arm-none-eabi-gcc for cortex-mX
179 * bfin-elf-gcc for bfin
180 * msp430-gcc for msp430
191 Build avrxmega7 library:
199 Build cortex-m0 library:
207 Build cortex-m3 library:
215 Build cortex-m4 library: