diff options
| author | gkostka <kostka.grzegorz@gmail.com> | 2015-10-29 20:01:09 +0100 |
|---|---|---|
| committer | gkostka <kostka.grzegorz@gmail.com> | 2015-10-29 20:03:55 +0100 |
| commit | f0082d0d8b0b69a2d8c6a04690b7258cfb80c022 (patch) | |
| tree | 05fdbfc43ea82d19564ad6ab24f7892aaea432ec /README.md | |
| parent | 71bd7c174f6c3674a65e627873c9cb2fc87ef440 (diff) | |
Add travis build link
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 174 |
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 @@ +[](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 + |
