3 The main goal of the lwext4 project is to provide ext2/3/4 filesystem
4 library for microcontrolers with SD/MMC card support.
6 kostka.grzegorz@gmail.com
8 ==Minimum memory requirements==
20 * fseek operation on big file in FAT32 is IO heavy
21 * ext2/3/4 HTREE directories operations are faster than FAT32
22 * ext4 extents makes truncate/remove opertion really fast
23 * more at https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
26 * FAT32 has smaller footprint
30 A lot of the implementation of lwext4 was taken from HelenOS:
33 Some of ideas and features are based on FreeBSD and Linux implementations.
35 ==Supported ext2/3/4 fs features==
38 ;FEATURE_INCOMPAT (unable to mount with unsupported feature):
41 recover: no (could be ignored)
46 mmp: no (could be ignored)
54 ;FEATURE_COMPAT (able to mount with unsupported feature):
62 ;FEATURE_RO (able to mount in read only mode):
65 btree_dir: yes (obsolete)
75 ==Supported filetypes:==
85 - block_size: 1KB, 2KB, 4KB ... 64KB
86 - little/big endian architecture support
91 - blockdev - block devices set, supported blockdevs
92 -- filedev - file based block device
93 -- io_raw - wiodows IO block device
95 - demos - demo directory sources
96 -- generic - generic demo app, used for development and and debbuging purpose
98 - lwext4 - internals of the lwext4 library
100 - toolchain - specific toolchain cmake files
102 - ext4.h - lwext4 client library header
103 - CMakeLists.txt - CMake config file
104 - ext_images.7z - ext2/3/4 100MB images
105 - fs_test.mk - automatic tests definition
106 - Makefile - helper makefile to call cmake
107 - readme.mediawiki - yes, you are here ;)
111 * CMake: http://www.cmake.org/cmake/resources/software.html
112 * MinGw: http://www.mingw.org/
113 * GnuWin: http://gnuwin32.sourceforge.net/
128 - CMake: http://www.cmake.org/cmake/resources/software.html
140 ==Generic demo application==
143 - load ext2/3/4 images
144 - load linux block device with ext2/3/4 part
145 - load windows volume with ext2/3/4 filesystem
146 - directory speed test
147 - file write/read speed test
150 Windows/Linux fileimages:
156 generic --in I: --wpart
160 generic --in /dev/your_block_device
163 --i - input file (default = ext2)
164 --rws - single R/W size (default = 1024 * 1024)
165 --rwc - R/W count (default = 10)
166 --cache - 0 static, 1 dynamic (default = 1)
167 --dirs - directory test count (default = 0)
168 --clean - clean up after test
169 --bstat - block device stats
170 --sbstat - superblock stats
171 --wpart - windows partition mode
173 ==Client-server automatic test suite==
192 Toolchain for ARM Cortex-m3/4: https://launchpad.net/gcc-arm-embedded
193 Toolchain for Blackfin: http://blackfin.uclinux.org/doku.php
200 Build avrxmega7 library:
205 Build cortex-m0 library:
210 Build cortex-m3 library:
215 Build cortex-m4 library:
221 STM32F429-DISCO USB flash drive Demo
223 Build STM32F429 Demo:
230 TOOLCHAIN: arm-none-eabi-gcc
233 text data bss filename
235 1064 0 0 ext4_crc32c.c
236 2124 0 0 ext4_blockdev.c
237 372 0 0 ext4_bitmap.c
239 2852 0 0 ext4_balloc.c
241 2904 0 0 ext4_dir_idx.c
242 972 0 0 ext4_bcache.c
243 552 0 0 ext4_block_group.c
244 744 0 0 ext4_ialloc.c
248 3092 0 0 ext4_extent.c