Skip to content

Commit 03819b8

Browse files
Build 329
1 parent 86515e4 commit 03819b8

File tree

334 files changed

+96359
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

334 files changed

+96359
-2
lines changed

Diff for: CONTRIBUTING.txt

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
Reliance Edge Contribution Guidelines
2+
=====================================
3+
4+
This document describes how to go about contributing to Reliance Edge.
5+
6+
How Can I Contribute?
7+
---------------------
8+
9+
A few examples of how you can contribute:
10+
11+
- Fixing bugs, including: compiler warnings, portability issues, or erroneous
12+
driver logic.
13+
- Porting Reliance Edge to a new RTOS.
14+
- Improving the documentation, including: fixing typos, dead links, or poor
15+
wording; or pointing out unclear or incomplete instructions.
16+
- Creating new tools or tests.
17+
- Adding new features or APIs (though for major new features, it might be good
18+
to discuss your idea with Datalight).
19+
20+
Suggestions and feedback of any kind are welcome at
21+
<[email protected]>. If there is something about Reliance Edge
22+
which you like or do not like, let us know.
23+
24+
Reporting Bugs
25+
--------------
26+
27+
To report bugs, please create a GitHub issue or contact
28+
<[email protected]>. Search the existing GitHub issues to make
29+
sure that your issue is not a known issue.
30+
31+
Submitting Changes
32+
------------------
33+
34+
To submit code changes, fork the Reliance Edge repository, commit your changes,
35+
and use GitHub to submit a pull request. See details here:
36+
37+
<https://help.github.com/articles/using-pull-requests/>
38+
39+
After submitting a pull request, it will be reviewed by Datalight engineers.
40+
You may be asked to make changes via the comments on the pull request. If the
41+
pull request contributes a substantial amount of code, you will need to assign
42+
copyright to Datalight before it will be accepted (see the next section).
43+
44+
Pull requests will never be directly merged into the Reliance Edge GitHub repo.
45+
Due to quality assurance and packaging requirements, pull requests which are
46+
accepted will be incorporated indirectly and pushed into the GitHub repository
47+
as part of a build. As such, all pull requests will be closed, but a comment
48+
will indicate whether the changes were incorporated or not.
49+
50+
For the portions of the _Developer's Guide_ that are included in the GitHub
51+
repository (like the API documentation, which is derived from Doxygen comments
52+
in the code), changes should be submitted as pull requests just like code. For
53+
the prose chapters which are excluded from the repository, send an email to
54+
<[email protected]> to request changes.
55+
56+
Copyright
57+
---------
58+
59+
Datalight policy is that Datalight must own the copyright of all code
60+
incorporated into Reliance Edge; if contributing a substantial amount of code,
61+
you must file a copyright assignment agreement. After submitting your pull
62+
request, contact <[email protected]> if you believe you will
63+
need to assign the copyright. If Datalight determines that a copyright
64+
assignment agreement is required, and you have not made contact, you will be
65+
notified via a comment left on the pull request.
66+
67+
CREDITS.TXT
68+
-----------
69+
70+
CREDITS.TXT is a list of people who have made non-trivial contributions to
71+
Reliance Edge. If you contribute to Reliance Edge, it is understood that
72+
Datalight may, at our discretion, add your name and GitHub account name to
73+
CREDITS.TXT, unless you explicitly request to be excluded.
74+
75+
Datalight Coding Style
76+
----------------------
77+
78+
Code contributed to Reliance Edge should make an attempt to follow Datalight
79+
coding style. See the doc/coding_style.txt document.
80+

Diff for: CREDITS.txt

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Reliance Edge Credits
2+
=====================
3+
4+
This is a list (or partial list) of people who have made non-trivial or
5+
noteworthy contributions to the Reliance Edge project. It is sorted by name.
6+
Entries are formatted as below:
7+
8+
Real Name (githubaccount)
9+
Short description of how Real Name contributed to Reliance Edge.
10+
11+
The real name may be withheld by request and the GitHub account name might be
12+
missing if the contributor does not use GitHub.
13+
14+
Credits
15+
-------
16+
17+
None yet! ;)
18+

Diff for: LICENSE.txt

+340
Large diffs are not rendered by default.

Diff for: README.md

+112-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,112 @@
1-
# reliance-edge
2-
File System for Decision-Quality Data at the Edge of the IoT
1+
# Reliance Edge
2+
3+
Reliance Edge is a small, portable, highly reliable power-fail safe file system
4+
for resource-constrained embedded systems like microcontrollers. It is written
5+
in C and provides a familiar POSIX-like file system API, making it easy to use
6+
in your application; or an alternate minimalist API if your application has
7+
simple storage needs. Reliance Edge is highly configurable and can be tuned to
8+
the precise needs of your application.
9+
10+
## Documentation
11+
12+
The complete documentation for Reliance Edge is distributed separately. It
13+
includes an API reference and detailed discussions of various aspects of using
14+
Reliance Edge, including porting, building, configuring, and testing. This
15+
complete documentation, called the _Developer's Guide_, can be obtained for free
16+
from here:
17+
18+
<http://www.datalight.com/reliance-edge>
19+
20+
In addition this README, see [doc/release_notes.md](doc/release_notes.md) for a
21+
list of updates to Reliance Edge and a list of known issues.
22+
23+
## Why Use Reliance Edge?
24+
25+
Reliance Edge is ideal for small embedded systems with data storage
26+
requirements, especially if there is a chance of sudden power loss or other
27+
system failures. Compared to "raw" disk access, using a file system like
28+
Reliance Edge removes the burden of tracking which sectors belong to which
29+
objects, and allows data to be updated more reliably. Compared to the FAT file
30+
system, using Reliance Edge eliminates the possibility that file system data
31+
will be left in an inconsistent state, corrupting the disk; Reliance Edge does
32+
not need a fsck/CHKDSK utility. Compared to journaling file systems, Reliance
33+
Edge has less overhead and results in less storage media wear for longer device
34+
lifetimes.
35+
36+
Reliance Edge uses a unique transactional model that not only prevents file
37+
system corruption but also allows a set of changes to be made in an atomic "all
38+
or nothing" fashion. This is very useful for applications that make sets of
39+
interrelated changes. By using the features of Reliance Edge, a set of changes
40+
can be incorporated into a single atomic transaction, which is committed in its
41+
entirety or not at all even if interrupted by power loss; this means the
42+
application does not need code to recover from partially-finished updates.
43+
44+
## Hardware
45+
46+
The typical hardware for Reliance Edge is a 32-bit microcontroller, but other
47+
targets are possible. In its typical configurations, Reliance Edge needs at
48+
least 4 KB to 5 KB of RAM, 10 to 18 KB of code space (on the ROM or NOR flash),
49+
and 600 to 750 bytes of stack.
50+
51+
Reliance Edge is not designed for high-end embedded systems that run complicated
52+
operating systems like Linux or Windows Embedded Compact. Embedded systems of
53+
that variety are better served by other file systems, like Datalight's
54+
[Reliance Nitro](http://www.datalight.com/products/embedded-file-systems/reliance-nitro).
55+
56+
## Getting Reliance Edge Working
57+
58+
Before you can use Reliance Edge, it must be ported and configured. At a
59+
minimum, porting includes filling-in functions so that Reliance Edge can issue
60+
commands to your storage medium; depending on your needs, other functions may
61+
need to be filled in as well. These functions reside in a subdirectory in the
62+
os/ directory; see os/stub/ for a blank set of functions. Configuring includes
63+
creating a project directory (start by copying projects/newproj) and creating
64+
the two configuration files (redconf.h/redconf.c) using the Reliance Edge
65+
Configuration Utility (included with the _Developer's Guide_ download).
66+
67+
These topics are covered in much greater detail in the _Developer's Guide_,
68+
linked above.
69+
70+
## Using Reliance Edge
71+
72+
Using Reliance Edge is a simple matter of including the primary Reliance Edge
73+
application header in your application (either include/redposix.h or
74+
include/redfse.h) and compiling and linking against Reliance Edge binaries.
75+
The Reliance Edge driver must be initialized before it is used (via the
76+
red\_init() or RedFseInit() functions) and then volumes can be mounted and file
77+
and directory functions invoked. The Reliance Edge API is documented in the
78+
_Developer's Guide_ (linked above) and also via comments in the source code.
79+
80+
## Licensing
81+
82+
Reliance Edge is an open-source project licensed under the GNU General Public
83+
License v2 (GPLv2). Businesses and individuals that for commercial or other
84+
reasons cannot comply with the terms of the GPLv2 license may obtain a
85+
commercial license before incorporating Reliance Edge into proprietary software
86+
for distribution in any form. Visit <http://www.datalight.com/reliance-edge>
87+
for more information. The commercial distribution also includes extra tests and
88+
tools not distributed with the GPLv2 version.
89+
90+
See LICENSE.txt for the full license terms of this distribution of the product.
91+
92+
## Getting Help
93+
94+
If you need assistance using Reliance Edge, and you have already consulted the
95+
_Developer's Guide_, contact <[email protected]>.
96+
97+
In the near future, a community forum or message board will be set up to
98+
facilitate discussion of Reliance Edge and allow users to get help from
99+
Datalight and from each other. In the meantime, please use the email address
100+
given above.
101+
102+
## Contributing
103+
104+
Contributions to Reliance Edge are welcome. Our policy is that Datalight must
105+
own the copyright of all code incorporated into Reliance Edge; if contributing a
106+
significant amount of code, you will be asked to file a copyright assignment
107+
agreement. See CONTRIBUTING.txt for further details and contribution
108+
guidelines.
109+
110+
To report bugs, please create a GitHub issue or contact
111+
112+

Diff for: README.txt

+129
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
2+
3+
RELIANCE EDGE
4+
5+
6+
Reliance Edge is a small, portable, highly reliable power-fail safe file
7+
system for resource-constrained embedded systems like microcontrollers.
8+
It is written in C and provides a familiar POSIX-like file system API,
9+
making it easy to use in your application; or an alternate minimalist
10+
API if your application has simple storage needs. Reliance Edge is
11+
highly configurable and can be tuned to the precise needs of your
12+
application.
13+
14+
15+
Documentation
16+
17+
The complete documentation for Reliance Edge is distributed separately.
18+
It includes an API reference and detailed discussions of various aspects
19+
of using Reliance Edge, including porting, building, configuring, and
20+
testing. This complete documentation, called the _Developer's Guide_,
21+
can be obtained for free from here:
22+
23+
http://www.datalight.com/reliance-edge
24+
25+
In addition this README, see doc/release_notes.md for a list of updates
26+
to Reliance Edge and a list of known issues.
27+
28+
29+
Why Use Reliance Edge?
30+
31+
Reliance Edge is ideal for small embedded systems with data storage
32+
requirements, especially if there is a chance of sudden power loss or
33+
other system failures. Compared to "raw" disk access, using a file
34+
system like Reliance Edge removes the burden of tracking which sectors
35+
belong to which objects, and allows data to be updated more reliably.
36+
Compared to the FAT file system, using Reliance Edge eliminates the
37+
possibility that file system data will be left in an inconsistent state,
38+
corrupting the disk; Reliance Edge does not need a fsck/CHKDSK utility.
39+
Compared to journaling file systems, Reliance Edge has less overhead and
40+
results in less storage media wear for longer device lifetimes.
41+
42+
Reliance Edge uses a unique transactional model that not only prevents
43+
file system corruption but also allows a set of changes to be made in an
44+
atomic "all or nothing" fashion. This is very useful for applications
45+
that make sets of interrelated changes. By using the features of
46+
Reliance Edge, a set of changes can be incorporated into a single atomic
47+
transaction, which is committed in its entirety or not at all even if
48+
interrupted by power loss; this means the application does not need code
49+
to recover from partially-finished updates.
50+
51+
52+
Hardware
53+
54+
The typical hardware for Reliance Edge is a 32-bit microcontroller, but
55+
other targets are possible. In its typical configurations, Reliance Edge
56+
needs at least 4 KB to 5 KB of RAM, 10 to 18 KB of code space (on the
57+
ROM or NOR flash), and 600 to 750 bytes of stack.
58+
59+
Reliance Edge is not designed for high-end embedded systems that run
60+
complicated operating systems like Linux or Windows Embedded Compact.
61+
Embedded systems of that variety are better served by other file
62+
systems, like Datalight's Reliance Nitro.
63+
64+
65+
Getting Reliance Edge Working
66+
67+
Before you can use Reliance Edge, it must be ported and configured. At a
68+
minimum, porting includes filling-in functions so that Reliance Edge can
69+
issue commands to your storage medium; depending on your needs, other
70+
functions may need to be filled in as well. These functions reside in a
71+
subdirectory in the os/ directory; see os/stub/ for a blank set of
72+
functions. Configuring includes creating a project directory (start by
73+
copying projects/newproj) and creating the two configuration files
74+
(redconf.h/redconf.c) using the Reliance Edge Configuration Utility
75+
(included with the _Developer's Guide_ download).
76+
77+
These topics are covered in much greater detail in the _Developer's
78+
Guide_, linked above.
79+
80+
81+
Using Reliance Edge
82+
83+
Using Reliance Edge is a simple matter of including the primary Reliance
84+
Edge application header in your application (either include/redposix.h
85+
or include/redfse.h) and compiling and linking against Reliance Edge
86+
binaries. The Reliance Edge driver must be initialized before it is used
87+
(via the red_init() or RedFseInit() functions) and then volumes can be
88+
mounted and file and directory functions invoked. The Reliance Edge API
89+
is documented in the _Developer's Guide_ (linked above) and also via
90+
comments in the source code.
91+
92+
93+
Licensing
94+
95+
Reliance Edge is an open-source project licensed under the GNU General
96+
Public License v2 (GPLv2). Businesses and individuals that for
97+
commercial or other reasons cannot comply with the terms of the GPLv2
98+
license may obtain a commercial license before incorporating Reliance
99+
Edge into proprietary software for distribution in any form. Visit
100+
http://www.datalight.com/reliance-edge for more information. The
101+
commercial distribution also includes extra tests and tools not
102+
distributed with the GPLv2 version.
103+
104+
See LICENSE.txt for the full license terms of this distribution of the
105+
product.
106+
107+
108+
Getting Help
109+
110+
If you need assistance using Reliance Edge, and you have already
111+
consulted the _Developer's Guide_, contact
112+
113+
114+
In the near future, a community forum or message board will be set up to
115+
facilitate discussion of Reliance Edge and allow users to get help from
116+
Datalight and from each other. In the meantime, please use the email
117+
address given above.
118+
119+
120+
Contributing
121+
122+
Contributions to Reliance Edge are welcome. Our policy is that Datalight
123+
must own the copyright of all code incorporated into Reliance Edge; if
124+
contributing a significant amount of code, you will be asked to file a
125+
copyright assignment agreement. See CONTRIBUTING.txt for further details
126+
and contribution guidelines.
127+
128+
To report bugs, please create a GitHub issue or contact
129+

0 commit comments

Comments
 (0)