summaryrefslogtreecommitdiffstats
path: root/c-user/glossary.rst
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-31 08:04:11 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-04-01 07:49:15 +0200
commit6f0bc56893aa73de85c4dbd483dc7d6a6fe4a2a2 (patch)
tree2f47aa0c19334b5c8ff9d991890adeb3931fb1ab /c-user/glossary.rst
parentc-user: Document all configuration options (diff)
downloadrtems-docs-6f0bc56893aa73de85c4dbd483dc7d6a6fe4a2a2.tar.bz2
eng: Add glossary terms
Define the following terms: * assembler language * C language * ELF * interrupt service * software component * software unit Clarify: * task Update #3715.
Diffstat (limited to 'c-user/glossary.rst')
-rw-r--r--c-user/glossary.rst83
1 files changed, 77 insertions, 6 deletions
diff --git a/c-user/glossary.rst b/c-user/glossary.rst
index d0996e8..dfbda11 100644
--- a/c-user/glossary.rst
+++ b/c-user/glossary.rst
@@ -29,6 +29,12 @@ Glossary
ASR
An acronym for :term:`Asynchronous Signal Routine`.
+ assembler language
+ The assembler language is a programming language which can be translated very
+ easily into machine code and data. For this project assembler languages are
+ restricted to languages accepted by the :term:`GNU` assembler
+ program for the target architectures.
+
asynchronous
Not related in order or timing to other occurrences in the system.
@@ -76,6 +82,10 @@ Glossary
buffer
A fixed length block of memory allocated from a partition.
+ C language
+ The C language for this project is defined in terms of
+ :term:`C11`.
+
C++11
The standard ISO/IEC 14882:2011.
@@ -178,6 +188,10 @@ Glossary
EARS
An acronym for Easy Approach to Requirements Syntax.
+ ELF
+ An acronym for
+ `Executable and Linkable Format <https://en.wikipedia.org/wiki/Executable_and_Linkable_Format>`_.
+
embedded
An application that is delivered as a hidden part of a larger system.
For example, the software in a fuel-injection control system is an
@@ -304,6 +318,14 @@ Glossary
serviced. If a pending interrupt is below the current interrupt level,
then the CPU does not recognize that interrupt.
+ interrupt service
+ An *interrupt service* consists of an
+ :term:`Interrupt Service Routine` which is called with a user
+ provided argument upon reception of an interrupt service request. The
+ routine is invoked in interrupt context. Interrupt service requests may have
+ a priority and an affinity to a set of processors. An *interrupt service* is
+ a :term:`software component`.
+
Interrupt Service Routine
An ISR is invoked by the CPU to process a pending interrupt.
@@ -683,12 +705,54 @@ Glossary
A real-time system in which a missed deadline does not compromise the
integrity of the system.
+ software component
+ This term is defined by ECSS-E-ST-40C 3.2.28 as a "part of a software
+ system". For this project a *software component* shall be any of the
+ following items and nothing else:
+
+ * :term:`software unit`
+
+ * explicitly defined :term:`ELF` symbol in a
+ :term:`source code` file
+
+ * :term:`assembler language` data in a source code file
+
+ * :term:`C language` object with static storage duration
+
+ * C language object with thread-local storage duration
+
+ * :term:`thread`
+
+ * :term:`interrupt service`
+
+ * collection of *software components* (this is a software architecture
+ element)
+
+ Please note that explicitly defined ELF symbols and assembler language
+ data are considered a software component only if they are defined in a
+ :term:`source code` file. For example, this rules out symbols
+ and data generated as side-effects by the toolchain (compiler, assembler,
+ linker) such as jump tables, linker trampolines, exception frame information,
+ etc.
+
software item
This term has the same meaning as :term:`software product`.
software product
The *software product* is the :term:`RTEMS` real-time operating system.
+ software unit
+ This term is defined by ECSS-E-ST-40C 3.2.24 as a "separately compilable
+ piece of source code". For this project a *software unit* shall be any of
+ the following items and nothing else:
+
+ * :term:`assembler language` function in a
+ :term:`source code` file
+
+ * :term:`C language` function (external and internal linkage)
+
+ A *software unit* is a :term:`software component`.
+
source code
This project uses the *source code* definition of the
`Linux Information Project <http://www.linfo.org/source_code.html>`_:
@@ -729,12 +793,19 @@ Glossary
An acronym for Test-And-Set.
task
- A logically complete thread of execution. It consists normally of a set
- of registers and a stack. The scheduler assigns processors to a subset
- of the ready tasks. The terms task and thread are synonym in RTEMS. The
- term task is used throughout the Classic API, however, internally in the
- operating system implementation and the POSIX API the term thread is
- used.
+ This project uses the
+ `thread definition of Wikipedia <https://en.wikipedia.org/wiki/Thread_(computing)>`_:
+ "a thread of execution is the smallest sequence of programmed
+ instructions that can be managed independently by a scheduler, which is
+ typically a part of the operating system."
+
+ It consists normally of a set of registers and a stack. The scheduler
+ assigns processors to a subset of the ready tasks. The terms task and
+ :term:`thread` are synonym in RTEMS. The term task is used
+ throughout the Classic API, however, internally in the operating system
+ implementation and the POSIX API the term thread is used.
+
+ A *task* is a :term:`software component`.
Task Control Block
A data structure associated with each task used by RTEMS to manage that