X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=README.bertos;h=65edccce173bdbd65b734aafc134564f61c7e98c;hb=225b5f86a6cac80cdafe0e3b1cc91f735c6b902e;hp=ccd6d2c1bf89440cb50c466de0a3263524e7dc97;hpb=3c3d29882289a535eeb7222d7079e8f1c6b9b098;p=bertos.git diff --git a/README.bertos b/README.bertos index ccd6d2c1..65edccce 100644 --- a/README.bertos +++ b/README.bertos @@ -1,6 +1,16 @@ -BeRTOS -*- outline -*- +/*! + + + +\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 + +*/