X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=doc%2FSTATUS;h=acf84e8e443e2788cdc577e4e3838a3a22cdf25b;hb=fec2a6b63d7ef202f921169a540556e794df1a3f;hp=d91fd337aebb4311a1b170f685c79f60bec927c9;hpb=3a6471c19cf51b966d6922ff08eae8f194613785;p=bertos.git
diff --git a/doc/STATUS b/doc/STATUS
index d91fd337..acf84e8e 100644
--- a/doc/STATUS
+++ b/doc/STATUS
@@ -24,20 +24,18 @@ Remember to use Doxygen tags sparingly inside source code.
If you are looking for the list of BeRTOS ports or a detailed overview of all modules completeness and stability this is the right place.
-BeRTOS is quite stable (it is used in production environments) but it is also a very large project, so all of its parts may not be at the same level.
+BeRTOS is stable and it's used in production environments but it is also a very large project, so all of its parts may not be at the same level.
Table of contents:
\li \ref kernel
- \li \ref compilers
\li \ref core_drivers
\li \ref internal_peripherals
\li \ref independant_drivers
- \li \ref emulator
- \li \ref algorithms
+ \li \ref storage
\li \ref graphics
+ \li \ref algorithms
\li \ref networking
- \li \ref fs
\li \ref data_structures
\li \ref mware
@@ -50,130 +48,97 @@ Since the system simply waits for external events to happen we decided to implem
Currently the kernel code is very stable.
Kernel features :
- \li \link coop.c Cooperative \endlink round-robin scheduling.
+ \li \link preempt.c Cooperative and preemptive \endlink round-robin scheduling.
\li \link monitor.h Stack process monitor \endlink, useful to prevent stack overflows.
\li \link msg.h Inter-process messaging system \endlink (with very low overhead).
\li \link sem.h Binary semaphores \endlink.
\li \link signal.c Signals \endlink.
-We have plans to add, as soon as possible, a preemptive scheduler , browse kernel source code to see the latest additions.
-
The kernel has a port layer (a single assembly function) that needs to be reimplemented each time a new CPU is added.
Here is a list of currently available CPU family ports:
- CPU Family | Port status |
- ARM | stable |
- Atmel AVR | stable |
- Freescale DSP56800 | unmantained |
- Intel i196 | unmantained |
- PowerPC | \ref emulator only |
- Intel/AMD x86 | \ref emulator only |
- Intel/AMD x86-64 | \ref emulator only |
+ CPU Family | Port status |
+ ARM7TDMI | Atmel AT91SAM7, NXP LPC2XXX |
+ Cortex-M3 | Luminary Stellaris LM3S, ST Microelectronics STM32 |
+ Atmel AVR | Most cpu supported (including Arduino) |
+ PowerPC | emulator |
+ Intel/AMD x86 | emulator |
+ Intel/AMD x86-64 | emulator |
-\section compilers Compilers
-BeRTOS is primarily intended to be used with open source tools such as GCC, although it supports other compilers too. It is possible to develop with BeRTOS on Linux, Windows and Mac.
-
-For every port we have indicated the current compiler used and were to find a suitable development suite:
-
-
-
\section core_drivers Core Drivers
BeRTOS is not only a kernel, it aims to supply full operating system services.
To achieve this we need at least some core drivers for every CPU port.
These drivers are: system timer , debug system and serial comm driver .
-Here is the list of CPU whose internal core drivers are supported:
-
- Family | CPU | Core driver status |
- ARM | AT91SAM7S64 | stable |
- ARM | AT91SAM7S128 | stable |
- ARM | AT91SAM7S256 | stable |
- ARM | AT91SAM7S512 | stable |
- ARM | AT91SAM7X128 | stable |
- ARM | AT91SAM7X256 | stable |
- ARM | AT91SAM7X512 | stable |
- AVR | ATMega8 | stable |
- AVR | ATMega32 | stable |
- AVR | ATMega64 | stable |
- AVR | ATMega103 | stable |
- AVR | ATMega128 | stable |
- AVR | ATMega168 | stable |
- AVR | ATMega1281 | stable |
- DSP56800 | all | unmantained |
- i196 | all | unmantained |
- PowerPC | all | see \ref emulator |
- x86 | all | see \ref emulator |
- x86-64 | all | see \ref emulator |
-
-
Adding CPU support for an already present CPU family is quite simple since hardware manufacturers share peripherals design between the same CPU cores.
+Core drivers are completely supported on all platforms.
+
\section internal_peripherals MCU Internal peripheral drivers
Since BeRTOS aims to supply full operating system services, for every CPU port we try to implement as much drivers as possible. This section covers the current development status for MCU Internal peripheral drivers.
-
- \li MCU family: Atmel AVR
-
-
- Driver | Status |
- \link adc_avr.c ADC \endlink | stable |
- \link flash_avr.c Internal Flash \endlink | stable |
- UART | stable |
- SPI | stable |
- Timer | stable |
- \link i2c_avr.c TWI \endlink | stable |
-
-
- To get up to date informations look at the AVR drivers source code.
-
- \li MCU family: Atmel AT91 ARM
-
- Driver | Status |
- UART | stable |
- SPI | stable |
- Timers | stable |
- TWI | beta |
- ADC | beta |
- PWM | beta |
- \link i2s_at91.h I2S \endlink digital audio bus | stable |
+
+ Driver / MCU family |
+ ADC |
+ UART |
+ FLASH |
+ I2C |
+ PWM |
+ SPI |
+
+ Atmel AVR |
+ Yes |
+ Yes |
+ Yes |
+ Yes |
+ Yes |
+ Yes |
+
+ Atmel AT91SAM7 ARM |
+ Yes |
+ Yes |
+ Yes |
+ Yes |
+ Yes |
+ Yes |
+
+ Atmel AT91SAM3N ARM |
+ - |
+ Yes |
+ - |
+ - |
+ - |
+ -
+ |
+ STmicro STM32F103xx ARM |
+ Yes |
+ Yes |
+ Yes |
+ Yes |
+ - |
+ - |
+
+ Philips LPC23XX ARM |
+ - |
+ Yes |
+ Yes |
+ Yes |
+ - |
+ - |
+
+ Stellaris LM3S ARM |
+ Yes |
+ Yes |
+ Yes |
+ Yes |
+ - |
+ Yes |
+
- To get up to date informations look at the ARM drivers source code.
-
- \li MCU family: Freescale DSP56800
-
- Only core drivers are supported.
-
- \li MCU family: Intel i196
-
- Only core drivers are supported.
-
- \li MCU family: PowerPC
-
- See \ref emulator.
-
- \li MCU family: x86
-
- See \ref emulator.
-
- \li MCU family: x86-64
-
- See \ref emulator.
-
\section independant_drivers Generic CPU independent drivers
BeRTOS supplies a full set of CPU independent generic hardware drivers. To achieve this all drivers are structured to have an hardware abstraction layer (HAL) that isolate CPU specific code and makes porting to new CPU easy.
Current driver list:
@@ -211,43 +176,28 @@ Current driver list:
To get up to date informations look at the drivers source code.
-\section emulator Emulator
-BeRTOS features can be emulated on a common PC, check DemoApp.
+\section storage File system
+BeRTOS supports two file systems. The first one is the mainstream \link fat.h FAT \endlink filesystem, using the FatFs library. The module is highly configurable, for example it can be compiled in read-only mode for some space saving.
-The emulator uses Qt to display emulated I/O devices in a window. It supports task
-scheduling and a number of other embedded peripherals.
+The second is \link battfs.h BattFs\endlink, a file system specifically planned for embedded platforms. The goal is to have a filesystem suitable for little flash and eeprom memories (like dataflash), reliable, robust and capable of wear-levelling the memory pages to increase its life.
+The code is in beta stage. Currently you can create files, append data to them but file deletion is still not supported. Wear-levelling is achieved by rotating a page every time it is written. Plans are to add even transactions (a whole write can be performed atomically).
-
- Emulator | Status |
- timer | stable |
- scheduler | stable |
- keyboard | stable |
- graphical LCD display | stable |
-
- text LCD display | unmaintained |
- buzzer | unmaintained |
- serial port | unmaintained |
- flash | unmaintained |
- debug console | stable |
- file read/write | stable |
-
+File system development takes place in the fs directory.
-\section algorithms Algorithms
-In embedded programming sometimes you have to cope with protocols, security systems and things like that.
-BeRTOS comes in help with a set of optimized portable algorithms:
-
- Algorithm | Status |
- \link crc.h CRC16 \endlink | stable |
- \link md2.c MD2 \endlink | beta |
- \link randpool.c Cryptographically secure Random Pool \endlink | beta |
- \link rotating_hash.h Rotating hash checksum \endlink | stable |
- \link tea.h TEA (Tiny Encryption Algorithm) \endlink | stable |
- \link ramp.h Stepper motor ramp generator \endlink | stable |
- \link pid_control.h PID Controller \endlink | stable |
- \link rle.c RLE (Run lenght en/decondig) \endlink | stable |
-
+\subsection fat File System: FAT
+
+ The FAT file system is the de-facto standard for removable devices such as SD cards or Memory cards. BeRTOS supports read and write operations on all existing FAT file systems, ranging from FAT12 to FAT32, with support to long file names. This file system is light and fast and allows to easily exchange data through external memory devices.
+
+ FAT module is highly configurable, for example it can be compiled in read-only mode for some space saving.
+
+\subsection battfs File System: BattFS
+
+ BattFS (Batt File System), has been developed to solve problems specific to embedded systems; BattFS is a file system that can be used on any physical media and it's optimized to reduce RAM and ROM usage to meet the strict design guidelines we have used with all the others BeRTOS components.
+
+ The goal is to have a filesystem suitable for little flash and eeprom memories (like dataflash), reliable, robust and capable of wear-levelling the memory pages to increase its life.
+
+ The code is in beta stage. Currently you can create files, append data to them but file deletion is still not supported. Wear-levelling is achieved by rotating a page every time it is written. Plans are to add even transactions (a whole write can be performed atomically).
-To get up to date informations look at the algorithms source code.
\section graphics Graphic subsystem
BeRTOS also features a complete graphic subsystem, suitable for generating compact yet powerful GUI.
@@ -267,6 +217,24 @@ This system is composed of several modules ranging from simple graphic primitive
To get up to date informations look at the source code in the directories \b gfx, \b gui or \b fonts.
+
+\section algorithms Algorithms
+In embedded programming sometimes you have to cope with protocols, security systems and things like that.
+BeRTOS comes in help with a set of optimized portable algorithms:
+
+ Algorithm | Status |
+ \link crc.h CRC16 \endlink | stable |
+ \link md2.c MD2 \endlink | beta |
+ \link randpool.c Cryptographically secure Random Pool \endlink | beta |
+ \link rotating_hash.h Rotating hash checksum \endlink | stable |
+ \link tea.h TEA (Tiny Encryption Algorithm) \endlink | stable |
+ \link ramp.h Stepper motor ramp generator \endlink | stable |
+ \link pid_control.h PID Controller \endlink | stable |
+ \link rle.c RLE (Run lenght en/decondig) \endlink | stable |
+
+
+To get up to date informations look at the algorithms source code.
+
\section networking Network protocols
Since BeRTOS can also be used in very tiny systems, some simple communication protocols has been developed.
@@ -283,15 +251,6 @@ This is the current status:
For more information take a look at network directory.
-
-\section fs File system
-BeRTOS supports two file systems. The first one is the mainstream \link fat.h FAT \endlink filesystem, using the FatFs library. The module is highly configurable, for example it can be compiled in read-only mode for some space saving.
-
-The second is \link battfs.h BattFs\endlink, a file system specifically planned for embedded platforms. The goal is to have a filesystem suitable for little flash and eeprom memories (like dataflash), reliable, robust and capable of wear-levelling the memory pages to increase its life.
-The code is in beta stage. Currently you can create files, append data to them but file deletion is still not supported. Wear-levelling is achieved by rotating a page every time it is written. Plans are to add even transactions (a whole write can be performed atomically).
-
-File system development takes place in the fs directory.
-
\section data_structures Data Structures
BeRTOS supplies common data structures, implemented and optimized for low memory footprint and speed.