-==About==\r
-\r
-The main goal of the lwext4 project is to provide ext2/3/4 filesystem\r
-library for microcontrolers with SD/MMC card support. Ext2/3/4, in my\r
-opinion is one of the best filesystem for SD/MMC.\r
-\r
-kostka.grzegorz@gmail.com\r
-\r
-==Minimum memory requirements==\r
-\r
-=====PROGRAM:=====\r
- - 20KB\r
-=====RAM:=====\r
- - 8KB\r
-=====STACK:=====\r
- - 2KB\r
-\r
-\r
-==ext2/3/4 vs FAT32==\r
-;ext2/3/4 > FAT32\r
-* fseek operation on big file in FAT32 is IO heavy\r
-* ext2/3/4 HTREE directories operations are faster than FAT32 \r
-* ext4 extents makes truncate/remove opertion really fast\r
-* more at https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout\r
-\r
-;ext2/3/4 < FAT32\r
-* FAT32 has smaller footprint\r
-\r
-==Credits==\r
-\r
-A lot of the implementation of lwext4 was taken from HelenOS:\r
- http://helenos.org/\r
- \r
-Some of ideas and features are based on FreeBSD and Linux implementations.\r
-\r
-==Supported ext2/3/4 fs features==\r
-\r
-;FEATURE_INCOMPAT (unable to mount with unsupported feature):\r
- COMPRESSION: no\r
- FILETYPE: yes\r
- RECOVER: no\r
- JOURNAL_DEV: no\r
- META_BG: no\r
- EXTENTS: yes\r
- 64BIT: yes\r
- MMP: no\r
- FLEX_BG: no\r
- EA_INODE: no\r
- DIRDATA: no\r
- \r
-;FEATURE_COMPAT (able to mount with unsupported feature):\r
- DIR_PREALLOC: no\r
- IMAGIC_INODES: no\r
- HAS_JOURNAL: no\r
- EXT_ATTR: no\r
- RESIZE_INODE: no\r
- DIR_INDEX: yes\r
-\r
-;FEATURE_RO (able to mount in read only mode):\r
- SPARSE_SUPER: yes\r
- LARGE_FILE: yes\r
- BTREE_DIR: no\r
- HUGE_FILE: yes\r
- GDT_CSUM: yes\r
- DIR_NLINK: yes\r
- EXTRA_ISIZE: yes\r
-\r
-==Supported filetypes:==\r
- FIFO: no\r
- CHARDEV: no\r
- DIRECTORY: yes\r
- BLOCKDEV: no\r
- FILE: yes\r
- SOFTLINK: no\r
- SOCKET: no\r
-\r
-==Other==\r
- - block_size: 1KB, 2KB, 4KB ... 64KB\r
- - little/big endian architecture support\r
-\r
-\r
-==Project tree==\r
-\r
- - blockdev - block devices set, supported blockdevs\r
- -- filedev - file based block device\r
- -- io_raw - wiodows IO block device\r
-\r
- - demos - demo directory sources\r
- -- generic - generic demo app, used for development and and debbuging purpose\r
- \r
- - lwext4 - internals of the lwext4 library\r
-\r
- - toolchain - specific toolchain cmake files\r
-\r
- - ext4.h - lwext4 client library header\r
- - CMakeLists.txt - CMake config file\r
- - ext_images.7z - ext2/3/4 100MB images\r
- - fs_test.mk - automatic tests definition\r
- - Makefile - helper makefile to call cmake\r
- - readme.mediawiki - yes, you are here ;)\r
- \r
-==Compile: Windows==\r
-;Tools needed:\r
-* CMake: http://www.cmake.org/cmake/resources/software.html\r
-* MinGw: http://www.mingw.org/\r
-* GnuWin: http://gnuwin32.sourceforge.net/ \r
-\r
-;Create CMake files:\r
- make\r
-\r
-;Remove CMake files:\r
- clean\r
-\r
-;Build\r
- cd build_generic\r
- make\r
-\r
-==Compile: Linux==\r
-\r
-Tools needed:\r
- - CMake: http://www.cmake.org/cmake/resources/software.html\r
- \r
-;Create CMake files:\r
- make\r
-\r
-;Remove CMake files:\r
- clean\r
-\r
-;Build\r
- cd build_generic\r
- make\r
-\r
-==Generic demo application==\r
-\r
-Features:\r
- - load ext2/3/4 images\r
- - load linux block device with ext2/3/4 part\r
- - load windows volume with ext2/3/4 filesystem \r
- - directory speed test\r
- - file write/read speed test\r
-\r
-How to use:\r
-Windows/Linux fileimages:\r
- cd build_generic\r
- generic --in ext2 \r
-\r
-Windows volumes:\r
- cd build_generic\r
- generic --in I: --wpart\r
-\r
-Linux block devices:\r
- cd build_generic\r
- generic --in /dev/your_block_device\r
-\r
-Usage: \r
- --i - input file (default = ext2) \r
- --rws - single R/W size (default = 1024 * 1024) \r
- --rwc - R/W count (default = 10) \r
- --cache - 0 static, 1 dynamic (default = 1) \r
- --dirs - directory test count (default = 0) \r
- --clean - clean up after test \r
- --bstat - block device stats \r
- --sbstat - superblock stats \r
- --wpart - windows partition mode \r
-\r
-==Client-server automatic test suite==\r
-\r
-Build:\r
- make\r
- cd build_generic\r
- make\r
- \r
-Unpack images:\r
- make unpack_images\r
- \r
-Run server:\r
- make server_ext2\r
- \r
-Run tests:\r
- make all_tests\r
-\r
-\r
-==Cross-Compile==\r
-\r
- Toolchain for ARM Cortex-m3/4: https://launchpad.net/gcc-arm-embedded\r
- Toolchain for Blackfin: http://blackfin.uclinux.org/doku.php\r
-\r
-Build bf518 library:\r
- make bf518\r
- cd build_bf518\r
- make lwext4\r
-\r
-Build avrxmega7 library:\r
- make avrxmega7\r
- cd build_avrxmega7\r
- make lwext4\r
-\r
-Build cortex-m0 library:\r
- make cortex-m0\r
- cd build_cortex-m0\r
- make lwext4\r
-\r
-Build cortex-m3 library:\r
- make cortex-m3\r
- cd build_cortex-m3\r
- make lwext4\r
-\r
-Build cortex-m4 library:\r
- make cortex-m4\r
- cd build_cortex-m4\r
- make lwext4\r
-\r
-==Ports==\r
-STM32F429-DISCO USB flash drive Demo \r
- \r
-Build STM32F429 Demo:\r
- make cortex-m4\r
- cd build_cortex-m4\r
- make all\r
-\r
-==Footprint==\r
-\r
- TOOLCHAIN: arm-none-eabi-gcc\r
- OPT: Os \r
- OUTPUT:\r
- text data bss dec hex filename\r
- 5728 0 0 5728 1660 ext4.c.obj (ex liblwext4.a)\r
- 2264 0 0 2264 8d8 ext4_balloc.c.obj (ex liblwext4.a)\r
- 1324 0 0 1324 52c ext4_bcache.c.obj (ex liblwext4.a)\r
- 936 0 0 936 3a8 ext4_bitmap.c.obj (ex liblwext4.a)\r
- 2016 0 0 2016 7e0 ext4_blockdev.c.obj (ex liblwext4.a)\r
- 624 0 0 624 270 ext4_block_group.c.obj (ex liblwext4.a)\r
- 24 0 4 28 1c ext4_debug.c.obj (ex liblwext4.a)\r
- 2264 0 0 2264 8d8 ext4_dir.c.obj (ex liblwext4.a)\r
- 3204 0 0 3204 c84 ext4_dir_idx.c.obj (ex liblwext4.a)\r
- 3104 0 0 3104 c20 ext4_extent.c.obj (ex liblwext4.a)\r
- 7360 0 0 7360 1cc0 ext4_fs.c.obj (ex liblwext4.a)\r
- 2496 0 0 2496 9c0 ext4_hash.c.obj (ex liblwext4.a)\r
- 684 0 0 684 2ac ext4_ialloc.c.obj (ex liblwext4.a)\r
- 652 0 0 652 28c ext4_inode.c.obj (ex liblwext4.a)\r
- 352 0 0 352 160 ext4_super.c.obj (ex liblwext4.a) \r
+==About==
+
+The main goal of the lwext4 project is to provide ext2/3/4 filesystem
+library for microcontrolers with SD/MMC card support. Ext2/3/4, in my
+opinion is one of the best filesystem for SD/MMC.
+
+kostka.grzegorz@gmail.com
+
+==Minimum memory requirements==
+
+=====PROGRAM:=====
+ - 20KB
+=====RAM:=====
+ - 8KB
+=====STACK:=====
+ - 2KB
+
+
+==ext2/3/4 vs FAT32==
+;ext2/3/4 > FAT32
+* fseek operation on big file in FAT32 is IO heavy
+* ext2/3/4 HTREE directories operations are faster than FAT32
+* ext4 extents makes truncate/remove opertion really fast
+* more at https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout
+
+;ext2/3/4 < FAT32
+* FAT32 has smaller footprint
+
+==Credits==
+
+A lot of the implementation of lwext4 was taken from HelenOS:
+ http://helenos.org/
+
+Some of ideas and features are based on FreeBSD and Linux implementations.
+
+==Supported ext2/3/4 fs features==
+
+
+;FEATURE_INCOMPAT (unable to mount with unsupported feature):
+ compression: no
+ filetype: yes
+ recover: no (could be ignored)
+ journal_dev: no
+ meta_bg: yes
+ extents: yes
+ 64bit: yes
+ mmp: no (could be ignored)
+ flex_bg: yes
+ ea_inode: no
+ dirdata: no
+ bg_meta_csum: no
+ largedir: no
+ inline_data: no
+
+;FEATURE_COMPAT (able to mount with unsupported feature):
+ dir_prealloc: no
+ imagic_inodes: no
+ has_journal: no
+ ext_attr: no
+ resize_inode: no
+ dir_index: yes
+
+;FEATURE_RO (able to mount in read only mode):
+ sparse_super: yes
+ large_file: yes
+ btree_dir: yes (obsolete)
+ huge_file: yes
+ gdt_csum: yes
+ dir_nlink: yes
+ extra_isize: yes
+ quota: no
+ bigalloc: no
+ metadata_csum: no
+
+
+==Supported filetypes:==
+ FIFO: no
+ CHARDEV: no
+ DIRECTORY: yes
+ BLOCKDEV: no
+ FILE: yes
+ SOFTLINK: no
+ SOCKET: no
+
+==Other==
+ - block_size: 1KB, 2KB, 4KB ... 64KB
+ - little/big endian architecture support
+
+
+==Project tree==
+
+ - blockdev - block devices set, supported blockdevs
+ -- filedev - file based block device
+ -- io_raw - wiodows IO block device
+
+ - demos - demo directory sources
+ -- generic - generic demo app, used for development and and debbuging purpose
+
+ - lwext4 - internals of the lwext4 library
+
+ - toolchain - specific toolchain cmake files
+
+ - ext4.h - lwext4 client library header
+ - CMakeLists.txt - CMake config file
+ - ext_images.7z - ext2/3/4 100MB images
+ - fs_test.mk - automatic tests definition
+ - Makefile - helper makefile to call cmake
+ - readme.mediawiki - yes, you are here ;)
+
+==Compile: Windows==
+;Tools needed:
+* CMake: http://www.cmake.org/cmake/resources/software.html
+* MinGw: http://www.mingw.org/
+* GnuWin: http://gnuwin32.sourceforge.net/
+
+;Create CMake files:
+ make
+
+;Remove CMake files:
+ clean
+
+;Build
+ cd build_generic
+ make
+
+==Compile: Linux==
+
+Tools needed:
+ - CMake: http://www.cmake.org/cmake/resources/software.html
+
+;Create CMake files:
+ make
+
+;Remove CMake files:
+ clean
+
+;Build
+ cd build_generic
+ make
+
+==Generic demo application==
+
+Features:
+ - load ext2/3/4 images
+ - load linux block device with ext2/3/4 part
+ - load windows volume with ext2/3/4 filesystem
+ - directory speed test
+ - file write/read speed test
+
+How to use:
+Windows/Linux fileimages:
+ cd build_generic
+ generic --in ext2
+
+Windows volumes:
+ cd build_generic
+ generic --in I: --wpart
+
+Linux block devices:
+ cd build_generic
+ generic --in /dev/your_block_device
+
+Usage:
+ --i - input file (default = ext2)
+ --rws - single R/W size (default = 1024 * 1024)
+ --rwc - R/W count (default = 10)
+ --cache - 0 static, 1 dynamic (default = 1)
+ --dirs - directory test count (default = 0)
+ --clean - clean up after test
+ --bstat - block device stats
+ --sbstat - superblock stats
+ --wpart - windows partition mode
+
+==Client-server automatic test suite==
+
+Build:
+ make
+ cd build_generic
+ make
+
+Unpack images:
+ make unpack_images
+
+Run server:
+ make server_ext2
+
+Run tests:
+ make all_tests
+
+
+==Cross-Compile==
+
+ Toolchain for ARM Cortex-m3/4: https://launchpad.net/gcc-arm-embedded
+ Toolchain for Blackfin: http://blackfin.uclinux.org/doku.php
+
+Build bf518 library:
+ make bf518
+ cd build_bf518
+ make lwext4
+
+Build avrxmega7 library:
+ make avrxmega7
+ cd build_avrxmega7
+ make lwext4
+
+Build cortex-m0 library:
+ make cortex-m0
+ cd build_cortex-m0
+ make lwext4
+
+Build cortex-m3 library:
+ make cortex-m3
+ cd build_cortex-m3
+ make lwext4
+
+Build cortex-m4 library:
+ make cortex-m4
+ cd build_cortex-m4
+ make lwext4
+
+==Ports==
+STM32F429-DISCO USB flash drive Demo
+
+Build STM32F429 Demo:
+ make cortex-m4
+ cd build_cortex-m4
+ make all
+
+==Footprint==
+
+ TOOLCHAIN: arm-none-eabi-gcc
+ OPT: Os
+ OUTPUT:
+ text data bss dec hex filename
+ 5728 0 0 5728 1660 ext4.c.obj (ex liblwext4.a)
+ 2264 0 0 2264 8d8 ext4_balloc.c.obj (ex liblwext4.a)
+ 1324 0 0 1324 52c ext4_bcache.c.obj (ex liblwext4.a)
+ 936 0 0 936 3a8 ext4_bitmap.c.obj (ex liblwext4.a)
+ 2016 0 0 2016 7e0 ext4_blockdev.c.obj (ex liblwext4.a)
+ 624 0 0 624 270 ext4_block_group.c.obj (ex liblwext4.a)
+ 24 0 4 28 1c ext4_debug.c.obj (ex liblwext4.a)
+ 2264 0 0 2264 8d8 ext4_dir.c.obj (ex liblwext4.a)
+ 3204 0 0 3204 c84 ext4_dir_idx.c.obj (ex liblwext4.a)
+ 3104 0 0 3104 c20 ext4_extent.c.obj (ex liblwext4.a)
+ 7360 0 0 7360 1cc0 ext4_fs.c.obj (ex liblwext4.a)
+ 2496 0 0 2496 9c0 ext4_hash.c.obj (ex liblwext4.a)
+ 684 0 0 684 2ac ext4_ialloc.c.obj (ex liblwext4.a)
+ 652 0 0 652 28c ext4_inode.c.obj (ex liblwext4.a)
+ 352 0 0 352 160 ext4_super.c.obj (ex liblwext4.a)
\ No newline at end of file