3 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).
5 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.
7 Code is also available on github:
8 https://github.com/gkostka/lwext4
10 Feel free to contact me:
11 kostka.grzegorz@gmail.com
15 The most of the source code of lwext4 was taken from HelenOS:
17 Some features are based on FreeBSD and Linux implementations.
19 KaHo Ng (https://github.com/ngkaho1234):
20 * advanced extents implementation
22 * metadata checksum suport
23 * many bugfixes & improvements
26 * https://github.com/ngkaho1234/fuse-lwext4
30 * filetypes: regular, directories, softlinks
31 * support for hardlinks
32 * multiple blocksize supported: 1KB, 2KB, 4KB ... 64KB
33 * little/big endian architectures supported
34 * multiple configurations (ext2/ext3/ext4)
35 * only C standard library dependency
36 * various CPU architectures supported (x86/64, cortex-mX, msp430 ...)
37 * small memory footprint
40 ;Memory footprint (for cortex-m4):
42 * .data: 8KB (minimum 8 x 1KB block cache)
45 ==Supported ext2/3/4 features==
46 ;Features incompatible:
82 * blockdev - block devices set, supported blockdev
83 * demos - demo directory sources
84 * fs_test - test suite
85 * lwext4 - internals of the lwext4 library
86 * toolchain - specific toolchain cmake files
87 * CMakeLists.txt - CMake config file
88 * ext_images.7z - compressed ext2/3/4 100MB images
89 * fs_test.mk - automatic tests definitions
90 * Makefile - helper makefile to generate cmake and run test suite
91 * readme.mediawiki - readme file
95 * CMake: http://www.cmake.org/cmake/resources/software.html
96 * MinGw: http://www.mingw.org/
97 * GnuWin: http://gnuwin32.sourceforge.net/
110 ==Generic demo application==
111 Simple lwext4 library presentation:
112 * load ext2/3/4 images
113 * load linux block device with ext2/3/4 part
114 * load windows volume with ext2/3/4 filesystem
115 * directory speed test
116 * file write/read speed test
118 How to use for images/blockdevices:
120 generic -i ext_images/ext2
121 generic -i ext_images/ext3
122 generic -i ext_images/ext4
125 ==Build and run automatic tests==
126 Build and run automatic tests
127 Build automatic test tools:
131 Uncompress ext/2/3/4 images:
133 Run server for one of the image file:
140 ==Cross compile standalone library==
142 * arm-none-eabi-gcc for cortex-mX
144 * bfin-elf-gcc for bfin
145 * msp430-gcc for msp430
153 Build avrxmega7 library:
158 Build cortex-m0 library:
163 Build cortex-m3 library:
168 Build cortex-m4 library: