summaryrefslogtreecommitdiffstats
path: root/user/start/bsp-build.rst
diff options
context:
space:
mode:
Diffstat (limited to 'user/start/bsp-build.rst')
-rw-r--r--user/start/bsp-build.rst206
1 files changed, 92 insertions, 114 deletions
diff --git a/user/start/bsp-build.rst b/user/start/bsp-build.rst
index 8bc6233..962cd43 100644
--- a/user/start/bsp-build.rst
+++ b/user/start/bsp-build.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2019 embedded brains GmbH
+.. Copyright (C) 2019 embedded brains GmbH & Co. KG
.. Copyright (C) 2019 Sebastian Huber
.. _QuickStartBSPBuild:
@@ -11,7 +11,7 @@ Build a Board Support Package (BSP)
You installed the tool suite in your installation prefix, made ready the source
for two RTEMS source packages and if you are using a Git clone bootstrapped the
RTEMS sources in the previous sections. We installed the tool suite in
-:file:`$HOME/quick-start/rtems/5` and unpacked the source in
+:file:`$HOME/quick-start/rtems/6` and unpacked the source in
:file:`$HOME/quick-start/src`.
You are now able to build :ref:`Board Support Packages (BSPs) <BSPs>` for all
@@ -45,23 +45,23 @@ To build the BSP with all the tests run this command:
cd $HOME/quick-start/src/rsb/rtems
../source-builder/sb-set-builder --prefix=$HOME/quick-start/rtems/5 \
- --target=sparc-rtems5 --with-rtems-bsp=erc32 --with-rtems-tests=yes 5/rtems-kernel
+ --target=sparc-rtems@rtems-ver-major@ --with-rtems-bsp=sparc/erc32 --with-rtems-tests=yes @rtems-ver-major@/rtems-kernel
-This command should output something like this:
+This command should output something like:
.. code-block:: none
- RTEMS Source Builder - Set Builder, 5.1.0
- Build Set: 5/rtems-kernel
- config: tools/rtems-kernel-5.cfg
- package: sparc-rtems5-kernel-erc32-1
- building: sparc-rtems5-kernel-erc32-1
- sizes: sparc-rtems5-kernel-erc32-1: 2.279GB (installed: 44.612MB)
- cleaning: sparc-rtems5-kernel-erc32-1
- reporting: tools/rtems-kernel-5.cfg -> sparc-rtems5-kernel-erc32-1.txt
- reporting: tools/rtems-kernel-5.cfg -> sparc-rtems5-kernel-erc32-1.xml
- installing: sparc-rtems5-kernel-erc32-1 -> $BASE/
- cleaning: sparc-rtems5-kernel-erc32-1
+ RTEMS Source Builder - Set Builder, @rtems-ver-majminver@
+ Build Set: @rtems-ver-major@/rtems-kernel
+ config: tools/rtems-kernel-@rtems-ver-major@.cfg
+ package: sparc-rtems@rtems-ver-major@-kernel-erc32-1
+ building: sparc-rtems@rtems-ver-major@-kernel-erc32-1
+ sizes: sparc-rtems@rtems-ver-major@-kernel-erc32-1: 2.279GB (installed: 44.612MB)
+ cleaning: sparc-rtems@rtems-ver-major@-kernel-erc32-1
+ reporting: tools/rtems-kernel-@rtems-ver-major@.cfg -> sparc-rtems@rtems-ver-major@-kernel-erc32-1.txt
+ reporting: tools/rtems-kernel-@rtems-ver-major@.cfg -> sparc-rtems@rtems-ver-major@-kernel-erc32-1.xml
+ installing: sparc-rtems@rtems-ver-major@-kernel-erc32-1 -> $BASE/
+ cleaning: sparc-rtems@rtems-ver-major@-kernel-erc32-1
Build Set: Time 0:03:09.896961
The RSB BSP build can be customised with following RSB command line options:
@@ -99,26 +99,19 @@ If you have built a BSP with the RSB, you can move on to
Manual BSP Build
----------------
-We manually build 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`.
+We manually build the BSP in four steps. The first step is to set your path.
+Prepend the RTEMS tool suite binary directory to your ``$PATH`` throughout the
+remaining steps. Run the command:
.. code-block:: none
- mkdir -p $HOME/quick-start/build/b-erc32
-
-The second step is to set your path. Prepend the RTEMS tool suite binary
-directory to your ``$PATH`` throughout the remaining steps. Run the command:
-
-.. code-block:: none
-
- export PATH=$HOME/quick-start/rtems/5/bin:"$PATH"
+ export PATH=$HOME/quick-start/rtems/@rtems-ver-major@/bin:"$PATH"
Check your installed tools can be found by running:
.. code-block:: none
- command -v sparc-rtems5-gcc && echo "found" || echo "not found"
+ command -v sparc-rtems@rtems-ver-major@-gcc && echo "found" || echo "not found"
The output should be:
@@ -128,91 +121,87 @@ The output should be:
If ``not found`` is printed the tools are not correctly installed or the path
has not been correctly set. Check the contents of the path
-:file:`$HOME/quick-start/rtems/5/bin` manually and if :file:`sparc-rtems5-gcc`
-is present the path is wrong. If the file cannot be found return to
-:ref:`QuickStartTools` and install the tools again.
-
-The third step is to configure the BSP. There are various configuration
-options available. Some configuration options are BSP-specific.
+:file:`$HOME/quick-start/rtems/@rtems-ver-major@/bin` manually and if
+:file:`sparc-rtems@rtems-ver-major@-gcc` is present the path is wrong. If the
+file cannot be found return to :ref:`QuickStartTools` and install the tools
+again.
+
+The second step is to configure the BSP. There are various BSP build
+configuration options available. Some options are BSP-specific. Each section
+in the INI-style configuration file ``config.ini`` instructs the build system to
+build a particular BSP variant (`sparc/erc32` in our case). We enable the build
+of the tests with the ``BUILD_TESTS = True`` option and use default values for
+everything else. For detailed information about the BSP build system, see
+:ref:`BSPBuildSystem`.
.. code-block:: none
- cd $HOME/quick-start/build/b-erc32
- $HOME/quick-start/src/rtems/configure \
- --prefix=$HOME/quick-start/rtems/5 \
- --enable-maintainer-mode \
- --target=sparc-rtems5 \
- --enable-rtemsbsp=erc32 \
- --enable-tests
+ cd $HOME/quick-start/src/rtems
+ echo "[sparc/erc32]" > config.ini
+ echo "BUILD_TESTS = True" >> config.ini
+ ./waf configure --prefix=$HOME/quick-start/rtems/@rtems-ver-major@
-This command should output something like this (omitted lines are denoted by
-``...``):
+The first invocation of ``./waf`` needs a bit of time (e.g. 10 seconds) since an
+internal cache file is populated. This command should output something like
+this. In this output the base directory :file:`$HOME/quick-start` was replaced
+by ``$BASE``.
.. 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 forth step.
+ Setting top to : $BASE/quick-start/src/rtems
+ Setting out to : $BASE/quick-start/src/rtems/build
+ Configure board support package (BSP) : sparc/erc32
+ Checking for program 'sparc-rtems@rtems-ver-major@-gcc' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-gcc
+ Checking for program 'sparc-rtems@rtems-ver-major@-g++' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-g++
+ Checking for program 'sparc-rtems@rtems-ver-major@-ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'sparc-rtems@rtems-ver-major@-ld' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ld
+ Checking for program 'ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'g++, c++' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-g++
+ Checking for program 'ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'gas, gcc' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-gcc
+ Checking for program 'ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for program 'gcc, cc' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-gcc
+ Checking for program 'ar' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/sparc-rtems@rtems-ver-major@-ar
+ Checking for asm flags '-MMD' : yes
+ Checking for c flags '-MMD' : yes
+ Checking for cxx flags '-MMD' : yes
+ Checking for program 'rtems-bin2c' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/rtems-bin2c
+ Checking for program 'gzip' : /usr/bin/gzip
+ Checking for program 'rtems-ld' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/rtems-ld
+ Checking for program 'rtems-syms' : $BASE/quick-start/rtems/@rtems-ver-major@/bin/rtems-syms
+ Checking for program 'xz' : $BASE/anaconda3/bin/xz
+ 'configure' finished successfully (0.414s)
+
+Building the BSP is the third step.
.. code-block:: none
- cd $HOME/quick-start/build/b-erc32
- make
+ cd $HOME/quick-start/src/rtems
+ ./waf
This command should output something like this (omitted lines are denoted by
...).
.. 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'
+ Waf: Entering directory `$BASE/quick-start/src/rtems/build'
+ Waf: Leaving directory `$BASE/quick-start/src/rtems/build'
+ 'build' finished successfully (0.085s)
+ Waf: Entering directory `$BASE/quick-start/src/rtems/build/sparc/erc32'
+ [ 1/4093] Compiling bsps/shared/dev/serial/mc68681_reg2.c
+ [ 2/4093] Compiling bsps/shared/dev/rtc/mc146818a_ioreg.c
+ [ 3/4093] Compiling bsps/shared/dev/flash/am29lv160.c
+ ...
+ [4093/4093] Processing link: build/sparc/erc32/testsuites/libtests/dl01/dl01-tar.o build/sparc/erc32/testsuites/libtests/dl01/init.o build/sparc/erc32/testsuites/libtests/dl01/dl-load.o build/sparc/erc32/testsuites/libtests/dl01/dl01-sym.o -> build/sparc/erc32/testsuites/libtests/dl01.exe
+ Waf: Leaving directory `$BASE/quick-start/src/rtems/build/sparc/erc32'
+ 'build_sparc/erc32' finished successfully (2m14.111s)
The last step is to install the BSP.
.. code-block:: none
- cd $HOME/quick-start/build/b-erc32
- make install
+ cd $HOME/quick-start/src/rtems
+ ./waf 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
@@ -220,27 +209,16 @@ 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'
+ Waf: Entering directory `$BASE/quick-start/src/rtems/build'
+ Waf: Leaving directory `$BASE/quick-start/src/rtems/build'
+ 'install' finished successfully (0.081s)
+ Waf: Entering directory `$BASE/quick-start/src/rtems/build/sparc/erc32'
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/libchip/am29lv16.h (from bsps/include/libchip/am29lv1.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/libchip/mc146818a.h (from bsps/include/libchip/mc146818a.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/libchip/mc68681.h (from bsps/include/libchip/mc68681.h))
...
- $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'
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/rtems/score/watchdogticks.h (from cpukit/include/rtems/score/watchdogticks.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/rtems/score/wkspace.h (from cpukit/include/rtems/score/wkspace.h)
+ + install $BASE/quick-start/rtems/@rtems-ver-major@/sparc-rtems@rtems-ver-major@/erc32/lib/include/rtems/score/wkspacedata.h (from cpukit/include/rtems/score/wkspacedata.h)
+ Waf: Leaving directory `$BASE/quick-start/src/rtems/build/sparc/erc32'
+ 'install_sparc/erc32' finished successfully (1.834s))