/*! \page dev_status BeRTOS Development Status 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. 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 graphics \li \ref networking \li \ref fs \li \ref data_structures \li \ref mware \section kernel Kernel BeRTOS features a cooperative kernel with synchronization primitives. Embedded systems are mostly I/O bound systems. In these systems the microprocessor/microcontroller spends the most part of its computing power doing... absolutely nothing :-) Since the system simply waits for external events to happen we decided to implement a strong and robust cooperative kernel with very low memory footprint and high modularity. This allows the kernel to be used on a variety of different CPUs, even the smaller ones. Currently the kernel code is very stable. Kernel features : \li \link coop.c Cooperative \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 | Compiler | Linux/Mac Toolchain | Windows Toolchain |
ARM | GCC | Sourcery G++ toolchain (open source) | BeRTOS ARM IDE (open source) |
ARM | IAR (unmantained) | none | http://www.iar.com (proprietary) |
AVR | GCC | AVR Toolchain installer (open source) | BeRTOS AVR IDE (open source) |
DSP56800 | CodeWarrior (unmantained) | none | CodeWarrior (proprietary) |
i196 | fillme | fillme | fillme |
PowerPC | GCC | use your system GCC | none |
x86 | GCC | use your system GCC | http://www.mingw.org/ (open source) |
x86 | MSVC (unmantained) | none | Visual Studio (proprietary) |
x86-64 | GCC | use your system GCC | none |
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 |
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 |
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 | Status |
\link adc.h ADC API \endlink | stable |
\link buzzer.h Buzzer \endlink | stable |
\link dataflash.h Atmel Dataflash \endlink | stable |
\link eeprom.h I2C EEPROM \endlink | stable |
\link flash25.h AT25Fxxx Atmel flash memories \endlink | beta |
\link ft245rl.h FT245RL USB to parallel converter \endlink | beta |
\link kbd.h Keyboard \endlink | stable |
\link i2c.h I2C \endlink with bitbang support | stable |
Displaytech 32122A Graphic LCD | stable |
\link dc_motor.h DC Motor with PID \endlink | stable |
\link lcd_text.h Alphanumeric LCD \endlink | stable |
\link lm75.h LM75 temperature sensor \endlink | stable |
\link mcp41.h MPC41 digital potentiometer \endlink | stable |
\link mpxx6115a.h MPxx6115A pressure sensor \endlink | stable |
\link ntc.h NTC \endlink | stable |
\link phase.h TRIAC phase partialization \endlink | stable |
\link pwm.h PWM API \endlink | beta |
\link pcf8574.h PCF85974 I2C port expander \endlink | beta |
\link sd.h Secure Digital card API \endlink | stable |
\link ser.h Serial API \endlink | stable |
\link spi_bitbang.h Bitbanged SPI \endlink | stable |
\link tas5706a.h TAS5706A \endlink digital audio DSP | stable |
\link tc520.h TC520 ADC \endlink | obsolete |
\link thermo.h Thermostat \endlink | stable |
\link timer.h System timer API \endlink | stable |
\link tmp123.h TMP123 temperature sensor \endlink | stable |
\link stepper.h Stepper motor with ramps \endlink | stable |
Watchdog | beta |
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 |
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 |
Module | Status |
\link bitmap.c Bitmaps manipulation \endlink | stable |
\link line.c Lines drawing \endlink | stable |
\link line.c Rectangles drawing \endlink | stable |
\link win.h Simple windowing system \endlink | stable |
Proportional and fixed size fonts | stable |
\link text.h Text rendering \endlink | stable |
\link charts.h Simple Charts \endlink | stable |
\link menu.h Menus \endlink | stable |
Protocol | Status |
\link pocketbus.c PocketBus \endlink | stable |
\link keytag.c Keytag (for 125KHz transponders) \endlink | stable |
\link xmodem.c XModem protocol \endlink | stable |
\link nmea.c NMEA GPS protocol parser \endlink | stable |
\link afsk.c AFSK1200 modem \endlink | stable |
\link ax25.h AX25 data link layer protocol \endlink | beta |
Module | Status |
\link fifobuf.h FIFO \endlink | stable |
\link hashtable.h Hash table \endlink | stable |
\link heap.h Embedded-optimized dynamic memory allocator \endlink | stable |
\link list.h Lists \endlink | stable |
Module | Status |
\link cpu/byteorder.h Integers to/from host byte-order conversion \endlink | stable |
\link event.h Events \endlink | stable |
\link except.h C++ like exception handling in C \endlink | stable |
\link formatwr.c Embedded-optimized printf \endlink | stable |
\link readline.h Command shell with history \endlink | stable |
\link ini_reader.h Ini file reader \endlink | stable |