From b31faab0fab65e98b1700622427e29555d8197d1 Mon Sep 17 00:00:00 2001 From: gkostka Date: Mon, 11 Nov 2013 14:34:55 +0000 Subject: [PATCH] Update readme file. --- readme.mediawiki | 186 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 readme.mediawiki diff --git a/readme.mediawiki b/readme.mediawiki new file mode 100644 index 0000000..37fec5a --- /dev/null +++ b/readme.mediawiki @@ -0,0 +1,186 @@ +==About lwext4== + +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:===== + - 1KB-2KB (not tested yet) + + +==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 lwext4== + +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. + +==lwext4 supported/unsupported ext2/3/4 fs features== + +;FEATURE_INCOMPAT (unable to mount with unsupported feature): + COMPRESSION: no + FILETYPE: yes + RECOVER: no + JOURNAL_DEV: no + META_BG: no + EXTENTS: yes + 64BIT: yes + MMP: no + FLEX_BG: no + EA_INODE: no + DIRDATA: no + +;FEATURE_INCOMPAT (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 with unsupported feature): + SPARSE_SUPER: yes + LARGE_FILE: yes + BTREE_DIR: no + HUGE_FILE: yes + GDT_CSUM: yes + DIR_NLINK: yes + EXTRA_ISIZE: yes + +==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 + + +==lwext4 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 + - Makefile - helper makefile to call cmake + - readme.mediawiki - yes, you are here ;) + +==lwext4 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 + +==lwext4 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 + +==lwext4 generic demo app== + +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 + fileimage_demo --in ext2 + +Windows volumes: + cd build_generic + fileimage_demo --in I: --wpart + +Linux block devices: + cd build_generic + fileimage_demo --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 + + +==lwext4 compile Cross== + +Toolchain for ARM Cortex-m3/4: https://launchpad.net/gcc-arm-embedded +Toolchain for Blackfin: http://blackfin.uclinux.org/doku.php + +Build bf158 library: + make bf518 + +Build cortex-m3 library: + make cortex-m3 + +Build cortex-m4 library: + make cortex-m4 + +==lwext4 ports== + -Blackfin BF518 EZKIT SD Card Demo: TBD + -STM32F4-Discovery SD Card Demo: TBD + +==lwext4 footprint== + +TBD \ No newline at end of file -- 2.30.2