141 lines
5.8 KiB
Plaintext
141 lines
5.8 KiB
Plaintext
|
|
||
|
|
||
|
RELIANCE EDGE
|
||
|
|
||
|
|
||
|
Reliance Edge is a small, portable, highly reliable power-fail safe file
|
||
|
system for resource-constrained embedded systems like microcontrollers.
|
||
|
It is written in C and provides a familiar POSIX-like file system API,
|
||
|
making it easy to use in your application; or an alternate minimalist
|
||
|
API if your application has simple storage needs. Reliance Edge is
|
||
|
highly configurable and can be tuned to the precise needs of your
|
||
|
application.
|
||
|
|
||
|
|
||
|
Getting Help
|
||
|
|
||
|
You will find this section later in our readme as well - but we wanted
|
||
|
to tell you up front: DATALIGHT WANTS TO HEAR FROM YOU! Whether it's
|
||
|
just to make comments about the product, to suggest new features, or to
|
||
|
tell us what you don't like - reach out! All comments and inquiries can
|
||
|
be directed to RelianceEdgeSupport@datalight.com.
|
||
|
|
||
|
|
||
|
Documentation
|
||
|
|
||
|
The complete documentation for Reliance Edge is distributed separately.
|
||
|
It includes an API reference and detailed discussions of various aspects
|
||
|
of using Reliance Edge, including porting, building, configuring, and
|
||
|
testing. This complete documentation, called the _Developer's Guide_,
|
||
|
can be obtained for free from here:
|
||
|
|
||
|
http://www.datalight.com/reliance-edge
|
||
|
|
||
|
In addition this README, see doc/release_notes.md for a list of updates
|
||
|
to Reliance Edge and a list of known issues. There is also a quick-start
|
||
|
guide in the doc/ directory that describes step-by-step how to compile
|
||
|
and run Reliance Edge in a simulated Windows environment.
|
||
|
|
||
|
|
||
|
Why Use Reliance Edge?
|
||
|
|
||
|
Reliance Edge is ideal for small embedded systems with data storage
|
||
|
requirements, especially if there is a chance of sudden power loss or
|
||
|
other system failures. Compared to "raw" disk access, using a file
|
||
|
system like Reliance Edge removes the burden of tracking which sectors
|
||
|
belong to which objects, and allows data to be updated more reliably.
|
||
|
Compared to the FAT file system, using Reliance Edge eliminates the
|
||
|
possibility that file system data will be left in an inconsistent state,
|
||
|
corrupting the disk; Reliance Edge does not need a fsck/CHKDSK utility.
|
||
|
Compared to journaling file systems, Reliance Edge has less overhead and
|
||
|
results in less storage media wear for longer device lifetimes.
|
||
|
|
||
|
Reliance Edge uses a unique transactional model that not only prevents
|
||
|
file system corruption but also allows a set of changes to be made in an
|
||
|
atomic "all or nothing" fashion. This is very useful for applications
|
||
|
that make sets of interrelated changes. By using the features of
|
||
|
Reliance Edge, a set of changes can be incorporated into a single atomic
|
||
|
transaction, which is committed in its entirety or not at all even if
|
||
|
interrupted by power loss; this means the application does not need code
|
||
|
to recover from partially-finished updates.
|
||
|
|
||
|
|
||
|
Hardware
|
||
|
|
||
|
The typical hardware for Reliance Edge is a 32-bit microcontroller, but
|
||
|
other targets are possible. In its typical configurations, Reliance Edge
|
||
|
needs at least 4 KB to 5 KB of RAM, 11 to 18 KB of code space (on the
|
||
|
ROM or NOR flash), and 500 to 700 bytes of stack.
|
||
|
|
||
|
Reliance Edge is not designed for high-end embedded systems that run
|
||
|
complicated operating systems like Linux or Windows Embedded Compact.
|
||
|
Embedded systems of that variety are better served by other file
|
||
|
systems, like Datalight's Reliance Nitro.
|
||
|
|
||
|
|
||
|
Getting Reliance Edge Working
|
||
|
|
||
|
Before you can use Reliance Edge, it must be ported and configured. At a
|
||
|
minimum, porting includes filling-in functions so that Reliance Edge can
|
||
|
issue commands to your storage medium; depending on your needs, other
|
||
|
functions may need to be filled in as well. These functions reside in a
|
||
|
subdirectory in the os/ directory; see os/stub/ for a blank set of
|
||
|
functions. Configuring includes creating a project directory (start by
|
||
|
copying projects/newproj) and creating the two configuration files
|
||
|
(redconf.h/redconf.c) using the Reliance Edge Configuration Utility
|
||
|
(which can be downloaded from http://www.datalight.com/reliance-edge).
|
||
|
|
||
|
These topics are covered in much greater detail in the _Developer's
|
||
|
Guide_, linked above.
|
||
|
|
||
|
|
||
|
Using Reliance Edge
|
||
|
|
||
|
Using Reliance Edge is a simple matter of including the primary Reliance
|
||
|
Edge application header in your application (either include/redposix.h
|
||
|
or include/redfse.h) and compiling and linking against Reliance Edge
|
||
|
binaries. The Reliance Edge driver must be initialized before it is used
|
||
|
(via the red_init() or RedFseInit() functions) and then volumes can be
|
||
|
mounted and file and directory functions invoked. The Reliance Edge API
|
||
|
is documented in the _Developer's Guide_ (linked above) and also via
|
||
|
comments in the source code.
|
||
|
|
||
|
|
||
|
Licensing
|
||
|
|
||
|
Reliance Edge is an open-source project licensed under the GNU General
|
||
|
Public License v2 (GPLv2). Businesses and individuals that for
|
||
|
commercial or other reasons cannot comply with the terms of the GPLv2
|
||
|
license may obtain a commercial license before incorporating Reliance
|
||
|
Edge into proprietary software for distribution in any form. Visit
|
||
|
http://www.datalight.com/reliance-edge for more information. The
|
||
|
commercial distribution also includes extra tests and tools not
|
||
|
distributed with the GPLv2 version.
|
||
|
|
||
|
See LICENSE.txt for the full license terms of this distribution of the
|
||
|
product.
|
||
|
|
||
|
|
||
|
Getting Help
|
||
|
|
||
|
If you need assistance using Reliance Edge, and you have already
|
||
|
consulted the _Developer's Guide_, contact
|
||
|
RelianceEdgeSupport@datalight.com.
|
||
|
|
||
|
In the near future, a community forum or message board will be set up to
|
||
|
facilitate discussion of Reliance Edge and allow users to get help from
|
||
|
Datalight and from each other. In the meantime, please use the email
|
||
|
address given above.
|
||
|
|
||
|
|
||
|
Contributing
|
||
|
|
||
|
Contributions to Reliance Edge are welcome. Our policy is that Datalight
|
||
|
must own the copyright of all code incorporated into Reliance Edge; if
|
||
|
contributing a significant amount of code, you will be asked to file a
|
||
|
copyright assignment agreement. See CONTRIBUTING.txt for further details
|
||
|
and contribution guidelines.
|
||
|
|
||
|
To report bugs, please create a GitHub issue or contact
|
||
|
RelianceEdgeSupport@datalight.com.
|