Corrections.

This commit is contained in:
Chris Johns 2016-03-22 13:42:02 +11:00 committed by Amar Takhar
parent 27bcdfbf57
commit 21519275cc
3 changed files with 64 additions and 38 deletions

View File

@ -23,19 +23,20 @@ system installs.
A further reason not use the standard *prefix* is to allow more than one A further reason not use the standard *prefix* is to allow more than one
version of RTEMS to exist on your host machine at a time. The ``autoconf`` and version of RTEMS to exist on your host machine at a time. The ``autoconf`` and
``automake`` tools required by RTEMS are not versioned and vary between RTEMS ``automake`` tools required by RTEMS are not versioned and vary between RTEMS
versions. If you use a single *prefix* then there is a chance things from versions. If you use a single *prefix* there is a chance things from different
different versions may interact. This should not happen but it could. versions may interact. This should not happen but it could.
For POSIX or Unix hosts the RTEMS Project uses :file:`/opt/rtems` as a standard For POSIX or Unix hosts the RTEMS Project uses :file:`/opt/rtems` as a standard
*prefix*. We view this *prefix* as a production level path and we place *prefix*. We view this *prefix* as a production level path and we place
development versions under a different *prefix* away from the production development versions under a different *prefix* away from the production
versions. Under this top level *prefix* we place the various versions, for versions. Under this top level *prefix* we place the various versions we need
example for version 4.11.0 the *prefix* would be :file:`/opt/rtems/4.11.0`. If for development, for example the version 4.11.0 the *prefix* would be
an update called 4.11.1 is released the *prefix* would be :file:`/opt/rtems/4.11.0`. If an update called 4.11.1 is released the *prefix*
:file:`/opt/rtems/4.11.1`. This choice is entirly yours. You may decide to have would be :file:`/opt/rtems/4.11.1`. These are recommendations and the choice of
a single path for all RTEMS 4.11 releases of :file:`/opt/rtems/4.11`. what you use is entirly yours. You may decide to have a single path for all
RTEMS 4.11 releases of :file:`/opt/rtems/4.11`.
For Windows a typical prefix is :file:`C:\\opt` and as an MSYS2 path that is For Windows a typical prefix is :file:`C:\\opt` and as an MSYS2 path this is
:file:`/c/opt`. :file:`/c/opt`.
.. _project_sandboxing: .. _project_sandboxing:
@ -47,19 +48,20 @@ Project specific sandboxes let you have a number of projects running in
parallel with each project in its own sandbox. You simlpy have a prefix per parallel with each project in its own sandbox. You simlpy have a prefix per
project and under that prefix you create a simple yet repeatable structure. project and under that prefix you create a simple yet repeatable structure.
As an exapmle lets say I have a large disk under :file:`/bd` for *Big Disk*. As As an exapmle lets say I have a large disk mounted under :file:`/bd` for *Big
``root`` create a directory called ``project`` and give the directory suitable Disk*. As ``root`` create a directory called ``projects`` and give the
permissions to be writable by you as a user. directory suitable permissions to be writable by you as a user.
Lets create project sandbox for my *Box Sorter* project. First create a project Lets create a project sandbox for my *Box Sorter* project. First create a
directory called :file:`/bd/projects/box-sorter`. Under this create project directory called :file:`/bd/projects/box-sorter`. Under this create
:file:`rtems` and under that create :file:`rtems-4.11.0`. Under this path you :file:`rtems` and under that create :file:`rtems-4.11.0`. Under this path you
can follow the :ref:`released-version` procedure to build a tool set using the can follow the :ref:`released-version` procedure to build a tool set using the
prefix of :file:`/bd/projects/box-sorter/rtems/4.11.0`. You are free to create prefix of :file:`/bd/projects/box-sorter/rtems/4.11.0`. You are free to create
your project specific directories under :file:`/bd/projects/box-sorter`. your project specific directories under :file:`/bd/projects/box-sorter`.
A variation of this is to have a single set of *production* tools and RTEMS A variation of this is to have a single set of *production* tools and RTEMS
BSPs on the disk under :file:`/bd/rtems` you can share between your projects. BSPs on the disk under :file:`/bd/rtems` you can share between your
projects. The top level directories would be:
:file:`/bd/rtems` :file:`/bd/rtems`
The top path to production tools and kernels. The top path to production tools and kernels.
@ -71,11 +73,14 @@ BSPs on the disk under :file:`/bd/rtems` you can share between your projects.
:file:`/bd/projects` :file:`/bd/projects`
Project specific development trees. Project specific development trees.
A further variation is to use the ``--without-rtems`` option with the RTEMS to :file:`/bd/projects/box-sorter`
Box Sorter project sandbox.
A further variation is to use the ``--without-rtems`` option with the RSB to
not build the BSPs when building the tools and to buld RTEMS specifically for not build the BSPs when building the tools and to buld RTEMS specifically for
each project. This lets you have a production tools installed at a top level each project. This lets you have a production tools installed at a top level on
on your disk and each project can have a specific and possibly customised your disk and each project can have a specific and possibly customised version
version of RTEMS. of RTEMS. The top level directories would be:
:file:`/bd/rtems` :file:`/bd/rtems`
The top path to production tools and kernels. The top path to production tools and kernels.
@ -89,6 +94,12 @@ version of RTEMS.
:file:`/bd/projects` :file:`/bd/projects`
Project specific development trees. Project specific development trees.
:file:`/bd/projects/box-sorter`
Box Sorter project sandbox.
:file:`/bd/projects/box-sorter/rtems`
Box Sorter project's custom RTEMS kernel source and installed BSP.
If there is an RTEMS kernel you to share between projects you can move this to If there is an RTEMS kernel you to share between projects you can move this to
a top level and share. In this case you will end up with: a top level and share. In this case you will end up with:
@ -107,9 +118,15 @@ a top level and share. In this case you will end up with:
:file:`/bd/projects` :file:`/bd/projects`
Project specific development trees. Project specific development trees.
:file:`/bd/projects/box-sorter`
Box Sorter project sandbox.
The project sandoxing approach allows you move a specific production part into The project sandoxing approach allows you move a specific production part into
the project's sandbox to allow you to customise it. This is useful if you are the project's sandbox to allow you to customise it. This is useful if you are
testing new relesaes. The typical dependency is the order listed above. You can testing new relesaes. The typical dependency is the order listed above. You can
test new RTEMS kernels with production tools but new tools will require you test new RTEMS kernels with production tools but new tools will require you
build the kernel with them. Release notes with each release will let know build the kernel with them. Release notes with each release will let know
what you need to update. what you need to update.
If the machine is a central project development machine simply replace
:file:`projects` with :file:`users` and give each user a personal directory.

View File

@ -15,8 +15,8 @@ the opposite to what you normally experience with host operating systems, and
it is, however this approach works well. RTEMS is not a host operating system it is, however this approach works well. RTEMS is not a host operating system
and it is not a distrbution. Providing binary packages for every possible host and it is not a distrbution. Providing binary packages for every possible host
operating system is to big a task for the RTEMS Project and it is not a good operating system is to big a task for the RTEMS Project and it is not a good
use of the core developers time. Their time is better spent making RTEMS better use of the core developer's time. Their time is better spent making RTEMS
and faster. better and faster.
Developer Computer Developer Computer
------------------ ------------------
@ -37,7 +37,9 @@ RTEMS makes no demands on graphics.
If you are using a VM or your host computer that is not a fast current machine If you are using a VM or your host computer that is not a fast current machine
do not be concerned. The tools may take longer to build than faster hardware do not be concerned. The tools may take longer to build than faster hardware
however building tools is something you do once. Once the tools and RTEMS is however building tools is something you do once. Once the tools and RTEMS is
built all your time can be spent writing and developing your application. built all your time can be spent writing and developing your application. Over
an hour does happen and for the ARM architecture with all BSPs it can be many
hours.
Host Software Host Software
------------- -------------
@ -73,10 +75,10 @@ POSIX hosts are most Unix operating systems such as Linux, FreeBSD and
NetBSD. RTEMS development works well on Unix and can scale from a single user NetBSD. RTEMS development works well on Unix and can scale from a single user
and a desktop machine to a team with decentralised or centralised development and a desktop machine to a team with decentralised or centralised development
infrastructure. The RTEMS project provides you with the development tools and infrastructure. The RTEMS project provides you with the development tools and
aids to help you create an environment that matches the project's needs. You aids to help you create an environment that matches your project's needs. The
need to decide on the languages used in your project, which version control RTEMS Project's aims to give complete freedom to decide on the languages used
system, and the build system for your application. The RTEMS Project's aims to in your project, which version control system, and the build system for your
give complete freedom to decide what you use. application.
The following are a few ways you can set up a suitable environment. You are not The following are a few ways you can set up a suitable environment. You are not
limited to what is present here. A common factor that defines the final limited to what is present here. A common factor that defines the final
@ -98,18 +100,18 @@ to be built and we encourage you do not build the tools as ``root``. If you
need to control write access then it is best to manage this with groups need to control write access then it is best to manage this with groups
assigned to users. assigned to users.
If you have ``root`` you can decide to install the tools under any suitable If you have ``root`` access you can decide to install the tools under any
prefix. This may depend on the hardware in your host development machine. If suitable prefix. This may depend on the hardware in your host development
the machine is a centralised build server the prefix may be used to separate machine. If the machine is a centralised build server the prefix may be used to
production versions from the test versions and as just discussed the prefix separate production versions from the test versions and as just discussed the
paths may have restricted access to only those who manage the configuration prefix paths may have restricted access to only those who manage and
control of the machine. configuration control of the machine.
Apple OS X Apple OS X
---------- ----------
Apple's OS X is fully supported. You to download and install a recent version Apple's OS X is fully supported. You need to download and install a recent
of the free Apple developers application Xcode. Xocde is available in the App version of the Apple developer application Xcode. Xocde is available in the App
Store. Make sure you install the Command Line Tools add on available for Store. Make sure you install the Command Line Tools add on available for
download within Xcode and once installed open a Terminal shell and enter the download within Xcode and once installed open a Terminal shell and enter the
command ``cc`` and accept the license agreement. command ``cc`` and accept the license agreement.
@ -163,11 +165,17 @@ Windows path length is limited and can cause problems when building the
tools. The standard Windows API has a ``MAX_PATH`` length of 260 tools. The standard Windows API has a ``MAX_PATH`` length of 260
characters. This can effect some of the tools used by RTEMS. It is recommended characters. This can effect some of the tools used by RTEMS. It is recommended
you keep the top level directories as short as possible when building the RTEMS you keep the top level directories as short as possible when building the RTEMS
tools and you also keep an eye on the path length when developing your tools and you should also keep an eye on the path length when developing your
application. The RTEMS built tools can handle much longer path lengths however application. The RTEMS built tools can handle much longer path lengths however
some of the GNU tools such as those in the ``binutils`` package cannot. The some of the GNU tools such as those in the ``binutils`` package cannot. The
release packages of the RSB are too big to build RTEMS so you need to change release packages of the RSB when unpacked has a top level file names that is
that path to build. too big to build RTEMS so you need to change that path to something smaller to
build. This is indicated in :ref:`released-version`.
.. _msys2_parallel_builds:
Parallel Builds with Make
~~~~~~~~~~~~~~~~~~~~~~~~~
The MSYS2 GNU ``make`` has problems when using the `jobs` option. The RSB The MSYS2 GNU ``make`` has problems when using the `jobs` option. The RSB
defaults to automatically using as many cores as the host machine has. To get a defaults to automatically using as many cores as the host machine has. To get a

View File

@ -39,7 +39,7 @@ the source on the RTEMS FTP server ensures the source is present for the like
of the release on the RTEMS FTP server. If there is a problem accessing the of the release on the RTEMS FTP server. If there is a problem accessing the
RTEMS FTP the RSB will fall back to the packages home site. RTEMS FTP the RSB will fall back to the packages home site.
.. note:: **Control the RTEMS Kernel Build** .. note:: **Controlling the RTEMS Kernel Build**
The RTEMS kernel is built by default for releases. To not build the RTEMS The RTEMS kernel is built by default for releases. To not build the RTEMS
kernel add the ``--without-rtems`` option to the RSB command line. kernel add the ``--without-rtems`` option to the RSB command line.
@ -108,7 +108,8 @@ Build a tool chain for the SPARC architecure. We are using the SPARC
architecture in our example because GDB has a good simulator that lets us run architecture in our example because GDB has a good simulator that lets us run
and test the samples RTEMS builds by default and test the samples RTEMS builds by default
If building on Windows add ``--jobs=none`` to avoid GNU make issues on Windows. If building on Windows add ``--jobs=none`` to avoid GNU make issues on Windows
discussed in :ref:`msys2_parallel_builds`.
.. code-block:: shell .. code-block:: shell