-BeRTOS -*- outline -*-
+/*
+ * This document is automatically processed by Doxygen (http://www.doxygen.org/).
+ * Don't remove special formatting tags.
+ */
+/*!
-* Overwiew
+\mainpage
+
+\section overview Overview
BeRTOS is a real-time operating system designed for building applications
for embedded systems, like reference boards, test boards, or custom boards.
environments, from 8-bit processor to Linux and Win32 hosted application
(for debug purpose), using a wide range of compilers.
-* History and Motivation
+\section history History and Motivation
-BeRTOS was born as a collection of usefull, highly optimized and fine-tuned
+BeRTOS was born as a collection of useful, highly optimized and fine-tuned
libraries for embedded systems. Each library had its own scope and could be
used singularly in a project, though they were also meant to cooperate to
-build the wole underlying software layer commonly called "operating system".
+build the whole underlying software layer commonly called "operating system".
We have grown it following our guidelines: simplicity and beauty.
-These guidelines have make possible its evolution in a full-featured real
-time operating system, with more modularity than other embedded OS,
-without givin up reliability and performace.
+These guidelines made it possible to evolve it in a full-featured real
+time operating system, with more modularity than many other embedded OSes,
+without giving up reliability and performace.
To achieve the highest possible reusability, most BeRTOS components are
designed for fine-grained modularity and minimal external dependencies.
Most non-essential features can be configured out for application with small
memory footprint requirements.
-* Features
+\section features Features
- multitasking kernel with IPC, semaphores, priority levels;
- a comprehensive set of generic drivers for a wide range of devices,
- entropy generator and random numbers generator optimized for embedded
systems;
- checksumming and hashing functions (CRC, MD2);
- - full hash-table implementation with double-hashing collisition resolution;
+ - full hash-table implementation with double-hashing collision resolution;
- XMODEM protocol implementation;
- RLE compression algorithm;
-* Directory Structure
+\section structure Directory Structure
The modules are sorted in subdirectories by their category:
- - algos/ : algorithms;
+ - algo/ : algorithms;
- app/ : demo application;
- - cfg/ : configuration stuffs;
- - cxxutil/ : c++ libraries;
+ - cfg/ : configuration stuff;
- doc/ : documentation;
- drv/ : hardware drivers;
- - dt/ : ?
+ - dt/ : experimental object oriented gui toolkit;
- emul/ : Qt-based emulator framework for embedded applications;
- - fonts/ : fonts
- - gfx/ : feneral pourpose graphics routines;
- - gui/ : widgets for simples displays;
- - hw/ : hardware-specific decalrations;
+ - fonts/ : fonts;
+ - fs/ : file system related stuff;
+ - gfx/ : general purpose graphics routines;
+ - gui/ : widgets for simple displays;
+ - hw/ : hardware-specific declarations;
- icons/ : conversion tool from image TXT format to LCD bitmap;
- - io/ : infrastructure of I/O-related modules for hosted applications;
- kern/ : multitasking kernel;
- mware/ : algorithms, containers and other standalone code;
- os/ : OS-abstraction layers for hosted environments;
- - qtext : ?
The top-level directory contains a few support headers that are meant to be
usable by any C/C++ embedded or hosted application.
+
+\section license License
+
+BeRTOS is provided under the term of the GNU General Public License
+(see LICENSE.GPL) with following exception:
+
+\verbatim
+
+As a special exception, you may use this file as part of a free software
+library without restriction. Specifically, if other files instantiate
+templates or use macros or inline functions from this file, or you compile
+this file and link it with other files to produce an executable, this
+file does not by itself cause the resulting executable to be covered by
+the GNU General Public License. This exception does not however
+invalidate any other reasons why the executable file might be covered by
+the GNU General Public License.
+
+\endverbatim
+
+*/