Hello Joel,
thanks for having a look at it. I used the features list here as a
template for the mainpage:
https://docs.rtems.org/branches/master/user/overview/index.html#features
Maybe it needs to be updated as well.
On 10.10.23 20:43, Joel Sherrill wrote:
Sorry. Not sure how this kept slipping through the cracks. The 13
September ping did coincide with me being on a trip and then sick.
This is the only revision I see in my inbox. There is an email which
says "how about this version?" but I don't see anything on it.
A few comments inline.
On Fri, Jul 28, 2023 at 9:37 AM Sebastian Huber
<sebastian.hu...@embedded-brains.de
<mailto:sebastian.hu...@embedded-brains.de>> wrote:
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
<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/overview.html>
https://docs.rtems.org/branches/master/c-user/key_concepts.html
<https://docs.rtems.org/branches/master/c-user/key_concepts.html>
Update #3705.
---
v2:
* Add OAR copyright.
* Move to cpukit/doxygen/mainpage.h
* Not not install
cpukit/doxygen/mainpage.h | 204 ++++++
cpukit/include/rtems/rtems/mainpage.h | 951 --------------------------
spec/build/cpukit/librtemscpu.yml | 1 -
3 files changed, 204 insertions(+), 952 deletions(-)
create mode 100644 cpukit/doxygen/mainpage.h
delete mode 100644 cpukit/include/rtems/rtems/mainpage.h
diff --git a/cpukit/doxygen/mainpage.h b/cpukit/doxygen/mainpage.h
new file mode 100644
index 0000000000..ce341e0ffd
--- /dev/null
+++ b/cpukit/doxygen/mainpage.h
@@ -0,0 +1,204 @@
+/* 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 properagate to the
application software.
properagate -> propagate
+ * Most of the original RTEMS code is now under the [BSD 2-Clause
+ * license](https://git.rtems.org/rtems/tree/LICENSE.BSD-2-Clause
<https://git.rtems.org/rtems/tree/LICENSE.BSD-2-Clause>). Legacy
GPLv2 does not imply legacy. Some code in RTEMS is under a legacy license.
Which alternative wording would you use?
+ * code of RTEMS is under a [modified GPL 2.0 or later license with an
+ * exception for static
linking](https://git.rtems.org/rtems/tree/LICENSE
<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 <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
<https://en.cppreference.com/w/c/thread>) support)
+ *
+ * - C++11 (including
+ * [thread](https://en.cppreference.com/w/cpp/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``)
FWIW I have a Fortran RTEMS hello world and need to add it to
rtems-examples.
Great, maybe this could be added to the normal test suite.
+ *
+ * - Python and MicroPython
+ *
+ * - Parallel languages
+ *
+ * - [Embedded Multicore Building Blocks](https://embb.io/
<https://embb.io/>)
+ *
+ * - [OpenMP](https://www.openmp.org/ <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
+ *
+ * - C11/C++11 Thread-Local Storage (TLS)
TLS is also in newer versions of both languages so how about rephrasing
to include C17, C++14, etc
C11/C++11 were the first standard revisions which defined thread-local
storage.
What about this:
- 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
<https://www.freebsd.org/cgi/man.cgi?query=uma&sektion=9>),
+ * libbsd)
+ *
+ * - File systems
+ *
+ * - IMFS
+ *
+ * - FAT
+ *
+ * - RFS
+ *
+ * - NFSv2
NFSv4 in libbsd.
+ *
+ * - JFFS2 (NOR flashes)
Kinsey just enabled NAND I think.
Does this really work? Who else uses JFFS2 on NAND flashes?
+ *
+ * - [YAFFS2](https://git.rtems.org/sebh/rtems-yaffs2.git/
<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/
<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
Does lwip rate a bit like that?
It is also missing on the user manual features list.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel