Update preset.
[bertos.git] / doc / Mainpage.snapshot
1 /*!
2 <!--
3 This document is automatically processed by Doxygen (http://www.doxygen.org/).
4 Don't remove special formatting tags.
5 This section won't be processed unless enabled.
6
7 See STATUS for further information and tips about Doxygen tags.
8 -->
9
10
11 \mainpage
12
13 <b>This documentation is generated from BeRTOS SVN. As such, it may contain modules
14 and/or additional documentation not present in official releases.</b>
15
16 \section overview Overview
17
18 BeRTOS is a real-time operating system designed for building applications
19 for embedded systems, like reference boards, test boards, or custom boards.
20
21 It has a modular structure: its components can be used in very different
22 environments, from 8-bit processor to Linux and Win32 hosted application
23 (for debug purpose), using a wide range of compilers.
24
25 Have a look at \ref short_introduction page for a quick overview of
26 the BeRTOS system.
27
28 \section history History and Motivation
29
30 BeRTOS was born as a extremely modular, highly optimized and fine-tuned
31 operating system for embedded programming.
32 As a result, each module has its own scope and can be used alone or in
33 cooperation with other modules.
34 It's even possible to use most of the drivers without activating the kernel module.
35
36 We have grown it following our guidelines: simplicity and beauty.
37 These guidelines made it possible to evolve it in a full-featured real
38 time operating system, with more modularity than many other embedded OSes,
39 without giving up reliability and performace.
40
41 To achieve the highest possible reusability, most BeRTOS components are
42 designed for fine-grained modularity and minimal external dependencies.
43 Most non-essential features can be configured out for applications with small
44 memory footprint requirements.
45
46 The basic design principles are explained in the \ref oop page.
47
48 \section features Features
49
50   - multitasking kernel with IPC, semaphores, priority levels;
51   - a comprehensive set of generic drivers for a wide range of devices,
52     which can be easily customized to the actual hardware: timer, serial,
53     adc, ntc, pwm, stepper motors, dc motors, lcd, keyboards, buzzer, eeprom;
54   - full graphic subsystem for simple displays, with font support, bitmaps,
55     clipping, text formatting, interactive menus;
56   - simple console with command parser;
57   - readline-like support for command history;
58   - entropy generator and random numbers generator optimized for embedded
59     systems;
60   - checksumming and hashing functions (CRC, MD2);
61   - full hash-table implementation with double-hashing collision resolution;
62   - XMODEM protocol implementation;
63   - RLE compression algorithm;
64
65 \section structure Directory Structure
66
67 The modules are sorted in subdirectories by their category:
68
69   - app/            : demo applications;
70   - bertos/algo/    : algorithms;
71   - bertos/cfg/     : configuration stuff;
72   - bertos/drv/     : hardware drivers;
73   - bertos/dt/      : experimental object oriented gui toolkit;
74   - bertos/emul/    : Qt-based emulator framework for embedded applications;
75   - bertos/fonts/   : fonts;
76   - bertos/fs/      : file system related stuff;
77   - bertos/gfx/     : general purpose graphics routines;
78   - bertos/gui/     : widgets for simple displays;
79   - bertos/hw/      : hardware-specific declarations;
80   - bertos/icons/   : conversion tool from image TXT format to LCD bitmap;
81   - bertos/kern/    : multitasking kernel;
82   - bertos/mware/   : algorithms, other standalone code;
83   - bertos/struct/  : containers and other data structures;
84   - bertos/os/      : OS-abstraction layers for hosted environments;
85   - doc/            : documentation;
86
87 The top-level directory contains a few support headers that are meant to be
88 usable by any C/C++ embedded or hosted application.
89
90 \section license License
91
92 BeRTOS is provided under the term of the GNU General Public License
93 (see LICENSE.GPL) with following exception:
94
95 \verbatim
96
97 As a special exception, you may use this file as part of a free software
98 library without restriction.  Specifically, if other files instantiate
99 templates or use macros or inline functions from this file, or you compile
100 this file and link it with other files to produce an executable, this
101 file does not by itself cause the resulting executable to be covered by
102 the GNU General Public License.  This exception does not however
103 invalidate any other reasons why the executable file might be covered by
104 the GNU General Public License.
105
106 \endverbatim
107
108 */