Changeset 3de74ba in rtems-docs


Ignore:
Timestamp:
Jan 11, 2019, 1:44:36 PM (6 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
0facb9d
Parents:
89a33b3
git-author:
Sebastian Huber <sebastian.huber@…> (01/11/19 13:44:36)
git-committer:
Sebastian Huber <sebastian.huber@…> (01/14/19 06:15:27)
Message:

user: Rework "Hardware" chapter

Rename it to "Target Hardware". Remove BSPs section and reference the
BSPs chapter instead. Remove explicit list of architectures and
reference the BSPs chapter instead. Fix typos. Elaborate multilib
description in the architecture section.

Location:
user
Files:
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • user/bsps/index.rst

    r89a33b3 r3de74ba  
    33.. Copyright (C) 2018 embedded brains GmbH
    44
    5 .. _BoardSupportPackages:
     5.. _BSPs:
    66
    77Board Support Packages
     
    1717target hardware.
    1818
     19You can see the current BSP list in the RTEMS sources by asking RTEMS with:
     20
     21.. code-block:: shell
     22
     23    $ ./rtems-bsps
     24
    1925.. toctree::
    2026
    21    bsps-aarch64
    22    bsps-arm
    23    bsps-bfin
    24    bsps-epiphany
    25    bsps-i386
    26    bsps-lm32
    27    bsps-m68k
    28    bsps-microblaze
    29    bsps-mips
    30    bsps-moxie
    31    bsps-nios2
    32    bsps-or1k
    33    bsps-powerpc
    34    bsps-riscv
    35    bsps-sh
    36    bsps-sparc64
    37    bsps-sparc
    38    bsps-v850
    39    bsps-x86_64
     27    bsps-aarch64
     28    bsps-arm
     29    bsps-bfin
     30    bsps-epiphany
     31    bsps-i386
     32    bsps-lm32
     33    bsps-m68k
     34    bsps-microblaze
     35    bsps-mips
     36    bsps-moxie
     37    bsps-nios2
     38    bsps-or1k
     39    bsps-powerpc
     40    bsps-riscv
     41    bsps-sh
     42    bsps-sparc64
     43    bsps-sparc
     44    bsps-v850
     45    bsps-x86_64
  • user/exe/index.rst

    r89a33b3 r3de74ba  
    22
    33.. Copyright (C) 2018 Chris Johns <chrisj@rtems.org>
     4
     5.. _Executables:
    46
    57Executables
  • user/glossary/index.rst

    r89a33b3 r3de74ba  
    66
    77.. glossary::
     8
     9  ABI
     10    Application Binary Interface
    811
    912  Architecture
  • user/hardware/architectures.rst

    r89a33b3 r3de74ba  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3.. Copyright (C) 2019 embedded brains GmbH
     4.. Copyright (C) 2019 Sebastian Huber
    35.. Copyright (C) 2016 Chris Johns <chrisj@rtems.org>
    46
     
    79.. index:: Architectures
    810
    9 An RTEMS architecture is a class or family of a processor that RTEMS
    10 supports. The RTEMS architecture model follows the architecture model of
     11An RTEMS architecture is a class or family of a processor architecture that
     12RTEMS supports. The RTEMS architecture model follows the architecture model of
    1113GCC. An architecture in GCC results in a specific RTEMS GCC compiler. This
    1214compiler may support a range of processors in the family that may have
    13 differences in instructions sets or floating point support. RTEMS configures
    14 GCC to create separate runtime libraries for each supported instruction set and
    15 floating point unit in the architecture. This is termed **multlib**. Multlibs
    16 are manage automatically by GCC by selecting a specific instruction set or
    17 specific device in a family.
     15differences in instructions sets, floating point support or other aspects.
     16RTEMS configures GCC to create separate runtime libraries for each supported
     17instruction set, floating point unit, vector unit, word size (e.g. 32-bit and
     1864-bit), endianess, code model, :ref:term:`ABI`, processor errata workarounds,
     19and so on in the architecture. This is termed *multilib*. Multilibs are chosen
     20automatically by GCC via selecting a specific set of machine options.
    1821
    19 RTEMS executables are statically linked for a specific target therefore a
    20 precise and exact match can be made for the hardware that extracts the best
    21 possible performance. The compiler supports the variants to the instruction set
    22 and RTEMS extends the specialization to specific processors in an
    23 architecture. This specialization gives RTEMS a finer resolution of features
    24 and capabilites a specific device may offer allowing the kernel, drivers and
    25 application to make the most of those resources. The trade off is portability
    26 however this is not important because the executable are statically linked for
    27 a single target.
     22You can query the multilibs of a specific RTEMS GCC compiler via the
     23``-print-multi-lib`` option:
     24
     25.. code-block:: shell
     26
     27    $ sparc-rtems5-gcc -print-multi-lib
     28    .;
     29    soft;@msoft-float
     30    v8;@mcpu=v8
     31    leon3;@mcpu=leon3
     32    leon3v7;@mcpu=leon3v7
     33    leon;@mcpu=leon
     34    leon3/gr712rc;@mcpu=leon3@mfix-gr712rc
     35    leon3v7/gr712rc;@mcpu=leon3v7@mfix-gr712rc
     36    leon/ut699;@mcpu=leon@mfix-ut699
     37    leon/at697f;@mcpu=leon@mfix-at697f
     38    soft/v8;@msoft-float@mcpu=v8
     39    soft/leon3;@msoft-float@mcpu=leon3
     40    soft/leon3v7;@msoft-float@mcpu=leon3v7
     41    soft/leon;@msoft-float@mcpu=leon
     42    soft/leon3/gr712rc;@msoft-float@mcpu=leon3@mfix-gr712rc
     43    soft/leon3v7/gr712rc;@msoft-float@mcpu=leon3v7@mfix-gr712rc
     44    soft/leon/ut699;@msoft-float@mcpu=leon@mfix-ut699
     45    soft/leon/at697f;@msoft-float@mcpu=leon@mfix-at697f
     46
     47Each printed line represents a multilib.  The ``.`` corresponds to the default
     48multilib.  It is used if a set of machine options does not match to a
     49specialized multilib.  The string before the ``;`` describes the directory in
     50the GCC installation used for the particular multilib.  After the ``;`` the set
     51of machine options for this multilib follows separated by ``@`` characters.
     52
     53You can figure out the multilib selected by GCC for a set of machine options
     54with the ``-print-multi-directory`` option:
     55
     56.. code-block:: shell
     57
     58    $ sparc-rtems5-gcc -print-multi-directory -mcpu=leon3
     59    leon3
     60
     61It is crucial that the RTEMS BSP, support libraries and the application code
     62are compiled consistently with a compatible set of machine options.  Otherwise,
     63in the best case errors during linking will occur or you may end up silently
     64with undefined behaviour which results in sporadic run-time crashes.  A wrong
     65set of machine options may result in a running application, however, with
     66degraded performance, e.g. hardware floating point unit is not used by the
     67mathematical library.
     68
     69For a list of architectures supported by RTEMS please have a look at the
     70sections of the :ref:`Board Support Packages <BSPs>` chapter.
     71
     72:ref:`RTEMS executables <Executables>` are statically linked for a specific
     73target therefore a precise and exact match can be made for the hardware that
     74extracts the best possible performance. The compiler supports the variants to
     75the instruction set and RTEMS extends the specialization to specific processors
     76in an architecture. This specialization gives RTEMS a finer resolution of
     77features and capabilities a specific device may offer allowing the kernel,
     78drivers and application to make the most of those resources. The trade off is
     79portability however this is not important because the executable are statically
     80linked for a single target.
    2881
    2982.. note::
     
    3386   that is equivalent to statically linked executable of the same code. Dynamic
    3487   loading is a system level tool for system architects.
    35 
    36 RTEMS supports 18 architectures:
    37 
    38 - arm
    39 - bfin
    40 - epiphany
    41 - i386
    42 - lm32
    43 - m68k
    44 - mips
    45 - moxie
    46 - nios2
    47 - no_cpu
    48 - or1k
    49 - riscv
    50 - powerpc
    51 - sh
    52 - sparc
    53 - sparc64
    54 - v850
    55 - x86_64
  • user/hardware/index.rst

    r89a33b3 r3de74ba  
    55.. _Hardware:
    66
    7 Hardware
    8 ********
     7Target Hardware
     8***************
    99.. index:: Hardware
    10 
    11 This section discusses supported Hardware, Architectures, Board Support
    12 Packages, and running RTEMS on real hardware and simulators.
     10.. index:: Target Hardware
    1311
    1412.. toctree::
     
    1614   targets
    1715   architectures
    18    bsps
    1916   tiers
  • user/hardware/targets.rst

    r89a33b3 r3de74ba  
    99.. index:: Targets
    1010
    11 Hardware that can run RTEMS is often referred to as a *target* because RTEMS is
    12 specifically aimed at that hardware or target. An RTEMS executable is
    13 statically linked and executes in a single address space on the target
    14 hardware. A statically linked executable means the RTEMS Kernel, drivers, third
    15 party packages and application code is linked into a single executable image. A
    16 single address space means no virtual memory and no memory protected process
    17 address space is running within the RTEMS arena and the RTEMS Kernel, drivers
    18 and application have unprotected access to the whole address space and all
    19 hardware.
     11*Target hardware* that can run RTEMS is often referred to simply as the
     12*target* because RTEMS is specifically aimed at that target hardware. An RTEMS
     13executable is statically linked and executes in a single address space on the
     14target hardware. A statically linked executable means the RTEMS Kernel,
     15drivers, third party packages and application code is linked into a single
     16executable image. A single address space means no virtual memory and no memory
     17protected process address space is running within the RTEMS arena and the RTEMS
     18executive, drivers and application have unprotected access to the whole address
     19space and all hardware.
    2020
    21 Target hardware supported by RTEMS has a Board Support Package or BSP. A BSP is
    22 a specific instance of an RTEMS architecture that allows the creation of an
    23 RTEMS executable. You can view the layering as:
     21Target hardware supported by RTEMS has a :ref:`Board Support Package <BSPs>` or
     22BSP.  A BSP is a specific instance of an RTEMS architecture that allows the
     23creation of an RTEMS executable. You can view the layering as:
    2424
    2525.. comment Build image with:
     
    3232  :alt:  Software Layers on Hardware
    3333
    34 RTEMS Targets are grouped by architectures and within an architecture there are
     34RTEMS targets are grouped by architectures and within an architecture there are
    3535a number of Board Support Packages or BPSs. An architecture is a specific class
    3636or family of processors and can be large such as ARM or specific such as the
  • user/index.rst

    r89a33b3 r3de74ba  
    1313    | © 2018 Vidushi Vashishth
    1414    | © 2017 Tanu Hari Dixit
    15     | © 2016, 2017 embedded brains GmbH
    16     | © 2016, 2017 Sebastian Huber
     15    | © 2016, 2019 embedded brains GmbH
     16    | © 2016, 2019 Sebastian Huber
    1717    | © 2012, 2015 Chris Johns
    1818    | © 1988, 2018 On-Line Applications Research Corporation (OAR)
Note: See TracChangeset for help on using the changeset viewer.