mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-27 23:10:16 +00:00
doxygen: Replace and move main page
Replace the main page with a high level description of the RTEMS feature set similar to: https://docs.rtems.org/branches/master/user/overview/index.html#features The replaced content can be found in the RTEMS Classic API Guide: https://docs.rtems.org/branches/master/c-user/overview.html https://docs.rtems.org/branches/master/c-user/key_concepts.html Update #3705.
This commit is contained in:
206
cpukit/doxygen/mainpage.h
Normal file
206
cpukit/doxygen/mainpage.h
Normal file
@@ -0,0 +1,206 @@
|
||||
/* SPDX-License-Identifier: BSD-2-Clause */
|
||||
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* @ingroup RTEMSImplDoxygen
|
||||
*
|
||||
* @brief This file exists to provide a top level description of RTEMS for
|
||||
* Doxygen.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2021 embedded brains GmbH & Co. KG
|
||||
* Copyright (C) 1989, 2014 On-Line Applications Research Corporation (OAR)
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @mainpage
|
||||
*
|
||||
* The Real-Time Executive for Multiprocessor Systems (RTEMS) is a
|
||||
* multi-threaded, single address-space, real-time operating system with no
|
||||
* kernel-space/user-space separation. It is capable to operate in an SMP
|
||||
* configuration providing a state of the art feature set.
|
||||
*
|
||||
* RTEMS and all third-party software distributed with RTEMS which may be
|
||||
* linked to the application is licensed under permissive open source licenses.
|
||||
* This means that the licenses do not propagate to the application software.
|
||||
* Most of the original RTEMS code is now under the [BSD 2-Clause
|
||||
* license](https://git.rtems.org/rtems/tree/LICENSE.BSD-2-Clause). Some
|
||||
* code of RTEMS is under a legacy license, the [modified GPL 2.0 or later
|
||||
* license with an exception for static
|
||||
* linking](https://git.rtems.org/rtems/tree/LICENSE>). It exposes no license
|
||||
* requirements on application code. Everything necessary to build RTEMS
|
||||
* applications is available as open source software. This makes you
|
||||
* completely vendor independent.
|
||||
*
|
||||
* RTEMS provides the following basic feature set:
|
||||
*
|
||||
* - @ref RTEMSAPI
|
||||
*
|
||||
* - POSIX with
|
||||
* [pthreads](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html)
|
||||
* (enables a broad range of standard software to run on RTEMS)
|
||||
*
|
||||
* - @ref RTEMSAPIClassic
|
||||
*
|
||||
* - C11 (including
|
||||
* [thread](https://en.cppreference.com/w/c/thread) support)
|
||||
*
|
||||
* - C++11 (including
|
||||
* [thread](https://en.cppreference.com/w/cpp/thread>) support)
|
||||
*
|
||||
* - Newlib and GCC internal
|
||||
*
|
||||
* - Programming languages
|
||||
*
|
||||
* - C/C++/OpenMP (RTEMS Source Builder, RSB)
|
||||
*
|
||||
* - Ada (RSB, ``--with-ada``)
|
||||
*
|
||||
* - Erlang
|
||||
*
|
||||
* - Fortran (RSB, ``--with-fortran``)
|
||||
*
|
||||
* - Python and MicroPython
|
||||
*
|
||||
* - Parallel languages
|
||||
*
|
||||
* - [Embedded Multicore Building Blocks](https://embb.io/)
|
||||
*
|
||||
* - [OpenMP](https://www.openmp.org/)
|
||||
*
|
||||
* - Thread synchronization and communication
|
||||
*
|
||||
* - Mutexes with and without locking protocols
|
||||
*
|
||||
* - Counting semaphores
|
||||
*
|
||||
* - Binary semaphores
|
||||
*
|
||||
* - Condition variables
|
||||
*
|
||||
* - Events
|
||||
*
|
||||
* - Message queues
|
||||
*
|
||||
* - Barriers
|
||||
*
|
||||
* - [Futex](@ref RTEMSScoreFutex) (used by OpenMP barriers)
|
||||
*
|
||||
* - Epoch Based Reclamation (libbsd)
|
||||
*
|
||||
* - Locking protocols
|
||||
*
|
||||
* - Transitive Priority Inheritance
|
||||
*
|
||||
* - OMIP (SMP feature)
|
||||
*
|
||||
* - Priority Ceiling
|
||||
*
|
||||
* - MrsP (SMP feature)
|
||||
*
|
||||
* - Scalable timer and timeout support
|
||||
*
|
||||
* - Lock-free timestamps (FreeBSD timecounters)
|
||||
*
|
||||
* - Responsive interrupt management
|
||||
*
|
||||
* - Thread-Local Storage (TLS) as specified by C11/C++11 and later standard
|
||||
* revisions
|
||||
*
|
||||
* - Link-time configurable schedulers
|
||||
*
|
||||
* - Fixed-priority
|
||||
*
|
||||
* - Job-level fixed-priority (EDF)
|
||||
*
|
||||
* - Constant Bandwidth Server (experimental)
|
||||
*
|
||||
* - Clustered scheduling (SMP feature)
|
||||
*
|
||||
* - Flexible link-time configuration
|
||||
*
|
||||
* - Job-level fixed-priority scheduler (EDF) with support for one-to-one
|
||||
* and one-to-all thread to processor affinities (default SMP scheduler)
|
||||
*
|
||||
* - Fixed-priority scheduler
|
||||
*
|
||||
* - Proof-of-concept strong APA scheduler
|
||||
*
|
||||
* - Focus on link-time application-specific configuration
|
||||
*
|
||||
* - Linker-set based initialization (similar to global C++ constructors)
|
||||
*
|
||||
* - Operating system uses fine-grained locking (SMP feature)
|
||||
*
|
||||
* - Dynamic memory allocators
|
||||
*
|
||||
* - First-fit (default)
|
||||
*
|
||||
* - Universal Memory Allocator
|
||||
* ([UMA](https://www.freebsd.org/cgi/man.cgi?query=uma&sektion=9),
|
||||
* libbsd)
|
||||
*
|
||||
* - File systems
|
||||
*
|
||||
* - IMFS
|
||||
*
|
||||
* - FAT
|
||||
*
|
||||
* - RFS
|
||||
*
|
||||
* - NFSv2
|
||||
*
|
||||
* - JFFS2 (NOR flashes)
|
||||
*
|
||||
* - [YAFFS2](https://git.rtems.org/sebh/rtems-yaffs2.git/)
|
||||
* (NAND flashes, GPL or commercial license required)
|
||||
*
|
||||
* - Device drivers
|
||||
*
|
||||
* - Termios (serial interfaces)
|
||||
*
|
||||
* - I2C (Linux user-space API compatible)
|
||||
*
|
||||
* - SPI (Linux user-space API compatible)
|
||||
*
|
||||
* - Network stacks (legacy, libbsd, lwIP)
|
||||
*
|
||||
* - USB stack (libbsd)
|
||||
*
|
||||
* - SD/MMC card stack (libbsd)
|
||||
*
|
||||
* - Framebuffer (Linux user-space API compatible, Qt)
|
||||
*
|
||||
* - Application runs in kernel-space and can access hardware directly
|
||||
*
|
||||
* - [libbsd](https://git.rtems.org/rtems-libbsd/)
|
||||
*
|
||||
* - Port of FreeBSD user-space and kernel-space components to RTEMS
|
||||
*
|
||||
* - Easy access to FreeBSD software for RTEMS
|
||||
*
|
||||
* - Support to stay in synchronization with FreeBSD
|
||||
*/
|
||||
Reference in New Issue
Block a user