From 8588e9642d632d6d84e9c48388cfb566ecd4a36e Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 8 Mar 2009 08:15:23 +0000 Subject: Fixes to the documentation, swapped the values of constants TIME_INFINITE and TIME_IMMEDIATE (previously TIME_ZERO). git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@816 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- docs/index.html | 180 +++----------------------------------------------------- 1 file changed, 8 insertions(+), 172 deletions(-) (limited to 'docs/index.html') diff --git a/docs/index.html b/docs/index.html index 87ea4e9f8..bf4fe4e3f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,172 +1,8 @@ - - - - ChibiOS/RT embedded RTOS homepage - - - - - - - - - - - -
-

ChibiOS/RT embedded RTOS homepage

-
Current -Versions
-1.0.1 stable
-1.1.0 unstable
--
- Project on SourceForge
- Documentation
- Downloads
- Contact me
--
- History
- Description
Current ports
- Design
Performance and Size
- Future
--
- Credits
-
- SourceForge.net Logo
-
- Support This Project

- - - - -
-

History

-This RTOS is something I wrote back in 1990 for use on boards -equipped -with M68K processors, the development was made on an Atari ST. The OS -worked well for its intended purpose, Internet was not -widespread at that time so the system had a limited use.
-Recently I decided to release this system, formerly known as mkRTOS, as Free -Software. I cleaned up the code, improved the documentation, ported it -to more modern architectures and it is finally ready.
-

Description

-ChibiOS/RT is designed for embedded applications and it is meant to be -linked with the application code. The design philosophy is to make it -easy to use so I hope that all the APIs are meaningful, easy to -understand and with the parameters you would expect from them.
The -system offers threads, semaphores, mutexes, messages, events, virtual -timers, -queues, I/O channels with timeout capability and much more. The -Priority Inheritance algorithm is implemented through the Mutexes -mechaninsm, the implementation supports any number of threads and -nested mutexes.
-

Current -ports

-Currently the ChibiOS/RT is ported to the following architectures:
-
    -
  • ARM7TDMI-LPC214x, the port to other LPC2000 chips -should be trivial. Both ARM and THUMB modes are supported.
  • -
  • ARM7TDMI-AT91SAM7X256, this port also supports other Atmel -chips: SAM7XC, SAM7S and the various sizes (128, 256, 512) with -minimal changes.
  • -
  • ARM Cortex-M3, ST Microelectronics STM32.
  • -
  • Atmel AVR: AT90CAN128 and ATmega128 demos included.
  • -
  • Texas Instruments MSP430.
  • -
  • x86 as a Win32 process, this port allows to write -your application on the PC without the need of a development -board/simulator/emulator. Communication ports are simulated over -sockets, you can telnet on the simulator ports for the debug. I am -considering to create a similar simulator into a Linux process.
  • -
  • M68K, this was the original target but it is -currently removed from the source tree because currently I have no way -to test it, my old Atari ST is long dead. It should be very easy to -revive the port to the M68K or Coldfire CPUs.
  • -
-In general the port is very easy on architectures that can handle well -linked lists, the kernel is entirely reliant on lists so this -is a -very important efficiency factor. 16 and 32 bits architectures are -always fine, 8 bit architectures should be evaluated case by case but -are not ruled out, something like an H8 would not have problems. You -could port it -to a Z80/Z180 (I considered that too, and made tests using the SDCC -compiler) but the -resulting code is not much efficient because the instruction set is -missing the indirect addressing for 16 bits values that is important -for efficient linked lists traversal. -

Design

-The system was designed to be stable and avoid trouble as much as -possible so some rules were set:
-
    -
  • No arrays or tables, I don't like to have to -configure limits -for data structures, only use lists or other dynamic data structures. -See -the Documentation and -the demos.
  • -
  • No memory allocation inside the kernel, an allocator -can be -troublesome for RT applications. All the data structures are declared -in the application code and not allocated from a shared system heap. -This does not prevent the application code to use an allocator if -needed, it is just the kernel that does not require it.
  • -
  • No weird macros in the user code, everything should -look -and feel like normal C code with a normal main() function.
  • -
  • Encapsulate all the things that need changes while -porting -the OS to new architectures in few template files, fill the code into -the templates and the port is done.

Performance and Size

ChibiOS/RT -has a wide set of APIs but all the subsystems can be included or -removed from the memory image by editing the kernel configuration file -chconf.h. On ARM processors, the kernel size starts at just -1.5KiB depending on the included subsystems and the choosen -compiler optimizations.
As reference, a kernel configured with...
  • System startup code
  • Chip initialization code
  • Multithreading APIs
  • Virtual Timer APIs
  • Semaphore APIs
  • System time + Sleep API
  • Suspend/Resume APIs
  • Small main() program with flashing LEDs demo and 3 threads
...just takes 2.11KiB of program space when compiled using THUMB code and space optimizations. Note that this is quite a typical configuration -not a minimal one. A kernel configured with all the options and -optimized for speed takes about 6KiB. See the documentation about the -many available subsystems.

About performance, on a 48MHz LPC -ARM7 processor the kernel is capable of context switch time ranging -from 3 to 6 microseconds depending on the code type (ARM/THUMB) and the -choosen compiler/kernel optimizations. In the distribution is included -a spreadsheet with the exact values and the various space/time trade -offs.
The context switch time is *measured* using 2 threads -exchanging messages and doing *real* work, it is not a calculated peak -value. See the demo code, it includes the benchmark. -

Future

-Expect:
    - -
  • Documentation improvements.
  • - -
  • Ports to more architectures/boards when I am able to -put my hands on new hardware/tools.
  • -
  • More demos.
  • -
  • Creation of new subsystems.
  • -
  • Integration with -existing other free projects like: TCP/IP stacks, File Systems etc.
  • -
-

Credits

-ChibiOS/RT is 100% proprietary software free and was created using all the following FOSS projects:
- -
- - \ No newline at end of file + + + + + + + + -- cgit v1.2.3