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