summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorgkostka <kostka.grzegorz@gmail.com>2015-10-29 20:01:09 +0100
committergkostka <kostka.grzegorz@gmail.com>2015-10-29 20:03:55 +0100
commitf0082d0d8b0b69a2d8c6a04690b7258cfb80c022 (patch)
tree05fdbfc43ea82d19564ad6ab24f7892aaea432ec /README.md
parent71bd7c174f6c3674a65e627873c9cb2fc87ef440 (diff)
Add travis build link
Diffstat (limited to 'README.md')
-rw-r--r--README.md174
1 files changed, 174 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5bdc906
--- /dev/null
+++ b/README.md
@@ -0,0 +1,174 @@
+[![Build Status](https://travis-ci.org/gkostka/lwext4.svg)](https://travis-ci.org/gkostka/lwext4)
+
+==About==
+
+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).
+
+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.
+
+Code is also available on github:
+https://github.com/gkostka/lwext4
+
+Feel free to contact me:
+kostka.grzegorz@gmail.com
+
+==Credits==
+
+The most of the source code of lwext4 was taken from HelenOS:
+* http://helenos.org/
+Some features are based on FreeBSD and Linux implementations.
+
+KaHo Ng (https://github.com/ngkaho1234):
+* advanced extents implementation
+* xattr support
+* metadata checksum suport
+* many bugfixes & improvements
+
+fuse-lwext4 project:
+* https://github.com/ngkaho1234/fuse-lwext4
+
+==Features==
+
+* filetypes: regular, directories, softlinks
+* support for hardlinks
+* multiple blocksize supported: 1KB, 2KB, 4KB ... 64KB
+* little/big endian architectures supported
+* multiple configurations (ext2/ext3/ext4)
+* only C standard library dependency
+* various CPU architectures supported (x86/64, cortex-mX, msp430 ...)
+* small memory footprint
+
+
+;Memory footprint (for cortex-m4):
+* .text: 20KB - 40KB
+* .data: 8KB (minimum 8 x 1KB block cache)
+* .stack: 2KB
+
+==Supported ext2/3/4 features==
+;Features incompatible:
+* compression: no
+* filetype: yes
+* recover: no
+* journal_dev: no
+* meta_bg: yes
+* extents: yes
+* 64bit: yes
+* mmp: no
+* flex_bg: yes
+* ea_inode: no
+* dirdata: no
+* bg_meta_csum: no
+* largedir: no
+* inline_data: no
+;Features compatible:
+* dir_prealloc: no
+* imagic_inodes: no
+* has_journal: no
+* ext_attr: yes
+* resize_inode: no
+* dir_index: yes
+;Features read-only:
+* sparse_super: yes
+* large_file: yes
+* btree_dir: yes
+* huge_file: yes
+* gdt_csum: yes
+* dir_nlink: yes
+* extra_isize: yes
+* quota: no
+* bigalloc: no
+* metadata_csum: yes
+
+
+==Project tree==
+* blockdev - block devices set, supported blockdev
+* demos - demo directory sources
+* fs_test - test suite
+* lwext4 - internals of the lwext4 library
+* toolchain - specific toolchain cmake files
+* CMakeLists.txt - CMake config file
+* ext_images.7z - compressed ext2/3/4 100MB images
+* fs_test.mk - automatic tests definitions
+* Makefile - helper makefile to generate cmake and run test suite
+* readme.mediawiki - readme file
+
+==Compile==
+Windows:
+* CMake: http://www.cmake.org/cmake/resources/software.html
+* MinGw: http://www.mingw.org/
+* GnuWin: http://gnuwin32.sourceforge.net/
+
+Linux:
+* CMake, make, gcc
+
+;Generate makefiles:
+ make
+
+;Compile
+ cd build_generic
+ make
+
+
+==Generic demo application==
+Simple lwext4 library presentation:
+* 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 for images/blockdevices:
+ cd build_generic
+ generic -i ext_images/ext2
+ generic -i ext_images/ext3
+ generic -i ext_images/ext4
+
+
+==Build and run automatic tests==
+Build and run automatic tests
+Build automatic test tools:
+ make
+ cd build_generic
+ make
+Uncompress ext/2/3/4 images:
+ make unpack_images
+Run server for one of the image file:
+ make server_ext2
+ make server_ext3
+ make server_ext4
+Execute tests:
+ make test
+
+==Cross compile standalone library==
+Toolchains needed:
+* arm-none-eabi-gcc for cortex-mX
+* avr-gcc for avr
+* bfin-elf-gcc for bfin
+* msp430-gcc for msp430
+
+
+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
+