diff options
Diffstat (limited to 'user/start/bsp-build.rst')
-rw-r--r-- | user/start/bsp-build.rst | 206 |
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)) |