ringfs
 All Data Structures Files Functions Variables Enumerations Enumerator Macros Groups Pages
ringfs Documentation

RingFS is a persistent, Flash-based ring buffer designed for embedded software. It's aimed at storing non-critical data that can be expunged on the FIFO basis as needed. Typical uses include:

RingFS has been designed to run on NOR Flash memory, which exhibits the following semantics:

  1. Bits are programmed by flipping them from 1 to 0 with byte granularity.
  2. Bits are erased by flipping them from 0 to 1 with sector granularity.

Features

Usage

  1. Add ringfs.[ch] to your project.
  2. Implement the required Flash ops (sector_erase, program, read).
  3. Glue your Flash ops with ringfs using struct ringfs_flash_partition. See tests.c for an example.

Documentation

See Doxygen-generated documentation at http://cloudyourcar.github.io/ringfs/.

Non-Features

The ring buffer has been designed to be as simple as possible. Therefore, the following are non-features that will not be implemented:

Actually, on the second thought, I may consider adding support for variable object sizes some day.

License

Copyright © 2014 Kosma Moczek <kosma.nosp@m.@clo.nosp@m.udyou.nosp@m.rcar.nosp@m..com>

This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See the COPYING file for more details.