user: Add "Build a Board Support Package (BSP)"

This commit is contained in:
Sebastian Huber 2019-01-23 14:26:47 +01:00
parent 158d905d77
commit fa12cab2b9
2 changed files with 147 additions and 0 deletions

146
user/start/bsp-build.rst Normal file
View File

@ -0,0 +1,146 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
.. Copyright (C) 2019 embedded brains GmbH
.. Copyright (C) 2019 Sebastian Huber
.. _QuickStartBSPBuild:
Build a Board Support Package (BSP)
===================================
You installed the tool suite in your installation prefix, cloned two RTEMS
repositories and bootstrapped the RTEMS sources in the previous sections. We
installed the tool suite in :file:`$HOME/quick-start/rtems/5` and cloned the
repositories in :file:`$HOME/quick-start/src`. We also bootstrapped the RTEMS
sources.
You are now able to build :ref:`Board Support Packages (BSPs) <BSPs>` for all
architectures where you have an RTEMS tool suite installed. To build
applications on top of RTEMS, you have to configure, build and install a BSP
for your target hardware. To select a proper BSP for your target hardware
consult the :ref:`BSPs <BSPs>` chapter. We select the `erc32` BSP.
We configure, build and install the BSP in four steps. The first step is to
create a build directory. It must be separate from the RTEMS source directory.
We use :file:`$HOME/quick-start/build/b-erc32`.
.. code-block:: none
mkdir -p $HOME/quick-start/build/b-erc32
The second step is to configure the BSP. There are various configuration
options available. Some configuration options are BSP-specific. Prepend the
RTEMS tool suite binary directory to your ``$PATH`` throughout the remaining
steps.
.. code-block:: none
cd $HOME/quick-start/build/b-erc32
export PATH=$HOME/quick-start/rtems/5/bin:"$PATH"
$HOME/quick-start/src/rtems/configure \
--prefix=$HOME/quick-start/rtems/5 \
--enable-maintainer-mode \
--target=sparc-rtems5 \
--enable-rtemsbsp=erc32 \
--enable-tests
This command should output something like this (omitted lines are denoted by
...):
.. code-block:: none
checking for gmake... gmake
checking for RTEMS Version... 5.0.0
checking build system type... x86_64-unknown-freebsd12.0
checking host system type... x86_64-unknown-freebsd12.0
checking target system type... sparc-unknown-rtems5
...
config.status: creating Makefile
target architecture: sparc.
available BSPs: erc32.
'gmake all' will build the following BSPs: erc32.
other BSPs can be built with 'gmake RTEMS_BSP="bsp1 bsp2 ..."'
config.status: creating Makefile
Building the BSP is the third step.
.. code-block:: none
cd $HOME/quick-start/build/b-erc32
make
This command should output something like this (omitted lines are denoted by
...). In this output the base directory :file:`$HOME/quick-start` was replaced
by ``$BASE``.
.. code-block:: none
Configuring RTEMS_BSP=erc32
checking for gmake... gmake
checking build system type... x86_64-unknown-freebsd12.0
checking host system type... sparc-unknown-rtems5
checking rtems target cpu... sparc
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for sparc-rtems5-strip... sparc-rtems5-strip
checking for a thread-safe mkdir -p... $BASE/src/rtems/c/src/../../install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether gmake sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking for RTEMS_BSP... erc32
checking whether CPU supports libposix... yes
configure: setting up make/custom
configure: creating make/erc32.cache
gmake[3]: Entering directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32'
...
sparc-rtems5-gcc -mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/sparc/erc32 -B$BASE/src/rtems/bsps/sparc/erc32/start -specs bsp_specs -qrtems -L./../../cpukit -L$BASE/src/rtems/bsps/sparc/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o spwkspace.exe spwkspace/spwkspace-init.o ./../../lib/libbsp/sparc/erc32/librtemsbsp.a ./../../cpukit/librtemscpu.a
gmake[5]: Leaving directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32/testsuites/sptests'
gmake[4]: Leaving directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32/testsuites'
gmake[3]: Leaving directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32'
gmake[2]: Leaving directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32'
gmake[1]: Leaving directory '$BASE/build/b-erc32/sparc-rtems5/c'
gmake[1]: Entering directory '$BASE/build/b-erc32'
gmake[1]: Nothing to be done for 'all-am'.
gmake[1]: Leaving directory '$BASE/build/b-erc32'
The last step is to install the BSP.
.. code-block:: none
cd $HOME/quick-start/build/b-erc32
make install
This command should output something like this (omitted lines are denoted by
...). In this output the base directory :file:`$HOME/quick-start` was replaced
by ``$BASE``.
.. code-block:: none
Making install in sparc-rtems5/c
gmake[1]: Entering directory '$BASE/build/b-erc32/sparc-rtems5/c'
Making install in .
gmake[2]: Entering directory '$BASE/build/b-erc32/sparc-rtems5/c'
gmake[3]: Entering directory '$BASE/build/b-erc32/sparc-rtems5/c'
gmake[3]: Nothing to be done for 'install-exec-am'.
gmake[3]: Nothing to be done for 'install-data-am'.
gmake[3]: Leaving directory '$BASE/build/b-erc32/sparc-rtems5/c'
gmake[2]: Leaving directory '$BASE/build/b-erc32/sparc-rtems5/c'
Making install in erc32
gmake[2]: Entering directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32'
gmake[3]: Entering directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32'
Making install-am in .
Making install-am in cpukit
gmake[4]: Entering directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32/cpukit'
gmake[5]: Entering directory '$BASE/build/b-erc32/sparc-rtems5/c/erc32/cpukit'
gmake[5]: Nothing to be done for 'install-exec-am'.
$BASE/src/rtems/c/src/../../cpukit/../install-sh -c -d '$BASE/rtems/5/sparc-rtems5/erc32/lib/include'
...
$BASE/src/rtems/make/Templates/Makefile.lib '$BASE/rtems/5/share/rtems5/make/Templates'
$BASE/src/rtems/./install-sh -c -d '$BASE/rtems/5/make/custom'
/usr/bin/install -c -m 644 $BASE/src/rtems/make/custom/default.cfg '$BASE/rtems/5/make/custom'
gmake[2]: Leaving directory '$BASE/build/b-erc32'
gmake[1]: Leaving directory '$BASE/build/b-erc32'

View File

@ -21,6 +21,7 @@ applications on top of RTEMS.
sources
tools
bootstrap
bsp-build
The following is a quick start guide that provides a basic set of commands to
build the RTEMS Tools and Kernel. The quick start guide provides links to the