3 The main goal of the lwext4 project is to provide ext2/3/4 filesystem
\r
4 library for microcontrolers with SD/MMC card support. Ext2/3/4, in my
\r
5 opinion is one of the best filesystem for SD/MMC.
\r
7 kostka.grzegorz@gmail.com
\r
9 ==Minimum memory requirements==
\r
19 ==ext2/3/4 vs FAT32==
\r
21 * fseek operation on big file in FAT32 is IO heavy
\r
22 * ext2/3/4 HTREE directories operations are faster than FAT32
\r
23 * ext4 extents makes truncate/remove opertion really fast
\r
24 * more at https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
\r
27 * FAT32 has smaller footprint
\r
31 A lot of the implementation of lwext4 was taken from HelenOS:
\r
34 Some of ideas and features are based on FreeBSD and Linux implementations.
\r
36 ==Supported ext2/3/4 fs features==
\r
38 ;FEATURE_INCOMPAT (unable to mount with unsupported feature):
\r
51 ;FEATURE_COMPAT (able to mount with unsupported feature):
\r
59 ;FEATURE_RO (able to mount in read only mode):
\r
68 ==Supported filetypes:==
\r
78 - block_size: 1KB, 2KB, 4KB ... 64KB
\r
79 - little/big endian architecture support
\r
84 - blockdev - block devices set, supported blockdevs
\r
85 -- filedev - file based block device
\r
86 -- io_raw - wiodows IO block device
\r
88 - demos - demo directory sources
\r
89 -- generic - generic demo app, used for development and and debbuging purpose
\r
91 - lwext4 - internals of the lwext4 library
\r
93 - toolchain - specific toolchain cmake files
\r
95 - ext4.h - lwext4 client library header
\r
96 - CMakeLists.txt - CMake config file
\r
97 - ext_images.7z - ext2/3/4 100MB images
\r
98 - Makefile - helper makefile to call cmake
\r
99 - readme.mediawiki - yes, you are here ;)
\r
101 ==Compile: Windows==
\r
103 * CMake: http://www.cmake.org/cmake/resources/software.html
\r
104 * MinGw: http://www.mingw.org/
\r
105 * GnuWin: http://gnuwin32.sourceforge.net/
\r
107 ;Create CMake files:
\r
110 ;Remove CMake files:
\r
120 - CMake: http://www.cmake.org/cmake/resources/software.html
\r
122 ;Create CMake files:
\r
125 ;Remove CMake files:
\r
132 ==Generic demo applicarion==
\r
135 - load ext2/3/4 images
\r
136 - load linux block device with ext2/3/4 part
\r
137 - load windows volume with ext2/3/4 filesystem
\r
138 - directory speed test
\r
139 - file write/read speed test
\r
142 Windows/Linux fileimages:
\r
144 fileimage_demo --in ext2
\r
148 fileimage_demo --in I: --wpart
\r
150 Linux block devices:
\r
152 fileimage_demo --in /dev/your_block_device
\r
155 --i - input file (default = ext2)
\r
156 --rws - single R/W size (default = 1024 * 1024)
\r
157 --rwc - R/W count (default = 10)
\r
158 --cache - 0 static, 1 dynamic (default = 1)
\r
159 --dirs - directory test count (default = 0)
\r
160 --clean - clean up after test
\r
161 --bstat - block device stats
\r
162 --sbstat - superblock stats
\r
163 --wpart - windows partition mode
\r
168 Toolchain for ARM Cortex-m3/4: https://launchpad.net/gcc-arm-embedded
\r
169 Toolchain for Blackfin: http://blackfin.uclinux.org/doku.php
\r
171 Build bf518 library:
\r
174 Build cortex-m3 library:
\r
177 Build cortex-m4 library:
\r
181 *Blackfin BF518 EZKIT SD Card Demo: TBD
\r
182 *STM32F4-Discovery SD Card Demo: TBD
\r