doc: Add xmodem documentation.
[bertos.git] / README.bertos
index ccd6d2c1bf89440cb50c466de0a3263524e7dc97..65edccce173bdbd65b734aafc134564f61c7e98c 100644 (file)
@@ -1,6 +1,16 @@
-BeRTOS                                                         -*- outline -*-
+/*!
+<!--
+This document is automatically processed by Doxygen (http://www.doxygen.org/).
+Don't remove special formatting tags.
+This section won't be processed unless enabled.
 
-* Overwiew
+See STATUS for further information and tips about Doxygen tags.
+-->
+
+
+\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.
@@ -9,28 +19,29 @@ It has a modular structure: its components can be used in very different
 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
-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".
+BeRTOS was born as a extremely modular, highly optimized and fine-tuned
+operating system for embedded programming.
+As a result, each module has its own scope and can be used alone or in
+cooperation with other modules.
+It's even possible to use most of the drivers without activating the kernel module.
 
 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
+Most non-essential features can be configured out for applications 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, 
-    which can be easily customized to the actual hardware: timer, serial, 
+  - a comprehensive set of generic drivers for a wide range of devices,
+    which can be easily customized to the actual hardware: timer, serial,
     adc, ntc, pwm, stepper motors, dc motors, lcd, keyboards, buzzer, eeprom;
   - full graphic subsystem for simple displays, with font support, bitmaps,
     clipping, text formatting, interactive menus;
@@ -39,32 +50,53 @@ memory footprint requirements.
   - 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;
-  - app/     : demo application;
-  - cfg/     : configuration stuffs;
-  - cxxutil/ : c++ libraries;
-  - doc/     : documentation;
-  - drv/     : hardware drivers;
-  - dt/             : ?
-  - emul/    : Qt-based emulator framework for embedded applications;
-  - fonts/   : fonts
-  - gfx/     : feneral pourpose graphics routines;
-  - gui/     : widgets for simples displays;
-  - hw/             : hardware-specific decalrations;
-  - 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    : ?
+  - app/            : demo applications;
+  - bertos/algo/    : algorithms;
+  - bertos/cfg/     : configuration stuff;
+  - bertos/drv/     : hardware drivers;
+  - bertos/dt/     : experimental object oriented gui toolkit;
+  - bertos/emul/    : Qt-based emulator framework for embedded applications;
+  - bertos/fonts/   : fonts;
+  - bertos/fs/      : file system related stuff;
+  - bertos/gfx/     : general purpose graphics routines;
+  - bertos/gui/     : widgets for simple displays;
+  - bertos/hw/     : hardware-specific declarations;
+  - bertos/icons/   : conversion tool from image TXT format to LCD bitmap;
+  - bertos/kern/    : multitasking kernel;
+  - bertos/mware/   : algorithms, other standalone code;
+  - bertos/struct/  : containers and other data structures;
+  - bertos/os/     : OS-abstraction layers for hosted environments;
+  - doc/            : documentation;
 
 The top-level directory contains a few support headers that are meant to be
 usable by any C/C++ embedded or hosted application.
+
+See the \ref dev_status page for information about the various drivers.
+
+\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
+
+*/