1 [![Build Status](https://travis-ci.org/gkostka/lwext4.svg)](https://travis-ci.org/gkostka/lwext4)
3 ![lwext4](https://cloud.githubusercontent.com/assets/8606098/11697327/68306d88-9eb9-11e5-8807-81a2887f077e.png)
8 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).
10 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.
12 Code is also available on github:
13 https://github.com/gkostka/lwext4
15 Feel free to contact me:
16 kostka.grzegorz@gmail.com
21 The most of the source code of lwext4 was taken from HelenOS:
23 Some features are based on FreeBSD and Linux implementations.
25 KaHo Ng (https://github.com/ngkaho1234):
26 * advanced extents implementation
28 * metadata checksum support
30 * many bugfixes & improvements
33 * https://github.com/ngkaho1234/fuse-lwext4
38 * filetypes: regular, directories, softlinks
39 * support for hardlinks
40 * multiple blocksize supported: 1KB, 2KB, 4KB ... 64KB
41 * little/big endian architectures supported
42 * multiple configurations (ext2/ext3/ext4)
43 * only C standard library dependency
44 * various CPU architectures supported (x86/64, cortex-mX, msp430 ...)
45 * small memory footprint
48 Memory footprint (for cortex-m4)
51 * .data: 8KB (minimum 8 x 1KB block cache)
54 Supported ext2/3/4 features
56 Features incompatible:
77 * has_journal: yes (in progress)
98 * blockdev - block devices set, supported blockdev
99 * fs_test - test suite, mkfs and demo application
100 * lwext4 - internals of the lwext4 library
101 * toolchain - specific toolchain cmake files
102 * CMakeLists.txt - CMake config file
103 * ext_images.7z - compressed ext2/3/4 100MB images
104 * fs_test.mk - automatic tests definitions
105 * Makefile - helper makefile to generate cmake and run test suite
106 * readme.mediawiki - readme file
112 * CMake: http://www.cmake.org/cmake/resources/software.html
113 * MinGw: http://www.mingw.org/
114 * GnuWin: http://gnuwin32.sourceforge.net/
134 Generic demo application
136 Simple lwext4 library presentation:
137 * load ext2/3/4 images
138 * load linux block device with ext2/3/4 part
139 * load windows volume with ext2/3/4 filesystem
140 * directory speed test
141 * file write/read speed test
143 How to use for images/blockdevices:
146 lwext4_generic -i ext_images/ext2
147 lwext4_generic -i ext_images/ext3
148 lwext4_generic -i ext_images/ext4
152 Build and run automatic tests
154 Build automatic test tools:
160 Uncompress ext/2/3/4 images:
164 Run server for one of the image file:
175 Cross compile standalone library
179 * arm-none-eabi-gcc for cortex-mX
181 * bfin-elf-gcc for bfin
182 * msp430-gcc for msp430
193 Build avrxmega7 library:
201 Build cortex-m0 library:
209 Build cortex-m3 library:
217 Build cortex-m4 library: