11e207bf4aace502c7453d59eb6d98b2dcb7d312
[bertos.git] / README
1 /*
2  * This document is automatically processed by Doxygen (http://www.doxygen.org/).
3  * Don't remove special formatting tags.
4  */
5 /*!
6
7 \mainpage
8
9 \section overview Overview
10
11 DevLib is a collection of small reusable components designed by Develer
12 for internal use in many embedded and portable applications.
13
14 These source files are intended to be shared between very different
15 environments, from 8bit processors to Linux and Win32 hosted
16 applications, using a wide range of compilers.
17
18 DevLib is not strictly a library or a portability layer.  It's also
19 definitely not an OS, altough some of its components can be combined
20 together to form a multitasking kernel with some IPC functionality.
21
22
23 \section scope Scope (or lack thereof)
24
25 There is no consistent scope or design guide-line for the components
26 of DevLib, altough there is a common coding and documentation style.
27 Every piece of code that looks useful for more than one application
28 may end up here, regardless of compatibility and fitness with other
29 modules.
30
31 Most of DevLib is written in C, but some services intended for higher
32 level, OS-hosted applications are written in C++.  Some modules are
33 dependant on others to avoid code duplication, but most of the times
34 you can configure out features you don't need.
35
36
37 \section structure Directory Structure
38
39 The modules are sorted in subdirectories by their category:
40
41  - kern/ - Simple multitasking kernel implementation;
42  - drv/ - Hardware drivers;
43  - mware/ - Algorithms, containers and other standalone code;
44  - io/ - Infrastructure of I/O-related modules for hosted applications;
45  - os/ - OS-abstraction layers for hosted environments;
46
47 The top-level directory contains a few support headers that are meant
48 to be usable by any C or C++, embedded or hosted application.  The
49 top-level directory also contains a few example templates for files
50 that are meant to be customized on a per-application basis.  These
51 files are hw.h, config.h, verstag.h and arch_config.h.
52
53 To achieve the highest possible reusability, most DevLib components
54 are designed for fine-grained modularity and minimal external
55 dependencies.  Most non-essential features can be configured out for
56 applications with small memory footprint requirements.
57
58
59 \section redist Redistribution
60
61 DevLib is a collection of independent works originally written by
62 several different contributors.  Unless otherwise noted, all material
63 is provided under the terms of the GPL (see LICENSE.GPL).
64
65 Alternatively, when parts of DevLib are included in projects developed
66 by Develer, said parts are subject to the same licensing terms covering
67 the specific project, with the exception of clauses granting exclusive
68 rights.
69
70 */