1 [![Build Status](https://travis-ci.org/gkostka/lwext4.svg)](https://travis-ci.org/gkostka/lwext4)
5 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).
7 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.
9 Code is also available on github:
10 https://github.com/gkostka/lwext4
12 Feel free to contact me:
13 kostka.grzegorz@gmail.com
17 The most of the source code of lwext4 was taken from HelenOS:
19 Some features are based on FreeBSD and Linux implementations.
21 KaHo Ng (https://github.com/ngkaho1234):
22 * advanced extents implementation
24 * metadata checksum suport
25 * many bugfixes & improvements
28 * https://github.com/ngkaho1234/fuse-lwext4
32 * filetypes: regular, directories, softlinks
33 * support for hardlinks
34 * multiple blocksize supported: 1KB, 2KB, 4KB ... 64KB
35 * little/big endian architectures supported
36 * multiple configurations (ext2/ext3/ext4)
37 * only C standard library dependency
38 * various CPU architectures supported (x86/64, cortex-mX, msp430 ...)
39 * small memory footprint
42 ;Memory footprint (for cortex-m4):
44 * .data: 8KB (minimum 8 x 1KB block cache)
47 ==Supported ext2/3/4 features==
48 ;Features incompatible:
84 * blockdev - block devices set, supported blockdev
85 * demos - demo directory sources
86 * fs_test - test suite
87 * lwext4 - internals of the lwext4 library
88 * toolchain - specific toolchain cmake files
89 * CMakeLists.txt - CMake config file
90 * ext_images.7z - compressed ext2/3/4 100MB images
91 * fs_test.mk - automatic tests definitions
92 * Makefile - helper makefile to generate cmake and run test suite
93 * readme.mediawiki - readme file
97 * CMake: http://www.cmake.org/cmake/resources/software.html
98 * MinGw: http://www.mingw.org/
99 * GnuWin: http://gnuwin32.sourceforge.net/
112 ==Generic demo application==
113 Simple lwext4 library presentation:
114 * load ext2/3/4 images
115 * load linux block device with ext2/3/4 part
116 * load windows volume with ext2/3/4 filesystem
117 * directory speed test
118 * file write/read speed test
120 How to use for images/blockdevices:
122 generic -i ext_images/ext2
123 generic -i ext_images/ext3
124 generic -i ext_images/ext4
127 ==Build and run automatic tests==
128 Build and run automatic tests
129 Build automatic test tools:
133 Uncompress ext/2/3/4 images:
135 Run server for one of the image file:
142 ==Cross compile standalone library==
144 * arm-none-eabi-gcc for cortex-mX
146 * bfin-elf-gcc for bfin
147 * msp430-gcc for msp430
155 Build avrxmega7 library:
160 Build cortex-m0 library:
165 Build cortex-m3 library:
170 Build cortex-m4 library: